请问各位大侠:我自动创建了一组控件组:
var
  img:array[1..10] of Timage;
    i:integer;
begin
  for i:=1 to 10 do
  begin
    img[i]:=timage.create(self);
  end;
end;
如何定义img[i]的事件,谢谢!

解决方案 »

  1.   

    procedure TForm2.ImageClick(Sender: TObject);
    beginend;var
      img:array[1..10] of Timage;
        i:integer;
    begin
      for i:=1 to 10 do
      begin
        img[i]:=timage.create(self);
        img[i].OnClick:=ImageClick;
      end;
    end;
      

  2.   

    自己写一个
    procedure TForm1.ImgClick(Sender: TObject);
    begin
     ...
     case TImage(Sender).tag of
     1:....
     2:....
     3:....
     ....
     end; //end of case
     ...
    end;在interface的private或public中声明之for i:=1 to 10 do
      begin
        img[i]:=timage.create(self);
        img[i].tag:=i;
        img[i].OnClick:=ImgClick;
      end;将每个img的tag属性编上不同的号,根据tag属性就可以知道触发该事件的是哪一个,
    然后根据需要使用case ... of 分别处理
      

  3.   

    procedure TForm2.ImageClick(Sender: TObject);
     //定义此过程时,参数必须与要引用此过程的控件的事件参数一致
    beginend;var
      img:array[1..10] of Timage;
        i:integer;
    begin
      for i:=1 to 10 do
      begin
        img[i]:=timage.create(self);
        img[i].OnClick:=ImageClick;  
      end;
    end;