【发布时间】:2021-12-01 12:09:34
【问题描述】:
我有:
TMyProc = reference to procedure(const adata: String);
TMyObject = Class(Tobject)
private
FMyProc: TMyProc ;
public
Property MyProc: TMyProc read FMyProc write FMyProc;
end;
和
TAnObject = Class(Tobject)
public
procedure MyProcImpl(const adata: integer); overload;
procedure MyProcImpl(const adata: String); overload;
end;
我想做类似的事情
MyObject.MyProc := AnObject.MyProcImpl;
但我得到Incompatible types: 'TMyProc' and 'Procedure of object'。我该怎么办?
【问题讨论】:
-
哦,是的,编辑有点改变了问题!这就是为什么您应该为此类问题添加minimal reproducible example。如果你做了一个,你就会意识到你原来的问题是不正确的。在 10k 代表你现在应该知道这一点。请注意这一点。
-
对不起@DavidHeffernan :( 我发布问题太快了我的错 :(
-
只能将事件方法添加到匿名方法变量(当然也可以是匿名方法)
-
@delphi 我不太明白那句话。您不会向匿名方法变量添加任何内容。你分配他们。您可以分配标准程序,即不是方法。事件方法不是一回事。事件不是语言的一部分。事件只是对象方法类型的属性的约定。
标签: delphi