在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
当函数(或过程)A定义在函数(或过程)B之前,那么函数B就可以调用函数A,并且编译成功,例如下面的 procedure TForm1.btn1Click(Sender: TObject); 和 function showstr: string; unit Test; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) btn1: TButton; procedure btn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function showstr: string; begin Result:= 'lala'; end; procedure TForm1.btn1Click(Sender: TObject); begin ShowMessage(showstr); end; end.
当函数(或过程)A定义在函数(或过程)B之后,那么如果函数B调用函数A,在编译时会报错,如下面的例程 还是procedure TForm1.btn1Click(Sender: TObject); 和 function showstr: string; unit Test; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) btn1: TButton; procedure btn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btn1Click(Sender: TObject); begin ShowMessage(showstr); end; function showstr: string; //showstr在TForm1.btn1Click后定义,且没有在它之前进行声明 begin Result:= 'lala'; end; end. 要想当函数(或过程)A定义在函数(或过程)B之后,并且函数B调用函数A,在编译时不报错,那就需要现在B前面声明A,然后再在B中调用A,这时候无论A在B之前定义还是在B之后定义,都能够编译成功。如下面的例程 unit Test; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; function showstr: string; //首先在interface里面声明 type TForm1 = class(TForm) btn1: TButton; procedure btn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function showstr: string; begin Result:= 'lala'; end; procedure TForm1.btn1Click(Sender: TObject); begin ShowMessage(showstr); end; end.
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论