想使用自己的menuitem.onclick函数                    
但是除了tobject之外还想传一个字符串。
请问如何改onclick我是动态creat了一个menuitem.
想menuitem.onclick:=myonclick,不行啊。
说calling convertion differs

解决方案 »

  1.   

    这是动态创建的例子
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Menus;type
      TForm1 = class(TForm)
        MainMenu1: TMainMenu;
        sad1: TMenuItem;
        asdsad1: TMenuItem;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        procedure MyClick(Sender:TObject);
      private
        MyItem:TMenuItem;
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
          MyItem:=TMenuItem.Create(self);
          sad1.Insert(0,MyItem);
          MyItem.Caption:='动态创建';
          MyItem.OnClick:=MyClick;
    end;procedure TForm1.MyClick(Sender: TObject);
    begin
            ShowMessage('动态创建');
    end;end.
      

  2.   

    自己做一個函數ONCLICK_A(Sender: TObject,str:string)當執行item1Click時﹕
    procedure TForm1.item1Click(Sender: TObject);
    begin
      onclick(sender,str);
    end;
      

  3.   

    MyItem.OnClick:=MyClick;
    这两个东西的类型都不同当然不能这么写。
    一个是tnotifytion一个是procedure类型