If program A calls program B, and program B calls program A, when we start writing this
Program code, we are calling a program that has not yet been seen by a compiled program.
In this case (and in many cases there will be a similar situation), we can first declare a
A function or program that declares the complete name and parameters, but does not provide complete program code.
To do this, we just write the complete program or function name, and finally add a
Forward key Words can
UnitUnit1;Interfaceuseswinapi.windows, Winapi.messages, System.sysutils, System.variants, system.classes, Vcl.graphics, Vcl.Controls, Vcl.forms, Vcl.dialogs, Vcl.stdctrls;typeTForm1=class(tform) Memo1:tmemo; Button1:tbutton; procedureButton1Click (Sender:tobject); Private {Private Declarations} Public {Public Declarations} End;varForm1:tform1;Implementation{$R *.DFM}procedureDoublehello;forward;//forward for early referenceprocedureNewhello;begin ifMessagedlg ('Pop-up selection dialog box', Tmsgdlgtype.mtconfirmation, [Tmsgdlgbtn.mbyes, Tmsgdlgbtn.mbno],0) = Mryes ThenDoublehelloElseShowMessage ('Hello');End;procedureDoublehello;beginNewhello;End;procedureTform1.button1click (sender:tobject);beginDoublehello;End;End.
Handbook 007: Declaring the function in advance