———(如何为动态生成的控件添加事件过程!??)————(20分)

  • 主题发起人 主题发起人 zk1
  • 开始时间 开始时间
Z

zk1

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中自动生成edit和Label控件,
可是我如何为他们添加onclick和onchange的事件过程呢?
 
procedure TDBMDIChildForm.SortFields(Sender: TObject);
//菜单事件,按字段排序
begin
inherited;
if TComponent(sender).Tag=-1 then
SortField(ADSMaster,sMasterSortFields,'')
else
SortField(ADSMaster,sMasterSortFields,TMenuItem(sender).Hint);
end;

procedure TDBMDIChildForm.MasterAfterOpen(DataSet: TDataSet);
//主表打开后生成排序菜单
var
i:integer;
mi:TMenuItem;
begin
inherited;
for i:=0 to adsMaster.FieldCount -1 do
begin
mi:=TMenuItem.Create(self);
with mi do
begin
Caption := adsMaster.Fields.FieldName;
Hint := adsMaster.Fields.FieldName;
Tag := i;
OnClick := SortFields;//指定事件
end;
pmSortField.Items.Add(mi);
end;
end;
 
可以事先把事件写好,然后创建后赋值就可以了!
Procedure Tform1.ImageClick(Sender:Tobject);//自定义事件
begin
savedialog1.initialDir:=getpath;
//调用获取路径默认函数
if savedialog1.execute then
if Sender is Timage then
(Sender as Timage ).picture.icon.savetofile(savedialog1.filename+'.ico');
end;
然后在某事件里
var
image:Timage
begin
image1:=Timage.create(self);
image1.ONClick:=ImageClick;//(Image);
end;
 
简单的问题我抢不到先,难的问题我又不会,老大给点分吧!
 
多人接受答案了。
 
后退
顶部