怎样让Edit控件只接受数字的输入?
解决方案 »
- delphi里面如何弹出文本文件
- 新手:如何只改变容器颜色,不改变容器里面组件的颜色?
- 如何在窗口关闭前添加MessageBox一个提示以确认退出操作?
- 跪求高手:程序只是在任务管理器的进程中能看到,任务栏,右下角托盘哪里都不放,如何实现???
- delphi10源码怎么自动排列阿?
- 如何设置TTS把文件生成语音文件的格式
- 如何实现金山词霸显示词义客户区那样的界面,例如里边可以显示多个词典,多种字体和多种标签等
- 在SQLServer2K中存取图片的问题。急!
- c++中使用静态变量实现所有类的实例共享同一变量,在delphi中如何实现?在线等待!!
- 打算学习网络通信编程,正踌躇中...请大家给些有益的建议
- 为庆祝俺升4个三角并兼庆祝国庆﹐特推出国庆放分活动﹐未接分者将被降低性欲﹗﹗﹗
- 找男朋友,认真 + 严肃 。嘿嘿
GetWindowLong(Edit1.Handle, GWL_STYLE) or
ES_NUMBER); 2。edit的keypress事件
if Not (Key in['0'..'9', #8, #13, #27]) then
begin
Key := #0;
Exit;
end;
begin
if (key<'0') or (key>'9") then
key:=char(0);
end;
CTRL,ATL,什么的,
你自己找找,键值
过滤数字键,和功能键,
还要屏蔽掉默认的粘贴功能。
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var p:integer; tp:TPoint;
begin
if key in ['0'..'9','+','-','.'] then
begin
if key in ['+','-'] then
begin
p:=pos('+',Edit1.Text)+pos('-',Edit1.Text);
if p>0 then key:=#0
else
begin
GetCaretPos(tp);
if tp.x>1 then key:=#0;
end;
end
else
if key='.' then
begin
p:=pos('.',Edit1.Text);
if p>0 then key:=#0;
end;
end
else if key>#31 then key:=#0;
end;