请问大家,在动态生成的组件中,如何加入事件内容?
我用var
  MyImage:TImage;
begin
  MyImage:=TImage.create(self);
  MyImage.parent:=Form1;
end;
......想在MyImage的OnMouseMove事件中加入一些方法,不知如何编写,恳请各位高手不吝赐教!
                                                        初级小菜鸟

解决方案 »

  1.   

    定义一个函数
    procedure OnStyleMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    然后
    begin
      MyImage:=TImage.create(self);
      MyImage.parent:=Form1;
      
    MyImage.OnMouseMove:=OnStyleMouseMove;
    end;
    函数实现
    procedure TForm1.OnStyleMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    beginend;
      

  2.   

    谢谢,如我还想在动态生成一个数组序列的TImage,怎么确认当前激活的组件呢?
    var
      MyImage:array[0..100] of TImage;
      i:integer=0;
    begin
      MyImage[i]:=TImage.create(self);
      MyImage[i].parent:=Form1;
    end;
    procedure Form1.OnMouseDown(...);
    begin
      //如何确定我点击的是哪一个MyImage[]
    end;
    ......
      

  3.   

    MyImage[i].tag := i;procedure Form1.OnMouseDown(Sender: Tobject);
    begin
      case TImage(Sender).tag of 
        0:
          begin
          end;
        1:
          begin
          end;
      end;
    end;
      

  4.   

    To:rustle() 
    但是我的疑问是:
    i是一个动态的值,是程序可以改变的,case 无法完全实现所有的i值呀!
      

  5.   

    rustle() 兄写的很好呀,如果i是一个动态的话,你可以把i定义称全局变量呀,然后判断i的大小来写它的事件不就行了。
      

  6.   

    ft你不要光看那个case语句,你完全可以不用它试着写一个Function DoEvent(i: Integer)你就明白了