我曾经看过用windows消息可以实现但不知具体怎么做,谁能具体介绍一下,谢谢了

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TButton =class(StdCtrls.TButton)
        procedure ButtonDblClick(var msg: TMessage); message WM_LBUTTONDBLCLK;
      end;type
      TForm1 = class(TForm)
        Button1: TButton;
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    { TButton }procedure TButton.ButtonDblClick(var msg: TMessage);
    begin
      ShowMessage('ok');
    end;end.
      

  2.   

    继承TButton,做成一个控件unit MyButton;interfaceuses Windows,Classes,Messages,StdCtrls;type TMyButton = class(TButton)
      private
         FOnDblClick: TNotifyEvent;
      published
         property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
         procedure DblClick(var Msg:TMessage);message WM_LBUTTONDBLCLK;
      end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('Standard', [TMyButton]);
    end;procedure TMyButton.DblClick(var Msg:TMessage);
    begin
      if Assigned(FOnDblClick) then FOnDblClick(Self);
    end;end.
      

  3.   

    去看看TNotifyEvent 是怎么声明的,对你理解有好处。