怎样让用户只能在Edit中输入数字和小数点?

adventurezl 2003-06-01 07:05:28
如题
...全文
57 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyuer0851 2003-06-01
  • 打赏
  • 举报
回复
同意楼上的各位,就是这样,
编写代码,在keydown 事件中编写代码 ……进行判断
joky1981 2003-06-01
  • 打赏
  • 举报
回复
if not (key in ['0'..'9',#8],'.') then
begin
if (key='.') and (pos('.',Tedit(sender).Text)=0) then exit;
key:=#0;
showmessage('必须填入数字!');
end;
DJ_KK 2003-06-01
  • 打赏
  • 举报
回复
K
snake_eye 2003-06-01
  • 打赏
  • 举报
回复
procedure TForm_QueryBill.ComPTextKeyPress(Sender: TObject; var Key: Char);
begin
if Assigned(CurField) then
begin
if (CurField.DataType in [ftFloat, ftCurrency, ftBCD]) then
begin
if not ((key in ['0'..'9', '.', '-', #8])) then
begin
key := #0
end
else
begin
if (Key = '.') and (Pos('.', TEdit(Sender).Text) <> 0) then
Key := #0
else if
(Key = '-') and (Pos('-', TEdit(Sender).Text) <> 0) then
Key := #0;
end;
end
else if (CurField.DataType in [ftAutoInc, ftSmallint, ftInteger, ftWord,
ftBytes, ftLargeint]) then
begin
if not ((Key in ['0'..'9', '-', #8])) then
begin
Key := #0
end
else
begin
if (Key = '-') and (Pos('-', TEdit(Sender).Text) <> 0) then
Key := #0;
end;
end
else
Exit;
end;
end;
things 2003-06-01
  • 打赏
  • 举报
回复
在keydown里可以使用虚拟键,
在keypress里需要转换一下 Word(Key) = VK_BACKSPACE
xylyge 2003-06-01
  • 打赏
  • 举报
回复
try
StrToFloat(jvfloatedit1.text);
except
postmessage(jvfloatedit1.handle,wm_keydown,vk_back,0);
end;
adventurezl 2003-06-01
  • 打赏
  • 举报
回复
我怎样使用虚拟键?VK_O,VK_BACKSPACE,VK_9 ...?
我用过,老是报错:类型不匹配,怎么办?
AWolfBoy 2003-06-01
  • 打赏
  • 举报
回复
procedure TfrmRunStatistic.edtSpaceKeyPress(Sender: TObject;
var Key: Char);
begin
if (not (Key in ['0'..'9'])) and (Key <> '.') and (Key <> chr(8)) then
Key := chr(0);
end;

我觉得你还有必要加上回退键,这样就可以让用户修改了。
dext 2003-06-01
  • 打赏
  • 举报
回复
小数点也可以用这个方法!
如果你是想输入IP地址的话
可以下载专门的控件!
他好像是Windows的标准窗口类
dext 2003-06-01
  • 打赏
  • 举报
回复
procedure TMainForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key<'0') or (Key>'9') then Key:=Char(0);
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