我在程序中创建如下对象!
i:=0;
while 条件 do
begin
    i:=i+1;
    myImage[i]:=TImage.create(self);
    myImage[i].parent:=panel1;
    myImage[i].onClick=onImageClick;
    .......
end;procedure TFrmMain.onImageClick(Sender:TObject);
begin
    当前点击的对象.left:=xxx;
    当点点击的对象.top :=xxx;
end;高手那当前点击的对象处的代码要如何表示呢?

解决方案 »

  1.   

    procedure TFrmMain.onImageClick(Sender:TObject);
    var
      vImage:TImage;
    begin
      //在创建的时候就将当前点击对象的序号N存放到对象的Tag属性中,并且Name属性为MyImageN,N为序号
      vImage:=Panel1.FindComponent('MyImage'+IntToStr((Sender as TImage).Tag)) as TImage;
      with vImage do 
      begin
        Left:=1;
        Right:=1;
      end;
    end;
      

  2.   

    procedure TFrmMain.onImageClick(Sender:TObject);
    begin
        TImage(Sender).left:=xxx;
        TImage(Sender).top :=xxx;
    end;