Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «О Ρ‡Ρ‘ΠΌ Π½Π΅ ΠΏΠΈΡˆΡƒΡ‚ Π² ΠΊΠ½ΠΈΠ³Π°Ρ… ΠΏΠΎ DelphiΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 5

Автор А. Π“Ρ€ΠΈΠ³ΠΎΡ€ΡŒΠ΅Π²

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, константы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Windows API ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² модулях Windows ΠΈ Messages. Но ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… модулях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, программист Π΄ΠΎΠ»ΠΆΠ΅Π½ сам Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ находится Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ Π΅ΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Ни справка, поставляСмая с Delphi, Π½ΠΈ MSDN, разумССтся, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ объявлСн Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ поиском ΠΏΠΎ всСм Ρ„Π°ΠΉΠ»Π°ΠΌ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ pas, находящимся Π² ΠΏΠ°ΠΏΠΊΠ΅ с исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ стандартных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π­Ρ‚ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ вСсьма популярная функция ShellExecute находится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ShellAPI, CoCreateInstance β€” Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ActiveX (Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ole2, оставлСнном для совмСстимости со старыми вСрсиями Delphi).

Π•Ρ‰Π΅ нСсколько слов ΠΎ числовых константах. Π’ справкС ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ числа Π²ΠΈΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 0xC56F ΠΈΠ»ΠΈ 0x3341. ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ 0Ρ… Π² C/C++ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ число. Π’ Delphi Π΅Π³ΠΎ слСдуСт Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° $, Ρ‚.Π΅. эти числа Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ записаны ΠΊΠ°ΠΊ $C56F ΠΈ $3341 соотвСтствСнно.

1.1.3. ДСскрипторы вмСсто классов

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡ Π² Delphi, ΠΌΡ‹ быстро ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ°Π΅ΠΌ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ рСализуСтся экзСмпляром ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса. НапримСр, ΠΊΠ½ΠΎΠΏΠΊΠ° рСализуСтся экзСмпляром класса TButton, контСкст устройства β€” классом TCanvas. Но ΠΊΠΎΠ³Π΄Π° создавались ΠΏΠ΅Ρ€Π²Ρ‹Π΅ вСрсии Windows, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ программирования Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π» ΠΎΠ±Ρ‰Π΅ΠΏΡ€ΠΈΠ·Π½Π°Π½Π½Ρ‹ΠΌ, поэтому ΠΎΠ½ Π½Π΅ Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ вСрсии Windows частично унаслСдовали этот нСдостаток, поэтому Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ "ΠΏΠΎ старинкС", Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‚ΠΎ DLL ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Π½Π΅ классы. Когда ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…, создаваСмых Ρ‡Π΅Ρ€Π΅Π· Windows API, Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Ρ‚ΡŒ Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ООП, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, внутрСнняя структура ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ скрыта ΠΎΡ‚ нас, поэтому с этой ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ ΠΈ Π½Π΅Π΄Π΅Π»ΠΈΠΌΡ‹ΠΌ (Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌ) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, созданному с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Windows API, присваиваСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ (дСскриптор). Π•Π³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ нСсСт для программиста Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· Windows API ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, с ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСн дСскрипторы ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой 32-Π·Π½Π°Ρ‡Π½Ρ‹Π΅ числа, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ числа. Π’ дальнСйшСм ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Windows API нСсколько вольно обращаСтся с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Ρ‚.Π΅. ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ситуациях ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈ число, ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΈ дСскриптор, поэтому Π·Π½Π°Π½ΠΈΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ прСдставлСния дСскриптора всС-Ρ‚Π°ΠΊΠΈ приносит программисту ΠΏΠΎΠ»ΡŒΠ·Ρƒ (хотя Ссли Π±Ρ‹ систСма Windows Π±Ρ‹Π»Π° "спроСктирована ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ", Ρ‚ΠΈΠΏ дСскриптора Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ программиста).

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π³Π»Π°Π²Π½ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ класса ΠΈ функциями Windows API Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ. Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ связаны с Ρ‚Π΅ΠΌ экзСмпляром класса, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ, ΠΈ поэтому Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ явного указания Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· Π΅Π³ΠΎ дСскриптор, Ρ‚.ΠΊ. ΠΎΠ½ΠΈ сами ΠΏΠΎ сСбС Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ связаны Π½ΠΈ с ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ VCL Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π½Π°Π΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Delphi. Π’ этом случаС ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ свойство (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ называСтся Handle), содСрТащСС дСскриптор ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Иногда класс Delphi инкапсулируСт нСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Windows. НапримСр, класс TBitmap Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя HBITMAP ΠΈ HPALETTE β€” ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΈ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ ΠΊ Π½Π΅ΠΉ. БоотвСтствСнно, ΠΎΠ½ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π²Π° дСскриптора: Π² свойствах Handle ΠΈ PalettΠ΅.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ VCL Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ, Ссли ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° происходит Ρ‡Π΅Ρ€Π΅Π· Windows API. НапримСр, Ссли ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Hide, Π° ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Windows API ShowWindow(Handle, SW_HIDE), Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ событиС OnHide, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ запускаСтся Ρ‚Π΅ΠΌΠΈ самыми Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ VCL. Но Ρ‚Π°ΠΊΠΈΠ΅ нСдоразумСния ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° функциями Windows API дублируСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VCL.

