1。试试 procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var s:set of char; i:integer; begin s:=['.',#8,'0'..'9']; i:=pos('.',edit1.text); if i>0 then s:=s-['.']; if (i>0)and(i=length(edit1.text)-2) then //可任意控制-2,-3.... begin key:=#0; exit; end; if not (Key in s)then Key := #0; end;3。ord(key)
都可以直接在edit的KeyPress事件中写呀。 1、if length(edit.text)-length(pos(edit.text,'.')) then key := #0 2、if not (key in ['0'..'9','.',#8]) then key := #0; 3、在KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);中,key本身就是Ascii码
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
s:set of char;
i:integer;
begin
s:=['.',#8,'0'..'9'];
i:=pos('.',edit1.text);
if i>0 then
s:=s-['.'];
if (i>0)and(i=length(edit1.text)-2) then //可任意控制-2,-3....
begin
key:=#0;
exit;
end;
if not (Key in s)then
Key := #0;
end;3。ord(key)
2. maskedit
3. form.keypreview:=true;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begincaption:=inttostr(key);
end;
1、if length(edit.text)-length(pos(edit.text,'.')) then
key := #0
2、if not (key in ['0'..'9','.',#8]) then
key := #0;
3、在KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);中,key本身就是Ascii码