Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ SDI ΠΈ MDI

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Windows прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ

прилоТСния Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π²ΡƒΡ… разновидностСй интСрфСйса:

β€’SDI (Single Document Interface) – ΠΎΠ΄Π½ΠΎΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ интСрфСйс.

β€’MDI (Multiple Document Interface) – ΠΌΠ½ΠΎΠ³ΠΎΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ интСрфСйс.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… стилСй интСрфСйса ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ своими ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ

возмоТностями ΠΈ соотвСтствСнно особСнностями программирования. Π₯Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΌΠΈ прСдставитСлями интСрфСйса MDI ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², элСктронных Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ, ΠΊΠΎΡ€ΠΎΡ‡Π΅ говоря, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, способных ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с нСсколькими Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΎΠΊΠ½Π°Ρ…. ВсС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° прилоТСния MDI Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² клиСнтской области Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° прилоТСния.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйсЧтобы Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ,

ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ Sysedit.exe, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для рСдактирования систСмных Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΎΠ½Π°

Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°Ρ†ΠΈΡŽ

Windows). Для этого Π² строкС Π²Π²ΠΎΠ΄Π°

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½Π°Π΄ΠΎ Π½Π°Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Sysedit

(рис. 9.5) ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ОК.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π° экранС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° отобразится Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ² настройки, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ внСсти Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΈ Π² процСсс ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Windows. Π₯ΠΎΡ‡Ρƒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±Π΅Π· особой нСобходимости Π½Π΅ стоит Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Ρ‹ настройки.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠšΠ°ΠΊ я ΠΈ ΠΎΠ±Π΅Ρ‰Π°Π», ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ появилось

нСсколько Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΎΠΊΠΎΠ½, располоТСнных Π²Π½ΡƒΡ‚Ρ€ΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (рис. 9.6). Π’Ρ‹ Π½Π΅ смоТСтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ, ΠΈ всС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ осущСствляСтся ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ SDI Ρ‚Π°ΠΊΠΆΠ΅ строится Π½Π° Π±Π°Π·Π΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΎΠΊΠΎΠ½, Π½ΠΎ Π΅Π³ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС стСпСнСй свободы: ΠΎΠ½ΠΈ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ ΠΊΡ€Π΅ΠΏΠΊΠΎ

привязаны ΠΊ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ свободно Ρ€Π°Π·Π³ΡƒΠ»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎ всСму пространству Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° классичСского прилоТСния SDI ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Delphi. Π“Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠΊΠ½ΠΎΠΌ Delphi слуТит Ρ„ΠΎΡ€ΠΌΠ°, Π½Π°

ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ располоТСны Π³Π»Π°Π²Π½ΠΎΠ΅ мСню, ΠΏΠ°Π»ΠΈΡ‚Ρ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ «быстрыС» ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π° (ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π΄Ρ€.) ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс

ΠΠ°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ прилоТСния, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π°.

ΠœΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ прилоТСния

Π˜Π·ΡƒΡ‡ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

ΠœΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π°

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс

Π’ свойствС Caption Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ «Πž ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅«.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс

Π’Π°ΠΊ Π²ΠΎΡ‚, Π² строчкС Copyright указываСтся имущСствСнный ΠΏΡ€Π°Π²ΠΎΠΎΠ±Π»Π°Π΄Π°Ρ‚Π΅Π»ΡŒ. Если Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π·Π°ΠΊΠ°Π·, здСсь Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°. БСбя ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ строчкой Π½ΠΈΠΆΠ΅, установив Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΌΠ΅Ρ‚ΠΊΡƒ, ΠΈ Π½Π°Ρ‡Π°Π² Π΅Π΅ тСкст, ΠΊΠ°ΠΊ «ΠΠ²Ρ‚ΠΎΡ€: «. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ° Ρƒ нас Π½Π΅Ρ‚, Ρ‚ΠΎ всС авторскиС ΠΏΡ€Π°Π²Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Π½Π°ΠΌ. ΠšΡΡ‚Π°Ρ‚ΠΈ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Π½Π΅ мою, Π° свою Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ, вСдь я Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽ этот ΠΊΠΎΠ΄ для ΠΎΠ±Ρ‰Π΅Π³ΠΎ использования, Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ ΠΌΠΎΠΈΠΌ описаниям Π΄Π΅Π»Π°Π»ΠΈ всС ΠΆΠ΅ Π²Ρ‹!

