我在程序中动态添加5个Image控件,需要添加鼠标事件处理,并判断点击的是哪一个控件,请问怎样处理?

解决方案 »

  1.   

    Image1.OnClick:=你的处理函数
    ...处理函数必须是 xxxx(Sender: TObject);形式的
    通过Sender可以判断触发事件的是谁
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls,extCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        procedure ImageClick(Sender: TObject);
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ImageClick(Sender: TObject);
    begin
      ShowMessage((Sender as Timage).Name);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
      Image:array[0..3] of TImage;
    begin
      for i := low(Image)  to high(Image)  do
      begin
        Image[i]:=TImage.Create(self);
        Image[i].Left:=60;
        Image[i].Name:='Image'+inttostr(i);
        Image[i].Left:=(20+Image[i].Width)*i;
        Image[i].Canvas.FillRect(Image[i].Canvas.ClipRect);
        Image[i].OnClick:=ImageClick;
        Image[i].Parent:=self;
      end;end;end.
      

  3.   

    可以通过Name或者Tag等其他属性来标记是哪个控件
                                   ______________http://hthunter.vicp.net/