Handbook之007:提前声明函数

如果程序 A 调用程序 B,而程序 B 又调用程序 A,当我们开始撰写这
个程序代码的时候,我们等于是在呼叫一个编译程序还没看到的程序。
 
在这个情形下(还有很多情形也会有类似的情况发生),我们可以先宣告一个
函式或者程序, 把完整的名称、 参数都宣告好, 但不用提供完整的程序代码。
要做到这一点,我们只要把完整的程序或函数名称宣告写好,最后加上一个
forward 关键词即可

image

 

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}

procedure DoubleHello; forward; //forward为提前引用

procedure NewHello;
begin
  if MessageDlg('弹出选择对话框', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0) = mrYes then
    DoubleHello
  else
    ShowMessage('Hello');
end;

procedure DoubleHello;
begin
  NewHello;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DoubleHello;
end;

end.
posted @ 2015-10-23 16:44  GOD攀  阅读(179)  评论(0编辑  收藏  举报