И Π΅Ρ‰Π΅. Π—Π½Π°ΠΊ авторского ΠΏΡ€Π°Π²Π° Β© ΠΈΠΌΠ΅Π΅Ρ‚ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ символов ΠΊΠΎΠ΄ 0169. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Caption ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ тСкста Π½Π°ΠΆΠΌΠΈΡ‚Π΅ , ΠΈ удСрТивая Π΅Π³ΠΎ, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ 0169. Π—Π°Ρ‚Π΅ΠΌ отпуститС . Π‘ΠΈΠΌΠ²ΠΎΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² ΠΌΠ΅Ρ‚ΠΊΠ΅. ВмСсто этого Π·Π½Π°ΠΊΠ° ΠΈΠ½ΠΎΠ³Π΄Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: » (с) «. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ считаСтС Π½ΡƒΠΆΠ½Ρ‹ΠΌ.

ΠΠ΅ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π°

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс

Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ событиС OnClick для ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠžΠš«:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π£Ρ€ΠΎΠΊ 5

Многооконная структура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
ΠŸΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π§Π°ΡΡ‚ΡŒ ΡƒΡ€ΠΎΠΊΠ° для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ MDI ΠΈ прилоТСния SDI.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ ΠΈ свойства вашСго прилоТСния Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄ прилоТСния Π²Ρ‹ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ зависит ΠΎΡ‚ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ назначСния. МоТно Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ MDI- ΠΈΠ»ΠΈ SDI-прилоТСниями.

Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΎΠΊΠ½Π°Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство, Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ. ВсСгда Π² MDI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ являСтся Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ прилоТСния. ВсС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ пространства Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π·Π° Π΅Π΅ ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹. Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ свСртывании. ΠŸΡ€ΠΈ максимизации Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΊΠΎΠ½, ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ всС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΅Π³ΠΎ.

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² MDI-прилоТСниях Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ, Π° Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΎΠΊΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ тСорСтичСски бСсконСчно.

ВсС SDI-ΠΎΠΊΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎ свойствам доступа Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅. Они ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΊΠ½Π°. Когда модальноС ΠΎΠΊΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ, всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΎΠΊΠ½Π° становятся нСдоступными. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ практичСски ΠΈΠ· любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹Π·Π²Π°Π² ΠΏΡƒΠ½ΠΊΡ‚ мСню «About» («Πž ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅»). ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ. Π’Π°ΠΊΠΎΠ΅ свойство ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ. НапримСр, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π» ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» доступ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠΊΠ½Ρƒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΈΠ»ΠΈ ΠΎΠΊΠ½ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΡƒΠΊΠ°Π·Π°Π² условия ΠΎΡ‚Π±ΠΎΡ€Π°, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ.

Π˜Ρ‚Π°ΠΊ, ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ SDI-ΠΎΠΊΠ½Π°.

Π‘ сСгодняшнСго ΡƒΡ€ΠΎΠΊΠ° ΠΌΡ‹ с Π²Π°ΠΌΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ довольно слоТный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ простого ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

ВсС, запускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° список ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠΈΡ…ΡΡ ΠΎΠΊΠΎΠ½ Π² мСню «ΠžΠΊΠ½Π°», ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠΊΠ°Ρ… ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ остановимся Π½Π° написании этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. Если Π² этом ΡƒΡ€ΠΎΠΊΠ΅ Ρƒ вас Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ получаСтся, Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ здСсь (2 KB). Если Π²Ρ‹ Π² послСдствии ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ свой ΠΈΠ»ΠΈ скачСнный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ DPR Ρ„Π°ΠΉΠ».

Π§Π°ΡΡ‚ΡŒ ΡƒΡ€ΠΎΠΊΠ° для ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… программистов

ΠŸΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Иногда ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ», Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ». ΠŸΡ€ΠΎΡ‰Π΅ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΌΡ‹ΡˆΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» сразу Π² ΠΎΠΊΠ½ΠΎ прилоТСния. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ пСрСтаскивания Drag & Drop Π² ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСкстового Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сразу ΠΆΠ΅ открываСтся Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Memo1.

Π’ private области ΠΎΠΊΠ½Π° Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку:

procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES; //ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сообщСний ΠΎ пСрСносС Ρ„Π°ΠΉΠ»Π° Π² ΠΎΠΊΠ½ΠΎ прилоТСния

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этого сообщСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

procedure TForm1.WMDropFiles(var Msg: TWMDropFiles);
var
CFileName: array[0..MAX_PATH] of Char; // пСрСмСнная, хранящая имя Ρ„Π°ΠΉΠ»Π°
begin
try
If DragQueryFile(Msg.Drop, 0, CFileName, MAX_PATH)>0 then // ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ Ρ„Π°ΠΉΠ»Π°
begin
Form1.Caption:=CFileName; // имя Ρ„Π°ΠΉΠ»Π° Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°
Memo1.Lines.LoadFromFile(CFileName); // ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»
Msg.Result := 0;
end;
finally
DragFinish(Msg.Drop); // ΠΎΡ‚ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»
end;
end;

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„ΠΎΡ€ΠΌΠ° Π·Π½Π°Π»Π°, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ создания ΠΎΠΊΠ½Π° ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ:

procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle, True);
end;

Π‘ ΡƒΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠΊΠΎΠ² Semen

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ MDI ΠΈ SDI интСрфСйсов: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° мСню, ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, стандартных Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½, строки состояния, контСкстного мСню

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° интСрфСйсов: SDI (Single Document Interface ΠΎΠ΄Π½ΠΎΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ интСрфСйс) ΠΈ MDI (Multi Document Interface ΠΌΠ½ΠΎΠ³ΠΎΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ интСрфСйс). SDI-прилоТСния Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΎΠ΄Π½ΠΈΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ, MDI-прилоТСния ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со мноТСством ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠŸΡ€ΠΈ этом всС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слуТит, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, главная Ρ„ΠΎΡ€ΠΌΠ°. Компания Microsoft Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ MDI-интСрфСйсы, хотя сама ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΡ… Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… слуТСбных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² консолях Π²Ρ€ΠΎΠ΄Π΅ ДиспСтчСра устройств. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° MDI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Lazarus ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°.

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ MDI-ΠΎΡ‚SDI-прилоТСния состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ SDI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, a MDI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ способно ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΊΠΎΠ½, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с нСсколькими Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Delphi, Π² Lazarus ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания MDI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ MDI-интСрфСйсы ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ, Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½Π° ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°. Но Π·Π½Π°Ρ‚ΡŒ ΠΎΠ± этих интСрфСйсах Π½ΡƒΠΆΠ½ΠΎ, поэтому Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ коснСмся этой Ρ‚Π΅ΠΌΡ‹, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ я ΠΌΠΎΠ³Ρƒ ΠΎΡˆΠΈΠ±Π°Ρ‚ΡŒΡΡ, ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вСрсиях Lazarus Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ всС ΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ MDI-интСрфСйса сами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ MultiDoc, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ псСвдоMDI-интСрфСйс.

Π‘Ρ€Π΅Π΄Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования

Π’ настоящСС врСмя Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнными ΠΈ ΠΏΠΎΠΊΡƒΠΏΠ°Π΅ΠΌΡ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ срСды Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования ΠΊΠ°ΠΊ Borland Delphi, Π‘++ Builder, Visual Studio 2005 Standard Edition.

Borland Delphi – это ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² срСдС WINDOWS 95/98/2000/Me/NT/XP. Π•Π³ΠΎ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния обСспСчиваСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ:

-сочСтаниС классичСских ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² программирования ΠΈ соврСмСнных Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Delphi ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства быстрого создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ (Π΄ΠΎ 350000 строк ΠΊΠΎΠ΄Π° Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ Π½Π° Pentium 90) компилятор ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ доступа ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…;

-Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ созданный ΠΊΠΎΠ΄, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ Ρ‚Π΅ΠΌ самым врСмя ΠΈ усилия, Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ;

-быстрый компилятор Π΄Π΅Π»Π°Π΅Ρ‚ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ;

-настоящий ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² 10-20 Ρ€Π°Π· быстрСС, Ρ‡Π΅ΠΌ Π² систСмах Π½Π° основС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°;

-ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ прСвращаСтся Π² Ρ†Π΅Π»Π΅Π²ΡƒΡŽ систСму Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ;

-прилоТСния ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ инструмСнта – ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка программирования Object Pascal;

-ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, которая состоит Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· процСссоры Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Borland Database Engine ΠΈΠ»ΠΈ ActiveX Data Objects Ρ„ΠΈΡ€ΠΌΡ‹ Microsoft, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр для Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° основС SQL-сСрвСров;

-ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ динамичСской ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ DLL ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ COM-прилоТСния;

Π’Ρ‹Π²ΠΎΠ΄: Delphi являСтся ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ срСдой для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ обусловлСно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ аспСктами: ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ компилятора ΠΈ высоким быстродСйствиСм ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

C++ Builder, Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Borland Delphi, относится ΠΊ RAD_систСмам.

Π‘++ Builder ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ возмоТности, Ρ‡Ρ‚ΠΎ ΠΈ Delphi, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈ сущСствСнныС прСимущСства, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:

— Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈΠΌΠ΅Π΅Ρ‚ ряд Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Delphi, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΈ ускоряСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ; Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ шаблонов STL (Standard Template Library);

— ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC (Microsoft Foundation Classes); Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ дальнСйшСй компиляции ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Visual C++, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с MFC;

— больший, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Delphi, объСм сСрвисных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ; Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ языка C++, Π·Π° счСт возмоТности ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², создания Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ шаблонов ΠΈ Ρ‚.Π΄.

