Jak zabezpieczyc Edity przed wpisem jakis innych typow niz sa ?
tzn mam Edita i wartosc w nim to Integer to jak zabezpieczeyc zeby nie wpisalo jakiegos innegpo typu np String ? I jak ustawic dlugosc mozliwych liter/cyfr w edicie
OnKeyDown: jeśli znak jest zabroniony to znak := 0
OnChanged: jeśli całość nie pasuje to czyść Edit (zabezpieczenie przed wklejeniem ze schowka)
MaxLength: max liczba znaków
if not (Key in ['0'..'9',',','.',#8]) then
begin
Key := #0;
Beep;
Exit;
np. coś takiego.
Mnich i co to znaczy ze moga byc liczby od 0 do 9 i przecinki ? :] po co tyle tych przecinkow ?
jakto tyle?
czy sa cyfry (cyfr jest 10, od 0 do 9) i czy wystepuje przecinek albo kropka (zalezy jak twoj program ma to interpretowac). ja widze 1 przecinek, nie mowie tu o tych oddzielajacych poszczegolne wyrazenia
if not (Key in ['0'..'9',',','.',#8]) then
If
- Jeżeli
not
- nie są takie
key
- klawisze
in
- między
'0'..'9',
- od 0 do 9
',',
- przecinki
'.',
- i kropki
then
- wtedy
I tamto dalej. Myślę, że teraz to chyba jasne. [cya]
Jest komponent MaskEdit na zakładce Additional. W właściwości EditMask wybierz np. extension i w zależności od tego ile wpiszesz '9' w polu Input mask, taką ilość cyfr będziesz mógł wpisać w pole. Jeżeli będzie Cię denerwować podkreślenie możesz w polu 'znak dla niezapisanego' wpisać spację... W pomocy znajdziesz więcej o tworzeniu masek.
EditMask jest h..owe. jakieś <ort>głópie </ort>znaki muszą być w miejsca gdzie się wpisauje. zmora, zabić, zniszczyć [diabel]
Ciekawy efekt możesz uzyskać deklarująć zmienną w np. sekcji pievate
tj:
...
private
ed1 : String ;
...
a w OnChange :
procedure TForm1.Edit1Change(Sender: TObject);
begin
Try
StrToFloat(Edit5.Text) ;
Except
Edit5.Text := ed1 ;
End;
ed1:=Edit5.Text ;
end;
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.