Hi,
I've got some code that I want to do some simple validation on an edit field to
only allow positive numeric value with only 1 decimal point.
The code I have is as follows:
procedure TfMachines.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if not((key>=#48) and (key<=#57)) then //0..9
if (key=#46) or (key=#44) then //'.' & ','
begin
// if (pos(#46,(Sender as Tedit).text)>0) or (pos(#44,(Sender as
Tedit).text)>0) then
if (pos(#46, Edit1.text)>0) or (pos(#44, Edit1.text)>0) then
key := #0
else
key := decimalseparator;
end
else if (key<>#8) then
key := #0;
end;
This code nearly works, but allows more than one decimal point, because when I
debug and set a watch on Edit1.text, it is always blank, even after several key
presses.
I tried an Application.ProcessMessages before checking keys pressed, but that
didn't work either.
Also, the line that is commented out (sender as Tedit) I tried, and that gave
an error 'Invalid class typecast' as soon as I key a decimal point.
Any help would be appreciated, thanks in advance.
Regards,
Steve Bowker
_______________________________________________
Delphi mailing list -> [email protected]
http://lists.elists.org/cgi-bin/mailman/listinfo/delphi