К числу достоинств Π‘++ Builder ΠΌΠΎΠΆΠ½ΠΎ отнСсти:

— ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΡ€Π°Ρ‚ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ;

— Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Π·Π°Π΄Π°Ρ‡ систСмного программирования.

К нСдостаткам ΠΌΠΎΠΆΠ½ΠΎ отнСсти синтаксис языка. Π’ силу своСй гибкости, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ слоТно Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ Π½Π΅ содСрТит срСдств ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссов, синхронизации ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ сопрограмм.

Π’Ρ‹Π²ΠΎΠ΄: Π‘++ Builder – это ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык программирования с ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ способом записи Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, соврСмСнными ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° классов ΠΈ обСспСчиваСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ позволяСт Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ собствСнныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹ΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ.

Visual Studio 2005 Standard Edition.Π­Ρ‚Π° вСрсия Visual Studio прСдставляСт собой ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ уровня. Π’ Π½Π΅ΠΌ сочСтаСтся простота вСрсий Express ΠΈ ΠΌΠΎΡ‰Π½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для:

— создания бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с использованиСм языков Visual Basic, Π‘#, C++;

— создания ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с использованиСм Π²Π΅Π±-слуТб, ΠΈ прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, для Ρ‡Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ встроСнныС инструмСнты.

Π’Π°ΠΊΠΆΠ΅ Visual Studio позволяСт:

— ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности ΠΏΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² SQL Reporting Services для оформлСния Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…;

— Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ возмоТности Visual Studio с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… Ρ„ΠΈΡ€ΠΌ;

— ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Π΅Π±-прилоТСния ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° подраздСлСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ срСдства ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ прСкомпиляции сайтов.

Π’Ρ‹Π²ΠΎΠ΄: Visual Studio.net Π½Π° сСгодняшний дСнь являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… срСд для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ обусловлСно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ваТнСйшими аспСктами:

-ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅ΠΆΡŠΡΠ·Ρ‹ΠΊΠΎΠ²Ρ‹ΠΌ интСрфСйсом;

-качСством Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ;

-ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ компилятора ΠΈ высоким быстродСйствиСм ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ;

-Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π€ΠΎΡ€ΠΌΠ°, интСрфСйсы SDI ΠΈ MDI

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ профСссионалом-программистом Π² срСдС Delphi ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌΡ‹Π΅ ΠΏΠΎ изящСству ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ прСдставлСния ΠΎ сущСствовании ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, скаТСм TSuperComponent, Π² стандартной поставкС Delphi. Π’Ρ‹ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½ΠΈΠΊΡ‚ΠΎ этого Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π΅Ρ‚. Но Π²Ρ‹ вряд Π»ΠΈ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Β«Ρ†Π΅Π½Ρ‚Ρ€ мироздания» ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Delphi – класс TForm. НаиболСС ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ программист, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² эти строки, ΡƒΡ…ΠΌΡ‹Π»ΡŒΠ½Π΅Ρ‚ΡΡ ΠΈ Π² Π΄Π²Π° счСта Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚ консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΈ Π½Π΅ ΠΏΠ°Ρ…Π½Π΅Ρ‚, ΠΈΠ»ΠΈ создаст ΠΎΠΊΠ½ΠΎ (синоним Ρ„ΠΎΡ€ΠΌΡ‹ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Delphi), обойдя класс TForm с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Windows. БСсспорно, эти направлСния Π΄ΠΎ сих ΠΏΠΎΡ€ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹, Π° Π² ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… случаях ΡΠ²Π»ΡΡŽΡ‚ΡΡ СдинствСнным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ стоящих ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°ΠΌΠΈ Π·Π°Π΄Π°Ρ‡. Но Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΎΡ‚ΠΌΠ΅Ρ‡Ρƒ: ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… случаях, Π° Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… 99% ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйсЀорма – TForm

Как ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠ· ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ наслСдования (рис. 9.1), Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°Π΅Ρ‚ ΠΎΡ‚ своих ΠΏΡ€Π΅Π΄ΠΊΠΎΠ². МногиС ΠΈΠ· Π½ΠΈΡ… Π±Ρ‹Π»ΠΈ рассмотрСны Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ… ΠΈ, надСюсь, стали нашими Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌΠΈ. ВмСстС с Ρ‚Π΅ΠΌ класс TForm ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ рядом спСцифичных возмоТностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ прилоТСния:

propertyFormStyle: TFormStyle;

