如果要处理一个TDBGrid的OntitleClick事件,只要在它对应的Events里双击OnTitleClick,Delphi即会自动帮我生成一个对应的空函数,可是现在dbGrid是动态生成的,我要在该dbGrid的OnTitleClick事件里写一些代码,怎么搞。
解决方案 »
- sqlserver怎么样获取一个表的主键!
- 有没作证券的朋友,问下怎么得到及时股票价格
- 在delphi中怎么做分页??急!!
- ◆◆一个多语言界面奇怪的问题: 法语、西班牙语、丹麦语等界面有乱码!做过多语言的兄弟请入!◆◆
- 有那位知道betteradodataset是什么控件?那里有啊?在线给分!
- 用ADOQuery增加记录时,如果因为重复而无法输入数据库,怎样在程序中知道?
- 能不能使DBNavigator控件变成透明的?????????????、、
- Delphi7里没有QiuckRep,怎么办?(在线等)
- 一个脑人的问题:程序运行后只在后台运行,如何才能让它露出真面目,请各位帮忙,程序如下
- 求救:各位大虾,我想把任务栏设为自动隐藏,应该在程序里怎么办呀
- TListView问题
- 如何将系统时间读出?
tmp->Caption="ok";
tmp->OnClick=abcd; //abcd为事先定义好的函数
tmp->Parent=this;思想就是这样:动态生的组件是指在运行期创发的组件,这种组的事件显然不能在设计期响应,
下谈谈怎样响应动态生成的组件的事件:如动态生成一按钮,然后响应onClick事件
先定义:
private
MyBtn:TButton;
public
procedure MyBtnClick(Sender: TObject);
implementation
//事先写好动态按钮响应onClick事件时的代码
procedure TForm1.MyBtnClick(Sender: TObject);
begin
showmessage('我是动态创建的');
//...你的代码
end;
//在适当的时候生成按钮,并将预先写好的事件句柄赋予onClick属性
MyBtn:=TButton.Create(Form1);
MyBtn.OnClick:=MyBtnClick;
//要显示按钮必需要指定parent属性
MyBtn.Parent:=form1;
MyBtn.left:=10;
MyBtn.top:=10;
//别忘记适当的时候free掉
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
procedure btnClick(Sender: TObject);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}{ TForm1 }procedure TForm1.btnClick(Sender: TObject);
begin
ShowMessage('ok');
end;procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
mybutton:Tbutton;
begin
mybutton:=Tbutton.Create(nil);
with mybutton do
begin
parent:=Form1;
left:=100;
top:=100;
caption:='click';
onclick:=btnClick;
end;
end;end.