[DELPHI] MaskEdit

0

co w tym jest nie tak ?

MaskEdit1.EditMask:='9,9999;1;0';
x:=StrToFloat(MaskEdit1.Text);

Nie chce przyjąć np. liczby 2,0020 jako float wywala błąd (niestety nie znam angielskiego)

dzieki z góry LIMBA {hello}

0

Zmień DecimalSeparator na ',', ale nie gwarantuje, że ruszy.--Vogel [Delphi 6 PE]

Life is just a dream, you know...
[Cowboy Bebop]

0

DecimalSeparator:=','; to nie działa

jast dziwne bo bo np. 2,2222 przyjnuje a liczbe 2,0002 wywala błąd

0

No to chyba oczywiste że wywala błąd to zero na końcu powoduje iż zera w
MaskEdit są traktowane jak spacje, moja propozycja:

For i := 1 to length(MaskEdit1.Text) do
IF MaskEdit1.Text[i] = ' ' then y:=y+'0'
else y:=y+MaskEdit1.Text[i] ;

x:=StrToFloat(y) ;

{browar}

0

nie wiem dalej o co chodzi (ale działa twoja podpowiedz)

Dzięki wielkie {browar}

0

MirekPil napisał:

For i := 1 to length(MaskEdit1.Text) do
IF MaskEdit1.Text[i] = ' ' then y:=y+'0'
else y:=y+MaskEdit1.Text[i] ;
x:=StrToFloat(y) ;

To może:
y:=Trim(MaskEdit1.Text);
x:=StrToFloat(y)--Vogel [Delphi 6 PE]

Life is just a dream, you know...
[Cowboy Bebop]

0

Vogel napisał:

...
y:=Trim(MaskEdit1.Text);
...
niestety Trim() usuwa tylko spacje na początku i na końcu Stringa.
W przypadku jeśli :
MaskEdit1.EditMask:='9,9999;1;0';
ostatnie zero powoduje że wprowadzony ciąg np: 1,0002 w MaskEdit1.Text przechowuje ciąg : '1, 1' .

1 użytkowników online, w tym zalogowanych: 0, gości: 1