如何为运行时创建的组件接收信息?
例如,我在运行时创建了一个image2组件,设计时是没有的,所以在Object inspector中是没有image2的,
如何接收image2的click事件信息?

解决方案 »

  1.   

    接收?响应吧?动态创建Image后,也要动态写Click事件的
      

  2.   

    其实不难,你新建一个image,创建一个click事件,然后看看delphi如何将该函数绑定在image的onclick上就知道了,LZ把那几个pas,dpr打开看下就明白了
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;type
      TForm1 = class(TForm)
        btn1: TButton;
        procedure btn1Click(Sender: TObject);
      private
        procedure DemoClick(Sender: TObject);
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DemoClick(Sender: TObject);
    begin
      ShowMessage('ImageClick');
    end;procedure TForm1.btn1Click(Sender: TObject);
    var
      Myimg: TImage;
    begin
      Myimg:= Timage.Create(Self);
      Myimg.Parent:= Form1;
      Myimg.Top:= 8;
      Myimg.Left:= 8;
      Myimg.Width:= 100;
      Myimg.Height:= 100;
      Myimg.Picture.LoadFromFile('D:\Logo.bmp');
      Myimg.OnClick:= DemoClick;
    end;end.
      

  4.   

    简单点就是 先拖一个IMAGE组件  点击相应的事件 它就自动生成事件函数
    procedure TForm1.Image1Click(Sender: TObject);
    begin
      TImage(Sender).Picture := XXX;
    end;把相应的功能写好 一般是 TImage(sender).xxx然后 你把事件函数名复制 把IMAGE组件删除
    再如3楼一样 Myimg.OnClick:= Image1Click; 动态关联事件就行了
    像button点击什么的都可以这样
      

  5.   

    谢谢各位,思想基本清楚了,真正做起来还有些麻烦,因为我实际要的是mousedown事件。