如何编程实现文本框只能输入数字,不使用特殊控件,如何写代码

michael4u 2003-10-10 10:00:24
如何编程实现文本框只能输入数字,不使用特殊控件,如何写代码
...全文
84 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowfog 2003-10-10
  • 打赏
  • 举报
回复
最好用OnChange事件,不然如果粘贴过来就没办法控制了。
另外,要支持小数和科学计数法,可以用VarIsFloat(Edit1.Text)或者VarIsNumeric
wlw88 2003-10-10
  • 打赏
  • 举报
回复
写上如下号码就可以屏蔽掉菜单和快捷键了。
procedure TEditChannelForm.EditTelNoContextPopup(Sender: TObject;
MousePos: TPoint; var Handled: Boolean);
begin
handled:=true;
end;
facedge 2003-10-10
  • 打赏
  • 举报
回复
有没有想过快捷键或右键菜单的情况呢?Ctrl+V! 哈哈,非法字符串统统进去了!所以……哈哈!
qiume 2003-10-10
  • 打赏
  • 举报
回复
结了吧!!!
47522341 2003-10-10
  • 打赏
  • 举报
回复
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['1','2','3','4','5','6','7','8','9','0',,'.',#13,#8])
begin
key := #0;
end;
end;
jamsir 2003-10-10
  • 打赏
  • 举报
回复
我一直用
dickeybird888(于伟刚)
1方法.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key in ['0'..'9']=false) and (word(key)<>vk_back) then
begin
key:=#0;
end;
end;
不过小数就不行了。呵呵。得自己改一下
IORILI 2003-10-10
  • 打赏
  • 举报
回复
判断字符是否是数字
function IsDigit(ch: char): boolean;
begin
Result := ch in ['0'..'9'];
end;
然后在keypress中调用
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if IsDigit(key) then
begin
showmessage('this is num');
key:=#0;
end;
end;
dickeybird888 2003-10-10
  • 打赏
  • 举报
回复
1方法.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key in ['0'..'9']=false) and (word(key)<>vk_back) then
begin
key:=#0;
end;
end;
2方法.
使用setwindowlong 和getwindowlong 函数 如edit1 为例
SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
ninliu 2003-10-10
  • 打赏
  • 举报
回复
KeyPress事件中屏蔽所有非数字的按键输入!
mib3000 2003-10-10
  • 打赏
  • 举报
回复
哈哈,方法还真多,学习学习

5,388

社区成员

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

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