Name
Initialization Keyword
Syntax
unitName
; interfaceDeclarations
... implementationDeclarations
initializationStatements
... end.
Description
The statements in a unit’s initialization
section run when Windows loads the module (application, DLL, or
package) that contains the unit. Delphi first runs the
initialization
section for all the units the
Name
unit uses, in order of appearance,
starting with the interface
units, followed by the
implementation
units. A unit’s
initialization section runs after Delphi runs the initialization
section for all used
units.
Delphi keeps track of which units have been initialized, so a
unit’s initialization
section never runs
more than once.
Tips and Tricks
Delphi initializes units in a depth-first manner. If you need your unit to be initialized first, make sure it is listed first in the project’s .dpr file. Setting a new memory manager is a common example of a unit that must be initialized first.
The order of unit initialization means you cannot know for certain when your unit will be initialized, but all the units used in the interface section will be initialized first.
Units are finalized in reverse order of initialization.
Even if a unit does not declare an initialization section, Delphi automatically creates one. For a large project, starting an application or loading a DLL can result in a lot of page faults as Windows pages in the initialization code for every unit.
You can use the
begin
keyword instead ofinitialization
, but if you do, the unit ...
Get Delphi in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.