我用以下办法:procedure TForm11.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ((key<#48) or (key >#57)) then
key:=#0;
end;结果输入过程中如果输入错误了,无法按backspace键后退删除一个数字
哪位大侠告诉小弟?谢谢了
begin
if ((key<#48) or (key >#57)) then
key:=#0;
end;结果输入过程中如果输入错误了,无法按backspace键后退删除一个数字
哪位大侠告诉小弟?谢谢了
begin
if not (key in['0'..'9',#8]) then
key:=#0;
end;
if not (key in['0'..'9',#8]) then //如果输入的字符不在0-9之间
key:=#0;
MessageBeep(1);// 发出蜂鸣声
end;
四个方向键,tab,shift+tab,delete,backspace,Insert,home,end,pagedown,pageup,enter
它们对应的键值在哪里查得到啊?
key=0
Case FValType of
ftInt:
if not(Key in['0'..'9']) then Key:= #0;//如果不是0~9之间的字符,则取消输入
ftFloat:
begin
if not(Key in ['.', '0'..'9']) then Key:= #0;//浮点型数据可以包含小数点.
if (Key <> #0) and (Copy(Self.Text, 1, 1) = '0') and (Key = '0') and (Pos('.', Self.Text) = 0) then Key:= #0;
if Self.SelText = Self.Text then Self.Text:= '';
if (Pos('.', Self.Text) > 0) and (Length(Copy(Self.Text, Pos('.', Self.Text) + 1, Length(Self.Text) - Pos('.', Self.Text))) >= FDecimalDigits) then Key:=#0;
if StrToFloatDef(Self.Text + Key, -1) = -1 then Key:= #0;
end;
else
begin
inherited;
exit;
end;
end;//end case
end;//end if
inherited;
begin
if (not (key in ['0'..'9',char(08)])) then key:=char(0);
key:=#0;
end;
begin
if not (key in['0'..'9',#8,#46]) then//0..9,退格,小数点
begin
key:=#0;
MessageBeep(0);
end;
end;
then Edit1.ReadOnly:=False
else Edit1.ReadOnly:=True;