Handbook之012:函数类别构型
定义函数构型,然后在再调用函数
代码如下:
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses System.Diagnostics, System.Math; //函数定义 procedure ShowOnMemo(ACount: Integer); var m_Watch: TStopwatch; I, J: Integer; begin J := 0; m_Watch := TStopwatch.StartNew; for I := 0 to ACount do begin J := Max(I, J); end; m_Watch.Stop; Form1.Memo1.Lines.Add('循环总耗时: ' + m_Watch.ElapsedMilliseconds.ToString); end; //定义函数构型 type TIntProc = procedure(Num: Integer); //计时 procedure TForm1.Button1Click(Sender: TObject); var m_Pro: TIntProc; m_Count: Integer; begin m_Pro := ShowOnMemo; m_Count := 2000000; m_Pro(m_Count); end; end.