先要在TForm类内自行加上OnMouseDown等的事件
处理子程序TForm1.Image1MouseDown(...),这是
静态的;
动态创建好TImage的Imagei后,对事件属性赋值;
Image1.OnMouseDown:=Form1.Image1MouseDown;

解决方案 »

  1.   

    我创建的Image接受用户输入后要绘图,在Image未创建前如果访问可是非法的。所以用方法指针赋值似乎不行呢
      

  2.   

    告诉你一个最笨但最简单的方法,在设计的FORM中放一个TIMAGE,设置其属性VISIBLE:= FALSE,设置其所有事件的代码,注意代码中有关控件的代码一律改为(Sender as TImage)。
    然后,你只要将动态创建的控件的事件与设计时的事件相等即可实现了。
      

  3.   

    事件处理是静态的,就是说:Image1创建前,就要把事件处理
    定义好,在什么地方定义? 在TForm1中定义!哪TImage对象是什么?
    就是Sender!!!!!!
      

  4.   

    简单做法是:
        1.在Form1上加一个控件TImage,将.Name改成Image0;
        2.双击Image0的事件属性OnMouseMove,生成事件处理子程序Image0MouseMove(Sender:...),写上自已的处理代码,一定用Sender作为你的处理对象,可强制类型转换;
          var Image1:TImage;
          Image1:=TImage(Sender);   // 强制类型转换,俺不知DELPHI的具体语法    3.用鼠标删除Image0控件,但它的事件代码仍会存在;
        4.程序中,新建一个对象TImage,将它的.OnMouseMove事件属性
          指向Image0MouseMove;即:  
                 var Image1:TIimage;
                 Image1.Create;
                 Image1.OnMouseMove:=Image0MouseMove;
                 ...........不信解决不了你的动态TImage