【发布时间】:2020-08-22 06:50:41
【问题描述】:
我试图将一个过程作为另一个过程的参数引用,但无法理解文档。(http://docwiki.embarcadero.com/RADStudio/Sydney/en/Procedural_Types_(Delphi))
据我了解,我需要为该过程创建一个新类型..
type
TCallback = procedure of object;
并将高阶过程声明为
procedure HigherOrder(pProc: TCallback);
尝试调用函数时(单击按钮时)收到编译错误“E2010 Incompatible types: 'TCallBack' and 'procedure, untyped pointer or untyped parameter'”
type
TCallBack = procedure of object;
TfrmMain = class(TForm)
btnAct: TButton;
procedure btnActClick(Sender: TObject);
private
procedure HigherOrder(pProc: TCallback);
procedure Callback();
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
{ TfrmMain }
procedure TfrmMain.btnActClick(Sender: TObject);
begin
HigherOrder(Callback()); <--Error occurs here
end;
procedure TfrmMain.Callback;
begin
//Do some stuff
end;
procedure TfrmMain.HigherOrder(pProc: TCallback);
begin
//Do some other stuff
pProc();
end;
end.
非常感谢任何帮助。我对 delphi 编程很陌生。
【问题讨论】: