动态生成的控件怎样给它添加事件?

dulei115 2003-08-21 04:38:58
刚刚学会怎样动态生成控件,但是不知道怎样往这些动态生成控件里添加事件,有哪位给我举个例,如下:
procedure TForm1.FormCreate(Sender: TObject);
var
a:tbutton;
begin
a:=tbutton.Create(self);
with a do
begin
Top:=100;
Left:=100;
Height:=20;
Width:=100;
Parent:=form1;
OnClick:=//.....该怎样写了?或者应该用别的方法
end;
end;
...全文
38 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mysqlcom 2003-08-21
  • 打赏
  • 举报
回复
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure myClick(Sender:TObject);
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
a:TButton;
begin
a:=TButton.Create(nil);
a.top:=button1.Top;
a.left:=button1.Left+100;
a.width:=200;
a.Caption:='this is my fisrst';
a.Visible:=true;
a.Parent :=form1;
a.onClick :=myClick;
end;
procedure TForm1.myClick(sender:TObject) ;
begin
showMessage('hellow');
end;
end.
mysqlcom 2003-08-21
  • 打赏
  • 举报
回复
up
yjw1018 2003-08-21
  • 打赏
  • 举报
回复
同意楼上两位,注意不能在OnClick:=YourClick;中的YourClick后加入其参数。
mingjunlee 2003-08-21
  • 打赏
  • 举报
回复
在你的Form中写一个自己的函数,
在你动态生成的控件的OnClick事件指向他就可以调用了
Little2000 2003-08-21
  • 打赏
  • 举报
回复
procedure TForm1.YourClick(Sender: TObject);
begin
ShowMessage('OK');
end;

procedure TForm1.FormCreate(Sender: TObject);
var
a:tbutton;
begin
a:=tbutton.Create(self);
with a do
begin
Top:=100;
Left:=100;
Height:=20;
Width:=100;
Parent:=form1;
OnClick:=YourClick;
end;
end;
lxpbuaa 2003-08-21
  • 打赏
  • 举报
回复
procedure TForm1.ButtonClick(Sender: TObject);
begin
ShowMessage('AA');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.OnClick := ButtonClick;
end;

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
version :4.0 1、将生成的代码和事件用两个文件实现。 2、修改了部分Bug; 3、颜色设置做了部分改进; 4、内部集成了VC的编译器,和模拟器,生成C文件后可以直接在uCGUIBuilder中编译,运行模拟器了 5、添加代码自动完成功能; 6、添加画线功能。 version : 3.1.0.0 1、修改了选择不同窗体属性窗口不更新的BUG; 2、修改了只能打开一个ucGUIBuilder的功能,现在可以同时启动多个; 3、修复了拖放非ucfrm引起软件错误的Bug; 4、添加控件ID自动增加功能; 5、添加控件ID检查功能,控件ID有重复时会有警告; 6、添加了用户自定义字体功能; 7、支持中英文切换(但功能不够完善); 8、支持自动检查更新; 9、修改了不能保存用户自定义ID的BUG; version : 3.0.0.0 重写了部分内核,运行更稳定; 支持窗体设计器的复制、粘贴、剪切、删除、撤销、等基本操作; 支持多控件,对齐、公共属性修改等基本操作; 支持将.ucfrm文件与ucGUIBuilder关联功能; 支持控件自定义ID; 添加了窗体预览功能; 添加了对控件事件的支持; 添加了在线检查更新功能; 等…… version : 2.1.0.5 优化了控件库; 修复了一些Bug; 代码生成窗口中添加了C语言语法高亮显示功能; C文件模板做了部分修改(C文件模板大家可以随意修改为自己喜欢的格式(..\Template\Template.c文件) 但是要保证$$$GUI_WIDGET_CREATE_INFO$$$ $$$Defination$$$ $$$InitDialog$$$ 三个字符串位置不变) 支持设计的窗体保存为文件,并可以打开; 对所有控件属性添加了Description(在属性窗口最下面显示); 窗体布局可以保存,可以自定义为自己喜欢的窗体布局; 修改了部分功能; version : 2.0.0.5 优化了控件库; 修复了一些Bug; 可以生成完整的C文件(包括 资源表,初始化代码等); 修改了部分功能; version : 1.0.0.0 功能很不完善; 还有好多BUG; 目前只能生成资源表; 暂时不能生成其他代码; 大家有什么好的建议可以发送Email 到: ucguibuilder@163.com

5,388

社区成员

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

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