我有一个方法:
procedure Frob(Sender: TObject);
当我点击一个菜单项时我想调用它。
该方法通过一个界面来找我:
animal: IAnimal;
IAnimal = interface
procedure Frob(Sender: TObject);
end;
问题围绕分配给
OnClick
的内容展开。菜单项(即控件)的事件处理程序:var
animal: IAnimal;
...
begin
...
menuItem := TMenuItem.Create(FileMenu)
menuItem.Caption := 'Click me!';
menuItem.OnClick := <-------- what to do
...
end;
显而易见的选择,my first attempt, and the wrong answer is :
menuItem.OnClick := animal.Frob;
那么如何可以当用户单击控件时我调用一个方法?
也可以看看
最佳答案
让您拥有的任何对象将动物保存在私有(private)字段中,然后设置一个调用它的方法。像这样:
procedure TMyClass.AnimalFrob(Sender: TObject);
begin
FAnimal.Frob(sender);
end;
然后解决方案变得简单:
menuItem.OnClick := self.AnimalFrob;
关于Delphi:单击控件时如何调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2829844/