这部分代码相当于是在initialization段内吗? ( 积分: 100 )

  • 主题发起人 主题发起人 awfigsk
  • 开始时间 开始时间
A

awfigsk

Unregistered / Unconfirmed
GUEST, unregistred user!
unit Splash;

interface

uses Windows, Classes, Graphics, Forms, Controls, StdCtrls,
ExtCtrls;

type
TSplashScreen = class(TForm)
StatusPanel: TPanel;
end;

var
SplashScreen: TSplashScreen;

implementation

{$R *.DFM}

[red]begin
SplashScreen := TSplashScreen.Create(Application);
SplashScreen.Show;
SplashScreen.Update;
end.[/red]

红色这部分代码是相当于在initialization部分吗?如果在一个项目中引用了该单元,这部分代码在主程执行前执行?是这样吗?
 
unit Splash;

interface

uses Windows, Classes, Graphics, Forms, Controls, StdCtrls,
ExtCtrls;

type
TSplashScreen = class(TForm)
StatusPanel: TPanel;
end;

var
SplashScreen: TSplashScreen;

implementation

{$R *.DFM}

[red]begin
SplashScreen := TSplashScreen.Create(Application);
SplashScreen.Show;
SplashScreen.Update;
end.[/red]

红色这部分代码是相当于在initialization部分吗?如果在一个项目中引用了该单元,这部分代码在主程执行前执行?是这样吗?
 
完全正确
initialization块是
he initialization section contains statements that are executed, in the order in which they appear, on program start-up. So, for example, if you have defined data structures that need to be initialized, you can do this in the initialization section.

The initialization sections of units used by a client are executed in the order in which the units appear in the client uses clause.
也就是调用就会自动执行的,而上面的代码和initialization效果类似,只有有人引用它就会被执行。

在dpr文件,也就是工程文件中, Application.Initialize;前,系统会自动搜索所有被引用单元的initialization块或者收楼主说的这个内容,然后执行,执行完毕以后才开始真正的application的那些操作,个人看法,供参考
 
是的。
但是这样的写法,没有对应于Finxxx的那部分.而这在一些需要清理资源的场合还是需要的.
 
application.initialize块是在其引用单元的initialization块或如第一贴上的代码执行完后再执行吗?
 
对,你自己可以跟踪一下
 
呵。。是呵。。自己真笨!!!
谢谢各位!分数奉上!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部