我想使TEDIT只能输入数字,是否有属性设置一下就可以了,不想用KeyPress事件对按下的键进行处理,因为要用的TEDIT很多。如果没有现成的,哪位大侠教教我自己写一个控件。
解决方案 »
- indy10 TIdTcpServer TIdTcpClient 多客户端传输数据问题
- SetWindowPos非主窗口置顶,点击该窗口后主窗口会激活
- 动态创建数据源问题
- 请教如何保存当前剪贴板的内容,然后我执行自己的剪贴板操作,之后再恢复保存的内容和状态?
- 请问谁有Dephi 的基础教程?
- 如何实现用delphi启动SQL SERVER
- 求和的SQL语句应该怎么写?在线等
- 怎样直接将DBGrid中显示出来的东西打印出来?
- 怎么取得CppWebBrowser里的内容?
- 输个不同的类型的值,会报错,
- 用AdoQuery调用SqlServer的带参数的存储过程,参数类型是varchar,怎么当参数中有中文时会自动把参数截断了
- 怎样获得一个已知句柄窗口中所有控件的句柄?
GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not ( Key in ['0'..'9',#8]) then
Key := #0;
end;
比较好
或者自己写控件吧。
begin
if key=#8 then exit;
if key='.'then exit;
if(key<'0')or(key>'9')then key:=#0;
end;
是最省事的方法
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not ( Key in ['0'..'9',#8]) then
Key := #0;
end;
比较好
是的,我一直这样用。也不复杂。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
//定义如下一个过程
procedure EditKeyPress(Sender: TObject; var Key: Char);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
//对只输入数字的每个Edit设置属性OnKeyPress
Edit1.OnKeyPress:=EditKeyPress;
Edit2.OnKeyPress:=EditKeyPress;
end;procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin
if not ( Key in ['0'..'9',#8]) then Key := #0;
end;end.
GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
private
procedure EditKeyPress(Sender: TObject; var Key: char);
public
constructor Create(AOwner: TComponent); overload;
end;{ TMyEdit }constructor TMyEdit.Create(AOwner: TComponent);
begin
Inherited Create(AOwner); OnKeyPress:=EditKeyPress;
end;procedure TMyEdit.EditKeyPress(Sender: TObject; var Key: char);
begin
if not ( Key in ['0'..'9', #8]) then Key := #0;
end;var MyEdit: TMyEdit;procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.OnKeyPress:=EditKeyPress; MyEdit:=TMyEdit.Create(self);
MyEdit.Parent:=self;
MyEdit.Left:=100;
MyEdit.Top:=50;
MyEdit.Width:=200;
MyEdit.Height:=30;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not ( Key in ['0'..'9',#8]) then
Key := #0;
end;