typeTFormStyle = (fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop);

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΡ‚ΠΈΠ»ΡŒ вновь созданной Ρ„ΠΎΡ€ΠΌΡ‹ инициализируСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ fsNormal. Π­Ρ‚ΠΎΡ‚ ΡΡ‚ΠΈΠ»ΡŒ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для построСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с интСрфСйсом SDI (Single Document Interface, ΠΎΠ΄Π½ΠΎΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ интСрфСйс). Если проСктируСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с интСрфСйсом MDI (Multi Document Interface, ΠΌΠ½ΠΎΠ³ΠΎΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ интСрфСйс), Ρ‚ΠΎ ΡΡ‚ΠΈΠ»ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ опрСдСляСтся ΠΊΠ°ΠΊ fsMDIForm. Π‘Ρ‚ΠΈΠ»ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΎΠΊΠΎΠ½ прилоТСния MDI опрСдСляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ fsMDIChild. И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΡΡ‚ΠΈΠ»ΡŒ fsStayOnTop заставит Ρ„ΠΎΡ€ΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΊΠΎΠ½, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ фокуса такая Ρ„ΠΎΡ€ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π°Π΄ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния. ΠœΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° экранС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° зависит ΠΎΡ‚ значСния, установлСнного Π² свойствС:

propertyPosition: TPosition; //ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ poDesigned

typeTPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly,

poScreenCenter, poDesktopCenter, poMainFormCenter, poOwnerFormCenter);

ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ Π΅Π΅ свойство Position ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ poDesigned. Π’ Ρ‚Π°ΠΊΠΎΠΉ ситуации мСстополоТСниС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ Π²ΠΎ врСмя выполнСния прилоТСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ мСстополоТСниСм

Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (свойствами Top ΠΈ Left). Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΈ установкС этого свойства Π² poDefault. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС прилоТСния Ρ„ΠΎΡ€ΠΌΠ° отобраТаСтся Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ экрана, Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π½Π° экран Ρ„ΠΎΡ€ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΡΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π²ΠΏΡ€Π°Π²ΠΎ ΠΈ Π²Π½ΠΈΠ·. Высота ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π° Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΈ Π½Π΅ зависят ΠΎΡ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΉ программиста. Если Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ устраиваСт, Π½ΠΎ ΠΏΡ€ΠΈ этом трСбуСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Π² Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹, Ρ‚ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ poDefaultPosOnly. ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ситуация ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли свойство Position установлСно Π² poDefaultSizeOnly. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Windows станСт Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Π² мСстС, установлСнном программистом, Π½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ сторон Π·Π°Π±Π΅Ρ€Π΅Ρ‚ Π² свои Ρ€ΡƒΠΊΠΈ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi интСрфСйс. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mdi ΠΈ sdi ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠŸΡ€ΠΈ установкС Position Π² состояниС poScreenCenter Ρ„ΠΎΡ€ΠΌΠ° появится Ρ‚ΠΎΡ‡Π½ΠΎ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ экрана, Π° для Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ poDesktopCenter. На ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅

Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Π»ΠΈΡΡŽΡ‚ poMainFormCenter ΠΈ poOwner-

FormCenter. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ – ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹-Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°.

ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ стандартных ΠΊΠ½ΠΎΠΏΠΎΠΊ-ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² ΠΏΡ€Π°Π²ΠΎΠΌ

Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹, задаСтся свойством:

typeTBorderIcon = (biSystemMenu, biMinimize, biMaximize, biHelp);

TBorderIcons = set ofTBorderIcon;

propertyBorderIcons:TBorderIcons;

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²Π° систСмного мСню, сворачивания ΠΈ разворачивания ΠΎΠΊΠ½Π°.

Кнопка закрытия ΠΎΠΊΠ½Π° выводится практичСски Π²ΠΎ всСх ΠΎΠΊΠ½Π°Ρ… Windows. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ½ΠΎΠΏΠΎΠΊ зависит ΠΎΡ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ свойств BorderIcons ΠΈ BorderStyle Ρ„ΠΎΡ€ΠΌΡ‹.

Π©Π΅Π»Ρ‡ΠΎΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ сворачивания ΠΈ разворачивания ΠΎΠΊΠ½Π° ΠΈΠ·-

мСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства WindowState:

propertyWindowState: TWindowState;

typeTWindowState = (wsNormal, wsMinimized, wsMaximized);

Π³Π΄Π΅ wsNormal – Ρ„ΠΎΡ€ΠΌΠ° Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии, wsMinimized – Ρ„ΠΎΡ€ΠΌΠ° свСрнута, wsMaximized – Ρ„ΠΎΡ€ΠΌΠ° Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Π° Π΄ΠΎ максимального Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Для ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ сворачивания ΠΈΠ»ΠΈ разворачивания Ρ„ΠΎΡ€ΠΌΡ‹ этим свойством допускаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π²ΠΎ врСмя выполнСния прилоТСния.

