implementation
type
Add = function(I : Integer):Integer; //声明一个方法类型,真心觉得delphi中的类型太多太多了,需要学习的路还很长.//--------------------------------------------------------------------------------------------------------------------function Addx(I : Integer): Integer; //声明一个和上面方法类型相同参数的函数。 begin Result := I * 2; end;function AddS(I : Integer;Fun : Add):Integer; //以方法类型作为参数
begin Result := I + Fun(I); ShowMessage(IntToStr(Result));end; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject);var IncX : Add; // 声明方法类型的变量。 I : Integer;begin IncX := Addx; //让这个方法类型指向和它相同参数的变量、 I := IncX(4); //现在操作这个IncX就等于操作Add。他们已经具备相同的功能; ShowMessage(IntToStr(I)); // 结果是8end;procedure TForm1.Button1Click(Sender: TObject);
var IncX : Add;begin IncX := Addx; //回调函数的实现 AddS(2,IncX); //结果 = 6 因为 2 + 2*2 =6end;end.