Witam,
Możecie mi pomóc przerobić ten kod tak aby w polu TEdit były takie założenia:
- nie można wpisywać przecinka ',' jeżeli:
a) nie wpisano żadnej liczby,
b) już jest jeden przecinek, - Jak wpisano tylko 1 zamienia się na 1,00
- Jeżeli wpisano mniej znaków niż 7, ale pojawił się ',' i dwie cyfry przechodzi automatycznie do następnego pola.
Udało mi się zrobić (bazując na przykładach w Google)
- dopuszczane znaki ( tylko cyfry, przecinek, enter, backspace
- tylko 2 miejsca po przecinku
- jak wcisnę klawisz Enter przechodzi do następnego pola
- jak wklepie 7 znaków przechodzi do następnego pola
Potrzebuje tego, aby program mój miał wartości walutowe, i nie pozwalał na wpisywanie np. takich danych:
,23
1234,,,
1234,5,
procedure TForm1.Pole_ZywnoscChange(Sender: TObject);
begin
if pos(',', Pole_Zywnosc.text)<>0 then
if (length(Pole_Zywnosc.Text) - 2 > pos(',', Pole_Zywnosc.text)) then
begin
Pole_Zywnosc.Text:=copy(Pole_Zywnosc.Text,1,length(Pole_Zywnosc.Text)-1);
Pole_Zywnosc.SelStart:=length(Pole_Zywnosc.Text);
end;
end;
procedure TForm1.Pole_ZywnoscKeyPress(Sender: TObject; var Key: Char);
begin
If Key in ['0'..'9',#8,#13,','] {jeśli klikasz jeden z tych znaków to }
then {wpisuj }
else Key:=#0; { inaczej nie wpisuj}
If Length(Pole_Zywnosc.text)=7 then {jeśli napisano 7 znaków to }
Pole_Chemia.SetFocus; {uaktywnij pole Pole_Chemia}
If Key=#13 then {jeśli wciśnięty klawisz to Enter}
Pole_Chemia.SetFocus; {uaktywnij pole Pole_Chemia}
end;
Z góry wdzięczny będę za pomoc.