БущСствСнноС влияниС Π½Π° внСшний Π²ΠΈΠ΄ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΡ‚ΠΈΠ»ΡŒ

propertyBorderStyle: TFormBorderStyle

Π¨Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π±ΠΎΡ€Π΄ΡŽΡ€Π° Ρ„ΠΎΡ€ΠΌΡ‹ описаны Π² Ρ‚Π°Π±Π». 9.1.

Π’Π°Π±Π»ΠΈΡ†Π° 9.1. Π‘Ρ‚ΠΈΠ»ΠΈ Π‘ΠΎΡ€Π΄ΡŽΡ€Π° TFormBorderStyle

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
bsDialogΠ Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌ нСизмСняСмыС, Π±ΠΎΡ€Π΄ΡŽΡ€ ΠΊΠ°ΠΊ Ρƒ стандартного ΠΎΠΊΠ½Π° Π΄ΠΈΠ°Π»ΠΎΠ³Π°.
bsSingleΠ Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ нСизмСняСмыС, простой Π±ΠΎΡ€Π΄ΡŽΡ€.
bsNoneΠ Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ нСизмСняСмыС, Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π±ΠΎΡ€Π΄ΡŽΡ€Π° Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅.
bsSizeableΠžΠ±Ρ‹Ρ‡Π½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°.
bsToolWindowΠ€ΠΎΡ€ΠΌΠ° с простым Π±ΠΎΡ€Π΄ΡŽΡ€ΠΎΠΌ ΠΈ ΠΌΠ°Π»ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ. Из стандартных ΠΊΠ½ΠΎΠΏΠΎΠΊ Ρ„ΠΎΡ€ΠΌΡ‹ выводится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° закрытия ΠΎΠΊΠ½Π°.
bsSizeToolWinАналогично bsToolWindow, Π½ΠΎ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Π° Π±ΠΎΡ€Π΄ΡŽΡ€Π° (отступ ΠΎΡ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΎΠΊΠ½Π° Π΄ΠΎ Π΅Π³ΠΎ клиСнтской

части) минимальна – 0 пиксСлов. Для увСличСния отступа ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² свойствС:

propertyBorderWidth: TBorderWidth;

typeTBorderWidth = 0..MaxInt;

Π€ΠΎΡ€ΠΌΠ° способна ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ Π³Π»Π°Π²Π½Ρ‹ΠΌ (TMainMenu) ΠΈ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ количСством Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… мСню (TPopupMenu). Для взаимодСйствия с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ мСню прСдусмотрСны свойства Menu ΠΈ PopupMenu. ΠŸΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню (класс TMainMenu) Π² свойствС Menu автоматичСски создаСтся ссылка Π½Π° этот ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚:

propertyMenu: TMainMenu;

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню унаслСдована ΠΎΡ‚ дальнСго

родствСнника – TControl. Для этого Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹ объявлСно свойство:

propertyPopupMenu: TPopupMenu;

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Ρ„ΠΎΡ€ΠΌΠ° MDI-прилоТСния Π²Π»Π°Π΄Π΅Π΅Ρ‚ сСкрСтом, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌ автоматичСски Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² основноС мСню (TMainMenu) Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ прилоТСния список ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² – Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Ρ„ΠΎΡ€ΠΌ MDI. Для этого

Π² свойствС Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ WindowMenu ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ мСню, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ присоСдинСн список Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Ρ„ΠΎΡ€ΠΌ:

propertyWindowMenu: TMenuItem;

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, список ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² добавляСтся ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ Окно (Window). И Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π² качСствС WindowMenu стоит Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΠ½ΠΊΡ‚ мСню самого Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС ΠΎΠΊΠ½Π° Windows Π² Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ прилоТСния. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ вновь создаваСмого прилоТСния опрСдСляСт Delphi, назначая ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ. Если ΠΎΠ½Π° вас Π½Π΅ устраиваСт, Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства Icon ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ с Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

propertyIcon: TIcon;

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π² свойствС

HelpFile. Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ справкС ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ поиск Ρ‚Π΅ΠΌΡ‹

справки Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

propertyHelpFile: string;

Если Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° ΡΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² OLE, Ρ‚ΠΎ стоит

ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° свойство:

propertyOleFormObject: IOleForm;

Π’Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Ρ„ΠΎΡ€ΠΌΡ‹ опрСдСляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства:

propertyFormState: TFormState;

