使用Delphi,无法使用anonymus类型作为记录类型?

RM.*_*RM. 8 delphi anonymous-methods

我不明白为什么以下小型控制台应用程序无法编译:

program Project1;

type
  TProc = reference to procedure;

  TMyRec = record
    Proc: TProc;
  end;

var
  myProc: TProc;
  myRec: TMyRec;

begin
  myProc := procedure begin writeln; end;
  myProc; // compiles fine
  myRec.Proc := procedure begin writeln; end;
  myRec.Proc; //E2014 Statement exptected, but expression of type 'TProc' found
end.
Run Code Online (Sandbox Code Playgroud)

ain*_*ain 11

您必须添加括号以表示您正在调用该过程; 即

myRec.Proc();
Run Code Online (Sandbox Code Playgroud)