RE:10.10 no es un valor Real????
La función StrToFloat espera que la cadena que se pasa como parámetro contenga un número que use como separador decimal el indicado en la configuración regional del sistema, que dicho sea de paso se carga automáticamente al iniciar la aplicación en la variable predefinida DecimalSeparator (unidad Sysutils).
Normalmente, el separador decimal es la coma (','), por lo que si ingresas un número con un punto, la función StrToFloat fallará.
Una solución posible sería que validaras la entrada de datos en el cuadro de texto, convirtiendo los puntos y comas por el separador del sistema según corresponda. Ejemplo
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key in [',', '.']) then Key := DecimalSeparator;
end;
Otra solución posible sería reemplazar al momento de hacer la conversión:
function AjustarSeparadorDecimal(const s: string): string;
begin
if DecimalSeparator = '.' then
Result := StringReplace(s, ',', DecimalSeparator,
[rfReplaceAll, rfIgnoreCase])
else
Result := StringReplace(s, '.', DecimalSeparator,
[rfReplaceAll, rfIgnoreCase])
end;
x := StrToFloat(AjustarSeparadorDecimal(Edit1.Text));
Espero que te sirva.
Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php