typeTFormState = set of(fsCreating, fsVisible, fsShowing, fsModal, fsCreatedMDIChild, fsActivated);

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства FormState автоматичСски устанавливаСтся систСмой ΠΈ доступно программисту Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния конструктора Ρ„ΠΎΡ€ΠΌΡ‹ (создания Ρ„ΠΎΡ€ΠΌΡ‹) свойству FormState соотвСтствуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ fsCreating. Если Ρ„ΠΎΡ€ΠΌΠ° Π²ΠΈΠ΄ΠΈΠΌΠ° – Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ fsVisible. Если Ρ„ΠΎΡ€ΠΌΠ° создана ΠΊΠ°ΠΊ модальноС ΠΎΠΊΠ½ΠΎ – fsModal. Π’ΠΎ врСмя разворачивания ΠΎΠΊΠ½Π° – fsShowing. Если Ρ„ΠΎΡ€ΠΌΠ° являСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ Π² MDI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ создана дочСрняя Ρ„ΠΎΡ€ΠΌΠ° – fsCreatedMDIChild. ПослС поступлСния Π² адрСс ΠΎΠΊΠ½Π° сообщСния CM_ACTIVATE свойству FormState соотвСтствуСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ fsActivated. Π­Ρ‚ΠΎ сообщСниС отправляСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΠΎΠΉ фокуса Π²Π²ΠΎΠ΄Π° (ΠΎΠΊΠ½ΠΎ стало Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ). БостояниС fsActivated ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π΅Ρ‰Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ свойствС:

propertyActive: Boolean;

Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ FormState, это ΠΏΠΎΠ»Π΅ доступно для записи. Бвойство Active Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли Ρ„ΠΎΡ€ΠΌΠ° находится Π² фокусС. Активная Ρ„ΠΎΡ€ΠΌΠ°

способна Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ сообщСния ΠΎΡ‚ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

НСзависимо ΠΎΡ‚ количСства Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ количСства ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΎΠΊΠΎΠ½ Π² фокусС Π²Π²ΠΎΠ΄Π° Windows ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ активности ΠΎΠΊΠ½Π° слуТит Ρ†Π²Π΅Ρ‚ Π΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.

Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ fsVisible. Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ опрСдСляСтся

свойством Visible. Если Ρ„ΠΎΡ€ΠΌΠ° Π²ΠΈΠ΄ΠΈΠΌΠ° (Π½ΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Π°), свойство

устанавливаСтся Π² true.

propertyVisible: Boolean;

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΎΠΊΠ½Π° Π² Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ состояниС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Show() ΠΈΠ»ΠΈ ShowModal().

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠ°Ρ Ρ„ΠΎΡ€ΠΌΠ°, содСрТащая ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ элСмСнты управлСния, всСгда ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ± Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ (Π²Π»Π°Π΄Π΅ΡŽΡ‰Π΅ΠΌ фокусом Π²Π²ΠΎΠ΄Π°) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅:

propertyActiveControl: TWinControl;

Π­Ρ‚ΠΎ свойство Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ фокус Π²Π²ΠΎΠ΄Π° Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ…

элСмСнтов управлСния. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, свойство доступно ΠΈ Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈ Ссли программист ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Π² этом свойствС Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт управлСния ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ фокус Π²Π²ΠΎΠ΄Π° ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΡ‹. Напоминаю, Ρ‡Ρ‚ΠΎ Π² фокусС Π²Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ (ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ класса TWinControl) элСмСнт управлСния.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ фокус Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠΌΡƒ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ, ΠΊΡ€ΠΎΠΌΠ΅ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ свойства

ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄:

procedureFocusControl(Control: TWinControl);

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ – снятия фокуса с элСмСнта управлСния –

procedureDefocusControl(Control: TWinControl; Removing: Boolean);

Если Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° содСрТит элСмСнты управлСния OLE, Ρ‚ΠΎ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ

с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ элСмСнт OLE ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΡƒΡ‚Π΅ΠΌ

установки ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ OLE Π² свойствС:

propertyActiveOLEControl: TWinControl;

Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ клиСнтской части Ρ„ΠΎΡ€ΠΌΡ‹ (см. рис. 9.2) ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠ· свойств:

propertyClientHeight: Integer;

propertyClientWidth: Integer;

Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ свойства доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ для чтСния ΠΈ тСсно

взаимосвязаны со свойствами Height ΠΈ Width. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² клиСнтской части Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ высоту ΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρƒ всСй Ρ„ΠΎΡ€ΠΌΡ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ гСомСтричСских Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… клиСнтской части ΠΎΠΊΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡Π΅Ρ€ΠΏΠ½ΡƒΡ‚ΡŒ ΠΈΠ· свойства ClientRect. Π’ΠΈΠΏ TRect Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° клиСнтской области.

propertyClientRect: TRect;

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°ΠΌ, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСй Ρ€Π°Π±ΠΎΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ

(Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с функциями Windows API), ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ дСскриптор ΠΎΠΊΠ½Π° содСрТится Π² свойствС Handle, Π° дСскриптор клиСнтской области ΠΎΠΊΠ½Π° – Π² свойствС ClientHandle:

