type TFunc=procedure; procedure MyFunc; begin ShowMessage('Run my func'); end;  procedure TForm1.Button1Click(Sender: TObject); var ptr:Pointer; func:TFunc; begin func :=  MyFunc; func; //ok ptr := @@func;  //误写作ptr := @func;报内存访问错误 TFunc(ptr^); end;


但是这样也可以:


procedure TForm1.Button1Click(Sender: TObject); var ptr:Pointer; func:TFunc; begin func :=  MyFunc; func; //ok ptr := @func;   TFunc(ptr); end;


后续...