我也一般选择: 在TEdit的onKeyPress事件中:if not (key in['0'..'9',#8])then key:=#0; 要不你想删除字符都难了,呵呵
在TEdit的onKeyPress事件中: if not (Key in ['0'..'9','.',#8,#13]) then Key:=#0; if Key='.' then begin if (Pos('.',TEdit(Sender).Text)<>0)or(Length(TEdit(Sender).Text)=TEdit(Sender).SelLength) or(TEdit(Sender).SelStart=0) then Key:=#0; end;
procedure Tmain.Edit2KeyPress(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9',#8,#13]) then key:=#0; end;
procedure TFrmmain.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key<#48 or key>#57 then key:=#0; end;
Shift: TShiftState);
begin
if((key < 49) or (key > 57)) then
showmessage('请输入数字');
end;
begin
key:=#0;
end;
Key:=Char(0);
key:=#0;
SetWindowLongedit1.Handle, GWL_STYLE,GetWindowLong(edMaxCount.Handle, GWL_STYLE) or ES_NUMBER);
key:=#0;
key:=#0;
case key of
'0'..'9',#8,#13:
else
abort;
end;
'0'..'9',#8,'.',#13:
else
abort;
jakefj(夢幻天使)
insert2003(高级打字员)
这三个人说的都比较全面了,前面的人说的只能输入数字了,其他的时候都不可以了,比如说复制,粘贴,退格。所以楼主还是选择下面几个人的方法
在TEdit的onKeyPress事件中:if not (key in['0'..'9',#8])then key:=#0; 要不你想删除字符都难了,呵呵
Key:=#0;
if Key='.' then
begin
if (Pos('.',TEdit(Sender).Text)<>0)or(Length(TEdit(Sender).Text)=TEdit(Sender).SelLength)
or(TEdit(Sender).SelStart=0) then
Key:=#0;
end;
begin
if not (key in ['0'..'9',#8,#13]) then
key:=#0;
end;
begin
if key<#48 or key>#57 then
key:=#0;
end;