Köszönöm az instrukciókat, de nekem azt hiszem nem a locale beállítással van gondom.
Szerintem nem tudom megadni, hogy a tizedes vessző előtt és után levő számok (digitek) száma bármennyi lehet.
Tehát a formátumban nem tudom megadni a digitek tetszőleges számát(?).
Egy demo:
Formon MaskEdit1, Button1
// MaskEdit1.EditMask:='###.##;1;_'
procedure TForm1.Button1Click(Sender: TObject);
var f: double;
begin
// show
ShowMessage( 'DEBUG string: ' + MaskEdit1.Text );
f:= StrToFloat( MaskEdit1.Text );
ShowMessage( 'DEBUG float: ' + FloatToStr( f ) );
end;
Szépen működik is, pl. a user beírja, hogy:
123.12
12.12
De ha pl. így írja be ('1' majd pont és tizedesjegyek):
1__.23
akkor nem tudja az StrToFloat() lebegőpontossá alakítani (EConvertError). Csak felhasználóbaráttá szeretném tenni.
Szóval a fix digitek miatt nem tudja a "1__.23" floattá konvertálni (érthető módon).
Kicsit barátságosabbá szeretném tenni a bevitelt.