请教如何限制编辑框的输入 的一些疑问

ufo20020427 2005-02-24 08:57:45
如下:edit1只可输入数字和字母及退格键
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','a'..'z',#8]) then
begin
key:=#0;
MessageBeep(1);
end;
end;

但如果我需要支持复制和粘贴,于是我改为
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','a'..'z',#8,#17]) then
begin
key:=#0;
MessageBeep(1);
end;
end;
#17是Ctrl的键盘码,可是还是不能按Ctrl+c或Ctrl+v
请问该如何解决.谢谢!
...全文
74 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ufo20020427 2005-02-24
  • 打赏
  • 举报
回复
先谢谢aquadp(阿凯) 的回答.
不过1 代码在keydown中不能用.
2.我除了数字,还要输入字符,所以你所的sample中的那个不适用.

aquadp 2005-02-24
  • 打赏
  • 举报
回复
两个解决方法:
1)你把代码写道KEYDOWN里试试。
2)用第三方控件,比如RAIZE.其实DELPHI自带了一个数字输入控件,好像是在SAMPLE页面里面,你自己可以找找。
ufo20020427 2005-02-24
  • 打赏
  • 举报
回复
谢谢gxgyj(杰克.逊) 请问#3,#22是什么意思?
gxgyj 2005-02-24
  • 打赏
  • 举报
回复
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','a'..'z',#8,#3,#22]) then
begin
key:=#0;
MessageBeep(1);
end;
end;
ufo20020427 2005-02-24
  • 打赏
  • 举报
回复
请问还有谁知道吗?

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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