SetWindowLong(FHandle, GWL_ID, FHandle);
end;
StrDispose(FText);
FText := nil;
UpdateBounds;
Perform(WM_SETFONT, FFont.Handle, 1);
if AutoSize then AdjustSize;
end;
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΎΠΏΡΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ Π·Π΄Π΅ΡΡ, Π° Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ CreateWindowHandle, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ: ΠΎΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ·ΠΎΠ²Π° API-ΡΡΠ½ΠΊΡΠΈΠΈ CreateWindowEx Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ Π±Π΅ΡΡΡΡΡ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ Params ΡΠΈΠΏΠ° TCreateParams (Π»ΠΈΡΡΠΈΠ½Π³ 1.10)
ΠΠΈΡΡΠΈΠ½Π³ 1.10. ΠΠ°ΠΏΠΈΡΡ TCreateParamsTCreateParams = record
Caption: PChar;
Style: WORD;
ExStyle: DWORD;
X, Y: Integer;
Width, Height: Integer;
WndParent: HWnd;
Param: Pointer;
WindowClass: TWndClass;
WinClassName: array[0..63] of Char;
end;
Π Π·Π°ΠΏΠΈΡΠΈ Params Ρ ΡΠ°Π½ΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠΊΠ½Π°, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΡ WindowCreateEx, ΡΠ°ΠΊ ΠΈ ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (ΠΏΠΎΠ»Ρ WindowClass ΠΈ WndClassName). ΠΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ CreateParams Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ²ΠΎΠΉΡΡΠ² ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΡ Π² Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°Ρ , ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈΠ»Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΡΠΈΠ»Ρ WS_EX_CLIENTEDGE (ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ, WS_EX_STATICEDGE), ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠΊΠ½ΠΎ Ρ Π½Π΅ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΠ°ΠΌΠΊΠΎΠΉ (Π»ΠΈΡΡΠΈΠ½Π³ 1.11).
ΠΠΈΡΡΠΈΠ½Π³ 1.11. ΠΠ΅ΡΠ΅ΠΊΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° CreateParamsprocedure TForm1.CreateParams(var Params: TCreateParams);
begin
// ΠΡΠ·ΠΎΠ² ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ΠΉ
// Π·Π°ΠΏΠΈΡΠΈ Params
inherited CreateParams(Params);
// ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ»Π°Π³ WS_EX_CLIENTEEDGE ΠΊ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΌΡ ΡΡΠΈΠ»Ρ ΠΎΠΊΠ½Π°
Params.ExStyle := Params.ExStyle or WS_EX_CLIENTEDGE;
end;
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅Π ΡΠ°Π·Π΄. 1.1.4 ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΈΠΌΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ VCL ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄Π»Ρ ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ° ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΈΠΌΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ Params.WinClassName.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²ΡΠ΅ΠΌ Π±Π΅Π· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΌΠ΅ΡΠΎΠ΄ CreateWnd Π½Π°Π·Π½Π°ΡΠ°Π΅Ρ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ β InitWndProc. ΠΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ VCL, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠΊΠΎΠ½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ Π½Π΅ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ CreateParams, Π° Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ CreateWnd, ΡΡΠΎΠ±Ρ Π² Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°Ρ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (ΠΌΠ΅ΡΠΎΠ΄ CreateWnd ΡΠΎΠΆΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ, Π½ΠΎ ΠΏΡΠΈ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°).
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° InitWndProc, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° CreateWnd: ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ CreateWindowHandle (Ρ.Π΅. Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠ½Π°) ΠΎΠ½ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π‘reationΠ‘ontrol. ΠΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ InitWndProc (Π»ΠΈΡΡΠΈΠ½Π³ 1.12).
ΠΠΈΡΡΠΈΠ½Π³ 1.12. ΠΠΊΠΎΠ½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° InitWndProcfunction InitWndProc(HWindow: HWnd; Message, WParam, LParam: LongInt): LongInt;
begin
CreationControl.FHandle := HWindow;
SetWindowLong (HWindow, GWL_WNDPROC, LongInt(CreationControl.FObjectInstance));
if (GetWindowLong(HWindow, GWL_STYLE) and WS_CHILD <> 0) and (GetWindowLong(HWindow, GWL_ID) = 0) then
SetWindowLong(HWindow, GWL_ID, HWindow);
SetProp(HWindow, MakeIntAtom(ControlAtom), THandle(CreationControl));
SetProp(HWindow, MakeIntAtom(WindowAtom), THandle(CreationControl));
asm
PUSH LParam
PUSH WParam
PUSH Message
PUSH HWindow
MOV EAX, CreationControl
MOV CreationControl, 0
CALL [EAX].TWinControl.FObjectInstance
MOV Result, EAX
end;
end;
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ InitWndProc Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 1.12 Π²Π·ΡΡ ΠΈΠ· Delphi 7. Π Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ ΠΊΠΎΠ΄ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΠΊΠΎΠ½, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ Unicode, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ Π²ΡΠ±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ ANSI- ΠΈ Unicode-Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ API (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ANSI- ΠΈ Unicode-Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ ΡΠΌ ΡΠ°Π·Π΄. 1.1.12). Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΏΠΎΠ½ΡΡΡ ΠΈΠ·-Π·Π° ΡΡΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ· Π»ΠΈΡΡΠΈΠ½Π³Π° 1.12 ΡΠ±ΡΠ°Π½ΠΎ Π²ΡΠ΅, ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΠ΄ LINUX, ΡΡΠΎΠ±Ρ Π½Π΅ Π·Π°ΡΠΎΡΡΡΡ Π»ΠΈΡΡΠΈΠ½Π³.
ΠΠ· Π»ΠΈΡΡΠΈΠ½Π³Π° 1.12 Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΎΠΊΠΎΠ½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° InitWndProc Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΌΠ° Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π° ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ°Π΅Ρ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Ρ ΠΎΠΊΠ½Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, InitWndProc Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠΈΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ InitWndProc, ΡΠΎΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΡΡΡ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½Π°Ρ Π²ΡΡΠ°Π²ΠΊΠ° Π² ΠΊΠΎΠ½ΡΠ΅ InitWndProc Π΄Π΅Π»Π°Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ). ΠΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π΄Π²Π° Π²ΠΎΠΏΡΠΎΡΠ°. ΠΠ΅ΡΠ²ΡΠΉ β Π·Π°ΡΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π΅ Π½Π°Π·Π½Π°ΡΠΈΡΡ Π½ΡΠΆΠ½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ? ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ Π΄Π΅Π»ΠΎ Π² ΡΠΎΠΌ. ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΎΠΊΠΎΠ½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½Π° Π½Π° Π²Π΅ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠ΅ VCL ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. ΠΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ° ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π°. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ²ΠΎΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ (ΠΎΡΠΊΡΠ΄Π° ΡΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π±Π΅ΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ, ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅) ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Ρ ΡΠ°Π½ΠΈΡ Π² ΠΏΠΎΠ»Π΅ FObjectInstance. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ CreationControl ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΎΠΌΠ½ΠΈΠΌ, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠ½Π°, Π° ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ VCL β ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ½ΠΈΡΠ΅Π²Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ΄ Π²ΠΊΠ»ΠΈΠ½ΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ CreationControl ΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ InitWndProc, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°, ΡΠ°ΠΊ ΡΡΠΎ Π² InitWndProc ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΡΠΎΡΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ β Π·Π°ΡΠ΅ΠΌ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ? ΠΠΎΡΠ΅ΠΌΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ CreateWnd ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π° Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ Π²ΡΠ·Π²Π°ΡΡ SetWindowLong ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΡΠΆΠ½ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ°ΠΌ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠ°ΡΡ ΡΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ InitWndProc? ΠΠ΄Π΅ΡΡ ΠΎΡΠ²Π΅Ρ ΡΠ°ΠΊΠΎΠΉ: ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ²ΠΎΠΈ ΠΏΠ΅ΡΠ²ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_CREATE ΠΈ WM_NCCREATE) ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ CreateWindowEx Π·Π°Π²Π΅ΡΡΠΈΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ. Π§ΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°, CreateWindowEx ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠΊΠ½Ρ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠΊΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π° ΡΡΠΈΡΠ°Π΅ΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΠΌ. Π’Π°ΠΊ ΡΡΠΎ Π½Π°Π·Π½Π°ΡΠ°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ CreateWindowEx β ΡΡΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΠΎΠ·Π΄Π½ΠΎ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΎΠΊΠΎΠ½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊΠΈΠΌ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠΊΠ»ΡΠΆΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
1.1.8. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ VCL
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ VCL Π² ΠΏΡΠΎΡΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠΊΠΎΠ½Π½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π½Π΅Ρ Π½ΡΠΆΠ΄Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ², ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΡΡΠ½ΡΡ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½ΠΎ ΠΈ Π² ΠΎΠ±ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ VCL ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌΠΈ Π°Π²ΡΠΎΡΠ°ΠΌΠΈ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΡ CM_ ΠΈ CN_. ΠΠ½ΠΈ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ, ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄Π°ΠΌ VCL. ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π·Π΄Π΅ΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ VCL Ρ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ.
Π Windows API Π½Π΅Ρ ΠΏΠΎΠ½ΡΡΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° β Π²ΡΠ΅ ΠΎΠΊΠ½Π°, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ (ΠΈΠ»ΠΈ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΡ), ΡΠ°Π²Π½ΠΎΡΠ΅Π½Π½Ρ, ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΡΠΈΡ Π»ΡΠ±ΡΡ ΠΎΠΊΠΎΠ½. ΠΠΎ Π² VCL Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ: ΡΠΎΡΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π³Π»Π°Π²Π½ΠΎΠΉ, ΠΈ Π΅Π΅ Π·Π°ΠΊΡΡΡΠΈΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π·Π°ΠΊΡΡΡΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π½ΠΈ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΡ (ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΊΠ½Π° Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΠΊΠ½Π°ΠΌΠΈ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ), ΡΠΎ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ ΡΡΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ (ΠΎΠΊΠ½ΠΎ, ΠΈΠΌΠ΅ΡΡΠ΅Π΅ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΡΠΎ ΡΡΠΈΠ»Π΅ΠΌ WS_EX_APPWINDOW). ΠΠ±ΡΡΠ½ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΈ ΠΎΠ½ΠΎ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»Ρ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΊΠΎΠ½ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ (ΠΏΡΠΈΠΌΠ΅ΡΡ β Internet Explorer, Microsoft Word). Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ VCL ΠΏΠΎΡΠ»ΠΈ ΠΏΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΡΠΈ: ΠΎΠΊΠ½ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π° ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Application. ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π΅ Application.Handle, Π° ΡΠ°ΠΌΠΎ ΠΎΠ½ΠΎ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎ, Ρ.ΠΊ. ΠΈΠΌΠ΅Π΅Ρ Π½ΡΠ»Π΅Π²ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ. ΠΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅, ΡΡΠΎ ΠΎΠΊΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ»Π°Π²Π½Π°Ρ ΡΠΎΡΠΌΠ° β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠ΅Π΅, Ρ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ. ΠΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Application ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ Π²Π½ΡΡΡΠΈ VCL. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π΅ VCL-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄Π²Π° ΠΎΠΊΠ½Π°: Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Application ΠΈ ΠΎΠΊΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ. ΠΠΊΠ½ΠΎ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Application, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅ΠΌ (Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΡ) Π²ΡΠ΅Ρ ΡΠΎΡΠΌ, Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π½ΠΎ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Parent, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡΠΌΡ.