好象是不行,OnClick为TNotifyEvent,强加就挂不上单击事件
要不自己写个控件处理相应消息来调用自己定义的事件不知要增加什么类型的参数
可把Sender转为TButton,取他的Tag

解决方案 »

  1.   

    不行,增加一个传入参数你也无法为它赋值,不过你可以定义一个函数在Button1Click中调用来解决
      

  2.   

    可以的。我做了一个例子,是相应鼠标中键的双击事件,其参数有两个。第二个参数是通过一个published属性Test来获取:unit MyTestEdit;interfaceuses
      Windows, Messages, SysUtils, Classes, Controls, StdCtrls;type
      TMyEvent = procedure(Sender: TObject; A: Integer) of object;  TMyTestEdit = class(TEdit)
      private
        { Private declarations }
        FOnMyClick: TMyEvent;
        FTest: Integer;
        procedure DoClick(var Msg: TWMMBUTTONDBLCLK); message WM_MBUTTONDBLCLK;
      protected
        { Protected declarations }
      public
        { Public declarations }
      published
        { Published declarations }
        property OnMyClick: TMyEvent read FOnMyClick write FOnMyClick;
        property Test: Integer read FTest write FTest;
      end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('Sample', [TMyTestEdit]);
    end;{ TMyTestEdit }procedure TMyTestEdit.DoClick(var Msg: TWMMBUTTONDBLCLK);
    begin
      if Assigned(FOnMyClick) then
        FOnMyClick(Self, Test);
      inherited;
    end;end.
      

  3.   

    测试程序为:(Delphi 6,Win2k通过)unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, MyTestEdit;type
      TForm1 = class(TForm)
        MyTestEdit1: TMyTestEdit;
        procedure MyTestEdit1MyClick(Sender: TObject; A: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.MyTestEdit1MyClick(Sender: TObject; A: Integer);
    begin
      ShowMessage(IntToStr(A));
    end;end.
      

  4.   

    to dancemaple:这样当然可以了!自己处理消息,与xzgyb(老达摩)说的一样