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;
后续...