propertyHandle: HWND;

propertyClientHandle: HWND;

Оба указатСля доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈ автоматичСски ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания Ρ„ΠΎΡ€ΠΌΡ‹. Π€ΠΎΡ€ΠΌΠ° Π²ΠΏΠΎΠ»Π½Π΅ способна ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² опСрациях drag-and-drop (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. Π² Π³Π»Π°Π²Π΅ 6). Бвойство опрСдСляСт, являСтся Π»ΠΈ Ρ„ΠΎΡ€ΠΌΠ° адрСсатом ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ пСрСтаскивания:

propertyDropTarget: Boolean;

ΠŸΠΎΠ»ΠΎΡΡ‹ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ

Π€ΠΎΡ€ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ благодаря Π½Π°Π»ΠΈΡ‡ΠΈΡŽ Π² своСй ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ

наслСдования класса TScrollingWinControl. Π˜Ρ… появлСниС являСтся ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ гСомСтричСскиС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΊΠ½Π° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² сСбя

всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ Π² Π΅Π³ΠΎ клиСнтской области. Π€ΠΎΡ€ΠΌΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚

двумя полосами ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ: Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ. Доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ полосам осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· свойства:

propertyHorzScrollBar: TControlScrollBar;

propertyVertScrollBar: TControlScrollBar;

Π—Π° автоматичСскоС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ полос ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ свойство Ρ„ΠΎΡ€ΠΌΡ‹ AutoScroll. ΠŸΡ€ΠΈ установкС Π΅Π³ΠΎ Π² true Ρ„ΠΎΡ€ΠΌΠ° Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² случаС нСобходимости автоматичСски Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ.

propertyAutoScroll : Boolean;

К ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ свойствам полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ стоит отнСсти свойства, Π²Π»ΠΈΡΡŽΡ‰ΠΈΠ΅ Π½Π° процСсс пСрСмСщСния клиСнтской части ΠΎΠΊΠ½Π°. И Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ

это Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ (Range) ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

(Position) Π±Π΅Π³ΡƒΠ½ΠΊΠ° полосы:

propertyRange: Integer;

propertyPosition: Integer;

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ прСдставляСт собой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ (Π² пиксСлах)

связанной с Π»ΠΈΠ½ΠΈΠ΅ΠΉ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ клиСнтской части Ρ„ΠΎΡ€ΠΌΡ‹. ЗначСния Range Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ полос ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ клиСнтский Ρ€Π°Π·ΠΌΠ΅Ρ€ (ClientWidth ΠΈ ClientHeight соотвСтствСнно) Ρ„ΠΎΡ€ΠΌΡ‹. ПолоТСниС Π±Π΅Π³ΡƒΠ½ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Range полосы. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ устанавливаСт Π±Π΅Π³ΡƒΠ½ΠΎΠΊ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π² Π΅Π΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

WithForm1 do

Begin

ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ позиция Π±Π΅Π³ΡƒΠ½ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π² соотвСтствии со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π² свойствС Increment.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ шага составляСт 8 пиксСлов.

typeTScrollBarInc = 1..32767;

propertyIncrement: TScrollBarInc;

ВворчСскиС Π½Π°Ρ‚ΡƒΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ со свойствами, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΌΠΈ Π·Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ внСшний Π²ΠΈΠ΄ полос ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ:

propertySize: Integer; //ΡˆΠΈΡ€ΠΈΠ½Π° полосы Π² пиксСлах

propertyButtonSize: Integer; //Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ½ΠΎΠΏΠΎΠΊ

propertyStyle: TScrollBarStyle; //внСшнСС прСдставлСниС полос

TScrollBarStyle = (ssRegular, ssFlat, ssHotTrack);

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ интСрСс прСдставляСт свойство Margin, ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ спСцифичСскоС влияниС Π½Π° Π²Ρ‹Π²ΠΎΠ΄ полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π½Π° экран:

propertyMargin: Word;

Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ? ΠœΡ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ появляСтся

Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ситуации, ΠΊΠΎΠ³Π΄Π° элСмСнт управлСния, скаТСм ΠΊΠ½ΠΎΠΏΠΊΠ°, Π½Π΅ помСщаСтся Π² клиСнтской области ΠΎΠΊΠ½Π°. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Margin ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ отступ ΠΎΡ‚ края

ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ элСмСнта управлСния Π΄ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π΄Π°ΠΆΠ΅ Π² Ρ‚ΠΎΠΌ случаС, Ссли элСмСнт управлСния ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ помСщаСтся Π² клиСнтской области. Поясню Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

procedureTForm1.FormCreate(Sender: TObject);

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *