Delphi动态创建控件

q296361388 2013-05-01 08:19:15
现在我动态创建了TIMage控件 也写了它双击的事件 但是我想在双击的时候获取这个Image控件的名称
请问怎么写
...全文
319 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Andy-88 2013-05-20
  • 打赏
  • 举报
回复
楼上说的 认同 我平时用的用动态数组来 来记录动态的建的对象 这个9楼 的同学已经给了 当然你若非要用名字 6楼 的正解
tcmakebest 2013-05-09
  • 打赏
  • 举报
回复
控件名称只是在写代码的时候用来获取控件对象,而动态创建的控件已经直接获取到对象了,名称已经没有意义。
dongmei757 2013-05-08
  • 打赏
  • 举报
回复
在创建TIMage时,给image赋予name属性,加个tag

SetLength(image,4);
......
image[i] := TImage.Create(Self);
image[i].Caption := '打开';
image[i].Name := '名称'+inttostr(i);
image[i].Tag := i;
image[i].Top := top;
image[i].Left := Left;
image[i].OnClick := ClickImage;
......
在image的ClickImage点击事件中

 if sender is TImage then
   begin
      i := (sender as TImage).tag;
      showmessage(image[i].name);
   end;
hongss 2013-05-08
  • 打赏
  • 举报
回复
cqs6616 2013-05-07
  • 打赏
  • 举报
回复
看看你自己创建timgage控件时的问题
superlixiao78 2013-05-01
  • 打赏
  • 举报
回复
引用 2 楼 q296361388 的回复:
[quote=引用 1 楼 superlixiao78 的回复:] var s_name: string; begin if sender is Timage then s_name:=Timage(sender).name; end
showmessage 是空的 [/quote] 应该是你在创建的时候没有给这个组件命名。楼上是创建时命名代码。
sololie 2013-05-01
  • 打赏
  • 举报
回复
同LS,创建时需给它个name

var
  img: Timage;
begin
  img := TImage.Create(Self);
  img.Name := 'myImg';
  .....
多壮志 2013-05-01
  • 打赏
  • 举报
回复
引用 4 楼 dobetterthatnthink 的回复:
(sender as Tbutton).name
应该是你创建的时候没有赋予name属性,哪种写法都一样
多壮志 2013-05-01
  • 打赏
  • 举报
回复
(sender as Tbutton).name
随行的太阳 2013-05-01
  • 打赏
  • 举报
回复
q296361388 2013-05-01
  • 打赏
  • 举报
回复
引用 1 楼 superlixiao78 的回复:
var s_name: string; begin if sender is Timage then s_name:=Timage(sender).name; end
showmessage 是空的
superlixiao78 2013-05-01
  • 打赏
  • 举报
回复
var s_name: string; begin if sender is Timage then s_name:=Timage(sender).name; end

5,388

社区成员

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

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