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