动态创建的控件如何处理事件(100分)

  • 主题发起人 主题发起人 jsq
  • 开始时间 开始时间
J

jsq

Unregistered / Unconfirmed
GUEST, unregistred user!
在某个系统中,我动态生成了几个控件Tedit、Tbutton,我想在这
些控件中处理事件,比如onclick、onkeypress事件等,请问如何编
写?另外,在edit控件中,如何限制它的输入字符,如只能输入实数。
 
onclick:=yourname;
 
onclick:=form1.formclick
 
那onkeypress呢?
 
<pre>
<b>
procedure TForm1.myKeyPress(Sender: TObject; var Key: Char);
begin
showmessage('hi');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
button1.onkeypress:=mykeypress;
end;
</b></pre>
 
ok,thanks。那么要限制edit的输入呢?
 
EDIT只能输入数字:
SetWindowLong(Edit1.Handle,GWL_Style,(GetWindowLong(Edit1.Handle,GWL_Style)
or ES_Number);
 
我还要Edit可以输入字符'.',怎么办?
 
如果只让它输入数字的话,那就连回车符也打不了,那程序如何知道我的变量输入何时结束呢?
 
可以给TEdit的OnKeyPress事件附值
如:
procedure TForm1.MyEditKeyPress(Sender: TObject; var Key: Char);
begin
if (Key>'9') or (key<'0') then
key:=char(0);
end;
创建过TEdit控件AEdit后用
AEdit.OnKeyPress:-MyEditKeyPress;
这样就可以了!其实任何事件,给它附个具有相同形式的过程或函数都可以!
 
这儿好像一大堆问题啊?
 
多人接受答案了。
 
procedure mybutton(Sender: TObject); //请注意参数 sender
begin
showmessage('hello');
end;

btn.OnClick :=mybtn;

 
后退
顶部