如何判断动态创建的一组图像中的那一个被点击 ( 积分: 100 )

  • 主题发起人 主题发起人 loveknot
  • 开始时间 开始时间
L

loveknot

Unregistered / Unconfirmed
GUEST, unregistred user!
一组动态创建的图像数组:ImgArr;(70个)
一个PopUpMenu,一个Label
已完成:
右键点击某个图像,运行弹出菜单中的选项(这个很简单)
问题:
运行选项后,如何在Label控件上面显示被点击图像的名称.

在线立等,谢谢出手!
 
一组动态创建的图像数组:ImgArr;(70个)
一个PopUpMenu,一个Label
已完成:
右键点击某个图像,运行弹出菜单中的选项(这个很简单)
问题:
运行选项后,如何在Label控件上面显示被点击图像的名称.

在线立等,谢谢出手!
 
function ControlAtPos(const Pos: TPoint; AllowDisabled: Boolean, AllowWinControls:Boolean=False): TControl;
-----------------------------------------------
http://www.coderpub.com 技术论坛欢迎原创文章
 
//全局变量
var
sControlName: string;

ImgArr.OnMouseDown := ImageMouseDown;

procedure TForm1.MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
sControlName := (Sender as TImage).Names
end;
 
可以在图像控件的
MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
上面做些文章吗?先判断是否有键落下,再判断是否是右键落下,如果两者条件都据备,就将自己的NAME打出来,不就OK了吗?
这里有一些从前别人的资料,你参考一下吧
Li Fei (2000-03-29 11:10:00)
我在程序中动态的创建了多个TImage控件,并用自己编写的处理事件的过程
MyClick覆盖了控件的标准过程OnClick,但当MyClick被激发时,我无法确定到底是哪一个Image激发了该事件(由于TImage控件不能得到焦点,故不能从Self.ActiveControl即窗体的当前活动控件中得到),请各位网友帮我想个办法,非常感谢!

cAkk (2000-03-29 11:15:00)
从OnClick事件过程的Sender可以得到,Sender就是被点击的Image.

建议你给image的tag属性赋不同的值,然后在OnClick里面判断以下
(Sender As Timage).tag就知道被点击的是谁了.
 
在创建Image的时候,给Image赋Popupmenu的值
例如 for i:= 0 to 10 do
begin
Image := TImage.Create(Self);
Image.PopupMenu := PopupMenu;
end;

然后在popupmenu的菜单点击事件中,按以下代码取
if (PopupMenu1.PopupComponent is TImage) then
begin
label1.Caption := (PopupMenu1.PopupComponent is TImage).Name;
end;
 
多人接受答案了。
 
后退
顶部