建立继承Image的class,无法可视化拖动,而且每个图片都要create和free一次

解决方案 »

  1.   

    unit myImage;interfaceuses
      Windows, SysUtils, Classes,extctrls,
      Controls, Forms, Menus, Graphics,messages;type
      myImage1 = class(TImage)
      private
        FOnMouseLeave: TNotifyEvent;
        FOnMouseEnter: TNotifyEvent;
        { Private declarations }
      protected
        { Protected declarations }
      public    { Public declarations }
      published
        property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
        property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
        procedure mouseIn(var msg:TMESSAGE);message CM_MOUSEENTER;
        procedure mouseLeft(var msg:TMESSAGE);message CM_MOUSELEAVE;
        { Published declarations }
      end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('standard', [myImage1]);
    end;{ myImage1 }procedure myImage1.mouseIn(var msg: TMESSAGE);
    begin
      inherited;
      if Assigned(FOnMouseEnter) then
        FOnMouseEnter(Self);
    end;procedure myImage1.mouseLeft(var msg: TMESSAGE);
    begin
      inherited;
      if Assigned(FOnMouseLeave) then
        FOnMouseLeave(Self);
    end;end.