教程-Delphi 启动流程

Project.DPR

InitExe

InitiateModule

StartExec

SetExceptionHandler

InitUnits

sysInit

System

FPUMaskInit

FPUInit

系统相关GetVersion....

Types

Windows

Messages

ActiveX

SysConst

SysUtils

VarUtils

Variants

RtlConsts

TypInfo

Classes

Graphics...

StdCtrls...

Dialogs....

Controls...

Forms

TApplication.Iniatiate

TApplication.CreateForm

TApplication.Run

[SysUtils]

InitExceptions;

[Variants]

InitializeCriticalSection(LVarTypeSync);

[classes]

InitThreadSynchronization;

AddModuleUnloadProc(ModuleUnload);

GlobalNameSpace := TMultiReadExclusiveWriteSynchronizer.Create;

RegGroups := TRegGroups.Create;

IntConstList := TThreadList.Create;

GlobalFixupList := TThreadList.Create;

[grapics.pas]

InitScreenLogPixels;

InitializeCriticalSection(BitmapImageLock);

InitializeCriticalSection(CounterLock);

StockPen := GetStockObject(BLACK_PEN);

StockBrush := GetStockObject(HOLLOW_BRUSH);

StockFont := GetStockObject(SYSTEM_FONT);

StockIcon := LoadIcon(0, IDI_APPLICATION);

InitDefFontData;

FontManager := TResourceManager.Create(SizeOf(TFontData));

PenManager := TResourceManager.Create(SizeOf(TPenData));

BrushManager := TResourceManager.Create(SizeOf(TBrushData));

PatternManager := TPatternManager.Create;

BitmapCanvasList := TThreadList.Create;

CanvasList := TThreadList.Create;

RegisterIntegerConsts(TypeInfo(TColor), IdentToColor, ColorToIdent);

RegisterIntegerConsts(TypeInfo(TFontCharset), IdentToCharset, CharsetToIdent);

[Controls.pas]

NewStyleControls := Lo(GetVersion) >= 4;

InitControls;

Mouse.create

Screen.create

Application.create

StartClassGroup(TControl);

ActivateClassGroup(TControl);

GroupDescendentsWith(TCustomImageList, TControl);

GroupDescendentsWith(TContainedAction, TControl);

GroupDescendentsWith(TCustomActionList, TControl);

[Forms]

InitProcs;

RM_TaskBarCreated := RegisterWindowMessage('TaskbarCreated');

Classes.RegisterFindGlobalComponentProc(FindGlobalComponent);

[Dialogs.pas]

InitGlobals;

StartClassGroup(TControl);

ActivateClassGroup(TControl);

GroupDescendentsWith(TCommonDialog, TControl);

[Project]

Application.Initiate

Application.CreateForm

Application.Run