Delphi匿名方法

来源:互联网 发布:注册淘宝网店铺流程 编辑:程序博客网 时间:2024/05/16 07:20
unit Unit1;


interface


uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;


type
  //首先声明匿名方法的类型
  TIntSum = reference to function (x, y: Integer): Integer;


  //引用方法的声明
  //TIntProcedure = function (x, y: Integer): Integer of object;


  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    function plusXandY(x, y: Integer; intSum: TIntSum): integer;
    { Private declarations }
  public
    { Public declarations }
  end;




var
  Form1: TForm1;


implementation


{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowMessageFmt('x + y = %d',
                 [plusXandY(10,
                            15,
                            function (x, y: Integer): Integer
                            begin
                              Result := x + y;
                            end)
                 ]);
  ShowMessageFmt('x + y = %d',
                 [plusXandY(20,
                            1500,
                            function (x, y: Integer): Integer
                            begin
                              Result := x * y;
                            end)
                 ]);


end;


function TForm1.plusXandY(x, y: Integer; intSum: TIntSum): integer;
begin
  Result := intSum(x, y);
end;


end.
原创粉丝点击