动态创建控件的问题 我动态创建了一些image;现在我想在用户点击了其中一个image时,我能捕捉到是哪个image被点击了,我该怎么做呢?在线等待,谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在创建的时候依次给image的tag赋值然后判断这个值就可以 在Onclick中发送自定义的消息在外面的处理函数中写一个接收该类型消息的处理过程 用onclick发送消息,每个image都是一样的click,岂不发送的说是一个消息? 还有即使我都给每个image 的tag 赋值了,但是当我在其onclick中判断时,每次都是最后一个image 整合上面两位的想法:定义过程:Tform1.imageclick(sender:Tobject);begin showmessage(inttostr((sender as Timage).tag));end;赋值:image1.onclick:=imageclick; 如果在创建时给Caption编码那么OnClick时,可以用(sender as TImage).Caption加以区别!哈哈..只谈想法,我也没实验过... CAMELCN(驼子) 说的没错!用什么自己决定! type TForm1 = class(TForm) Button4: TButton; procedure Button14Click(Sender: TObject); private { Private declarations } procedure CreateImage(Index: integer; Form: TForm); procedure ShowImageClick(Sender: TObject); public end;var Form1: TForm1;...procedure TForm1.Button14Click(Sender: TObject);var i: integer;begin SetLength(Image, 3); for i:= Low(Image) to High(Image) do CreateImage(i, Self);end;procedure TForm1.CreateImage(Index: integer; Form: TForm);begin Image[Index]:= TImage.Create(Form); Image[Index].Parent:= Form; Image[Index].Left:= 100+Index * 100; Image[Index].Top:= 100; Image[Index].Name:= 'Image'+IntToStr(Index); Image[Index].OnClick:= ShowImageClick; Image[Index].Show;end;procedure TForm1.ShowImageClick(Sender: TObject);begin ShowMessage((Sender as TImage).Name);end; procedure TForm1.FormDestroy(Sender: TObject);var i: integer;begin for i:= High(Image) downto low(Image) do Image[i].Free; SetLength(Image, 0);end; ADOQuery 或者 SDAC 批更新时,怎样获取自动生成的 SQL 语句 关于update 急急急,在 delphi里如何实现中英文混合字符截取方法,JAVA里是getBytes().length 调用VC写的COM组件出现问题,高手解答 关于dbgrid控件显示的长度问题? 请问哪里有象QQ一样的控件啊? 画圆的问题 如何实现这样的效果(有点像输入法)急,先谢啦哦 关于滚动箱的,请高手回答! 求教:如何把BDE和我的MIS程序打成包,给用户直接安装使用? 高分求助,UP有分! 怎样获取和更改计算机名
然后判断这个值就可以
在外面的处理函数中写一个接收该类型消息的处理过程
定义过程:
Tform1.imageclick(sender:Tobject);
begin
showmessage(inttostr((sender as Timage).tag));
end;
赋值:
image1.onclick:=imageclick;
那么OnClick时,可以用(sender as TImage).Caption加以区别!
哈哈..只谈想法,我也没实验过...
TForm1 = class(TForm)
Button4: TButton;
procedure Button14Click(Sender: TObject);
private
{ Private declarations }
procedure CreateImage(Index: integer; Form: TForm);
procedure ShowImageClick(Sender: TObject);
public
end;var
Form1: TForm1;...
procedure TForm1.Button14Click(Sender: TObject);
var
i: integer;
begin
SetLength(Image, 3);
for i:= Low(Image) to High(Image) do
CreateImage(i, Self);
end;procedure TForm1.CreateImage(Index: integer; Form: TForm);
begin
Image[Index]:= TImage.Create(Form);
Image[Index].Parent:= Form;
Image[Index].Left:= 100+Index * 100;
Image[Index].Top:= 100;
Image[Index].Name:= 'Image'+IntToStr(Index);
Image[Index].OnClick:= ShowImageClick;
Image[Index].Show;
end;procedure TForm1.ShowImageClick(Sender: TObject);
begin
ShowMessage((Sender as TImage).Name);
end;
var
i: integer;
begin
for i:= High(Image) downto low(Image) do
Image[i].Free;
SetLength(Image, 0);
end;