如何给动态创建的控件填加事件
解决方案 »
- ADOQuery1.Parameters.ParamByName('XX').ASString不可以用如何是好
- 有关大量用户在经的服务器的问题
- 请高手指教:QReport支持打印分页吗?打印超长表格时该怎么作?
- ADOQUERY和APPEND在一起为什么老报错呢
- DELPHI7超简单问题?
- 过年我想送爸妈老年手机,高手请进帮忙推荐!
- 请问如何把.db格式的数据导入sybase数据库中呢?
- 嘻嘻嘻<<第一次亲密接触CSDN.HELP>>.HELP嘻嘻嘻嘻
- 我想修改listview的最后1行,第2列的内容,如何找到listview最后1行》?
- 杭州那里有D版的kilxy买??急着想用!帮忙了...
- 单位开发一套管理系统(三层),一日,同事和我说,他可以自己编程来修该数据库(晕)他简单的加了几个控件,靠,真的连接到应用服务器端
- 如何安装delphi7的报表控件。
beginend;procedure TForm1.FormCreate(Sender: TObject);
var
button:TButton;
begin
button:=TButton.Create(Self) ;
button.OnClick := Button1Click;
end;
然后在创建控件后,
控件名.事件:= yourProc;
如果是添加如onclick这样的事件处理过程,直接写一个过程后,把它们对应上一行了:
如
procedure ok(sender:object);
begin
...........
end;button1.oncilck:=ok;
s:tbutton;
begin
s:=tbutton.create(self);
s.onclick:=mmclick;//设置事件响应函数
end;
//另写一mmClick
procedure mmClick(Sender as TObject);
begin
//Process..
end;
begin
showmessage('怎么还不明白!');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
begin
for i := 0 to 100 do
with TButton.Create(Self) do begin
Parent := Self;
OnClick := myfunction;
end;
end;
Button.Targer = i;
则showmessage时显示Button.Targer
如果在过程中需要知道是哪个按扭点击了可以用sender来判断。
begin
showmessage(‘你按下'+(sender as tbutton).caption+'按扭');
end;button1 :=tbutton1.Create(self);
button1.Caption :='...';
button1.oncilck:=myfunction;
var
CBtem:array of Tcheckbox;然后再在需要的地方
var
i:integer;
begin
Setlength(CBtem,100); CBtem[i]:=Tcheckbox.Create(self);
CBtem[i].Parent:=ScrollBox1;
CBtem[i].Left:=20;
CBtem[i].Top:=i*30;
CBtem[i].Width:=200;
CBtem[i].Name:='CBtem'+IntToStr(i);
CBtem[i].Tag:=i;
CBtem[i].Caption:=driverStr;
CBtem[i].OnClick:=myCheckclick;
CBtem[i].Show;
end;再自定义CBTEM数组的CLICK事件
procedure TForm1.MyCheckClick(sender:tobject);
var
k:integer;
beginfor k:=1 to i-1 do
begin if (sender as tcheckbox).Tag=k then
begin
做你想做的;
end; end;end;
procedure TForm1.MyShow(Sender:TObject);
begin
showmessage(‘你按下 NO.'+IntToStr(TButton(Sender).Tag+1)+'按扭')
end;2、别忘记在窗口类的public或者pirvate部分加入以下声明:
procedure MyShow(Sender:TObject);3、然后这样:
VAR
btn:array of TButton;4、再在创建BUTTON时这样写:
...
setlength(btn,100)
for i:=low(btn) to high(btn) do
begin
btn[i]:=TButton.Create(Self) ;
btn[i].tag:=i;//或者 Button.hint:=i;注意,这是关键
btn[i].OnClick := MyShow;
end;
...OK,至此一切搞定!
记住,动态数组的下标从0开始!