Name
Initialization Keyword
Syntax
unitName; interfaceDeclarations... implementationDeclarationsinitializationStatements... 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
beginkeyword instead ofinitialization, but if you do, the unit ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access