我有一个应用程序,其中有多个表单。所有这些表单都有一个弹出菜单。我通过编程方式构建菜单项,所有菜单项都在一个公共根菜单项下方。我想让所有菜单项调用同一个程序,并且菜单项本身基本上是作为参数。
当我只有一个表单执行此功能时,我已经将其工作。现在我有多个需要执行此操作的表单。我正在将所有代码移动到一个公共单元中。
Example.
Form A has PopupMenu 1. When clicked, call code in Unit CommonUnit.
Form B has PopupMenu 2. When clicked, call code in unit CommonUnit.
当我需要从每个表单调用我的弹出窗口时,我会调用位于CommonUnit单元中的顶级过程,并将每个表单中顶部菜单项的名称传递给通用单元中的顶级过程。
我正在使用代码向PopupMenu添加项目。
M1 := TMenuItem.Create(TopMenuItem);
M1.Caption := FieldByName('NAME').AsString;
M1.Tag := FieldByName('ID').AsInteger;
M1.OnClick := BrowseCategories1Click;
TopMenuItem.Add(M1);
编译时我得到了一个错误信息。具体来说,OnClick行在抱怨:
不兼容类型:'方法指针和常规过程'。
我已经像在单个窗体上做这件事情时那样准确地定义了BrowseCategories1Click。唯一的区别是它现在是在一个公共单元中定义的,而不是作为窗体的一部分。
它被定义为
procedure BrowseCategories1Click(Sender: TObject);
begin
//
end;
有什么最简单的方法来解决这个问题吗?
谢谢 GS
self
еҸӮж•°пјҲеҚіжӢҘжңүзҡ„иЎЁеҚ•пјүпјҢиҜҘжҖҺд№ҲеҠһпјҹ - Johan