Name

Initialization Keyword

Syntax

unit Name;
interface Declarations...
implementation Declarations
initialization Statements...
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 of initialization, but if you do, the unit cannot have a finalization section.

Example

See the unit keyword for an example.

See Also

Begin Keyword, Finalization Keyword, Implementation Keyword, SetMemoryManager Procedure, Unit Keyword
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset