//要点18: 如果函数在接口区定义了, 就无需用 forward 提前声明了 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; {现在函数定义在接口区(interface)} function MyFunA(x: Integer): Integer; function MyFunB(x: Integer): Integer; implementation {$R *.dfm} function MyFunA(x: Integer): Integer; begin Result := MyFunB(x) * 3; {因为在接口区有了声明, 前面的函数就可以调用后的函数了} end; function MyFunB(x: Integer): Integer; begin Result := Abs(x); end; {调用测试} procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin i := MyFunA(-3); ShowMessage(IntToStr(i)); {9} end; end.