ВсС экзСмпляры классов, созданныС Π² Delphi, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях это происходит автоматичСски, Π° ΠΈΠ½ΠΎΠ³Π΄Π° программист Π΄ΠΎΠ»ΠΆΠ΅Π½ сам ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ "выносС мусора". Аналогичная ситуация ΠΈ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, создаваСмыми Π² Windows API. Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ справку ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚ΠΎ Ρ‚Π°ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ информация ΠΎ Ρ‚ΠΎΠΌ. ΠΊΠ°ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ это Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΈΠ»ΠΈ систСма сдСлаСт это автоматичСски. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Π’Π°ΠΊ, функция DeleteObject удаляСт космСтичСскиС ΠΏΠ΅Ρ€ΡŒΡ, гСомСтричСскиС ΠΏΠ΅Ρ€ΡŒΡ, кисти, ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹, Ρ€Π΅Π³ΠΈΠΎΠ½Ρ‹, растровыС изобраТСния ΠΈ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹. ΠžΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. НапримСр, Ρ€Π΅Π³ΠΈΠΎΠ½Ρ‹ Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ систСмой автоматичСски, ΠΎΠ΄Π½Π°ΠΊΠΎ Ссли Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ для Ρ€Π΅Π³ΠΈΠΎΠ½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SetWindowRgn, Ρ‚ΠΎ ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. НикакиС дальнСйшиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π½ΠΈΠΌ, Π² Ρ‚ΠΎΠΌ числС ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ нСльзя.

Если систСмный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ программирования Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° удаляла ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ явно, Π° Π½Π΅ полагалась Π½Π° систСму.

1.1.4. Π€ΠΎΡ€ΠΌΡ‹ VCL ΠΈ ΠΎΠΊΠ½Π° Windows

Под словом "ΠΎΠΊΠ½ΠΎ" ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ подразумСваСтся нСкоторая Ρ„ΠΎΡ€ΠΌΠ° Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса TForm. Однако это понятиС сущСствСнно ΡˆΠΈΡ€Π΅. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΎΠΊΠ½ΠΎΠΌ называСтся любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ экранныС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΌΡ‹ΡˆΡŒ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ. НапримСр, ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ класса TButton, β€” это Ρ‚ΠΎΠΆΠ΅ ΠΎΠΊΠ½ΠΎ. VCL вносит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ Π² это понятиС. НСкоторыС Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ VCL Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠΊΠ½Π°ΠΌΠΈ, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΈΡ…, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, TImage. Π­Ρ‚ΠΎ позволяСт ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ рСсурсы систСмы ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ быстродСйствиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ этой ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΈ ΠΌΡ‹ рассмотрим ΠΏΠΎΠ·ΠΆΠ΅, Π° ΠΏΠΎΠΊΠ° слСдуСт Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠΊΠ½Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π² числС ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² класс TWinControl. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ VCL ΠΏΠΎΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π±Ρ‹Π»Π° минимальной. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд Π½Π΅ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ TLabel ΠΈ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ TStaticText каТутся практичСски Π±Π»ΠΈΠ·Π½Π΅Ρ†Π°ΠΌΠΈ. Π Π°Π·Π½ΠΈΡ†Π° становится Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠΉ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Windows API. Π‘ Π½Π΅ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ срСдствами VCL, ΠΎΠ½ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ свойства Handle, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Windows API.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ: Π½Π΅ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ€ΠΈΡΡƒΡŽΡ‚ΡΡ нСпосрСдствСнно Π½Π° повСрхности Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ Π±Ρ‹ "кладутся" Π½Π° родитСля свСрху . Π’ частности, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ TLabel, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ собой Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠΈ TButton, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ TLabel рисуСтся Π½Π° повСрхности Ρ„ΠΎΡ€ΠΌΡ‹, Π° ΠΊΠ½ΠΎΠΏΠΊΠ° β€” это нСзависимый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ свою ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ. A TStaticText ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π°Π΄ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚ΠΎΠΆΠ΅ находится Π½Π°Π΄ Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π°Π΄ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ, Ссли Π² этом Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ панСль (TPanel) β€” ΠΎΠ½Π° являСтся ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… элСмСнтов. На панСль Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ любой Π½Π΅ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΈ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π½Π° повСрхности Ρ„ΠΎΡ€ΠΌΡ‹, Π° Π½Π° повСрхности ΠΏΠ°Π½Π΅Π»ΠΈ. Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Ρƒ ΠΏΠ°Π½Π΅Π»ΠΈ Ρ€Π°ΠΌΠΊΡƒ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π΅Π΅ Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² содСрТащСгося Π² Π½Π΅ΠΉ Π½Π΅ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, панСль станСт Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠΉ, ΠΈ всС вмСстС это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ, Π±ΡƒΠ΄Ρ‚ΠΎ Π½Π΅ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ находится Π½Π°Π΄ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ.

КаТдоС ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΎΠΊΠΎΠ½Π½ΠΎΠΌΡƒ классу. НС слСдуСт ΠΏΡƒΡ‚Π°Ρ‚ΡŒ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ класс с классами Delphi. Π­Ρ‚ΠΎ Π½Π΅ΠΊΠΈΠΉ шаблон, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ свойства ΠΎΠΊΠ½Π°. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ присваиваСтся имя, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π² Π΅Π³ΠΎ области видимости. ΠŸΠ΅Ρ€Π΅Π΄ использованиСм класс Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (функция RegisterClassEx). Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° эта функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ запись Ρ‚ΠΈΠΏΠ° TWndClassEx, поля ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТат ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ класса. 

Π‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΎΠΊΠ½ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ связана ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ функция, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‰Π°ΡΡΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΌΡ‹ рассмотрим Π΅Π΅ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅). Она являСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π° всСго ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ класса, Ρ‚. Π΅. всС ΠΎΠΊΠ½Π°, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΌΡƒ классу, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠΊΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ. Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ Π² самом исполняСмом ΠΌΠΎΠ΄ΡƒΠ»Π΅, Π»ΠΈΠ±ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌ DLL. ΠŸΡ€ΠΈ создании класса указываСтся дСскриптор модуля, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится оконная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°.