Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Π’Π΅ΠΌΠ° 8.ΠžΡΠ½ΠΎΠ²Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования

ЦСль

ΠŸΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ ΠΈ основами Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

Π—Π°Π΄Π°Ρ‡ΠΈ

ОглавлСниС

БрСдствами Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ построСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ упрощСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния ΠΏΡƒΡ‚Π΅ΠΌ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° «Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹» Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ конструирования.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… соврСмСнных срСдах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм. ВсС Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ Ρ„ΠΈΡ€ΠΌΡ‹, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠ΅ срСдства для программирования ΠΈ конструирования ΠΈΠΌΠ΅ΡŽΡ‚ систСмы, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΠΈΡ€ΠΌΠ° IBM Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π² срСдС VisualAge Smalltalk.

VisualAge прСдставляСт собой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ срСдство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π½Π°Π±ΠΎΡ€ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… инструмСнтов, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ Π½Π°Π±ΠΎΡ€ срСдств для построСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрной срСды.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° графичСского интСрфСйса, прСдоставляСмая Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ CUA (Common User Access) спСцификациям ΠΈ содСрТит ряд Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π² слоТных Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ прСдоставляСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ устройств ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°, ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ APPC, TCP/IP, NetBIOS, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… интСрфСйсов CICS External Call Interface, EHLLAPI, Message Queue Interface (MQI), Ρ€Π°Π±ΠΎΡ‚Ρƒ с рСляционными Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… сСмСйств DB2, Oracle, Sybase ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π€ΠΈΡ€ΠΌΠ° Microsoft, разрабатывая ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ.NET Framework, создала Visual Studio.NET Enterprise Architect 2003, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° всС послСдниС достиТСния Π² области программирования ΠΈ Π² частности, Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

Π€ΠΈΡ€ΠΌΠ° Borland Software Corporation являСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΉ нСзависимый ΠΏΡƒΡ‚ΡŒ ΠΊ.NET с Delphi 7, ΠΌΠ΅ΠΆΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠΉ срСдой быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (RAD) для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Windows. Π₯Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ Delphi 7 являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ развСртывания ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ прилоТСния, ΠΎΡ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΊ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρƒ, Π΅Ρ‰Π΅ быстрСС с использованиСм Π½ΠΎΠ²ΠΎΠ³ΠΎ UML™-Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π° ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Model Driven Architecture™ (MDA™).

ΠœΡ‹ рассмотрСли Ρ€ΠΎΠ»ΡŒ ΠΈ мСсто Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π² области соврСмСнного программирования. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², относящихся ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Рассмотрим использованиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Visual Studio.NET Framework Ρ„ΠΈΡ€ΠΌΡ‹ Microsoft.

ΠžΡΠ½ΠΎΠ²Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования

БСгодня принято Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйсы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Визуализация снимаСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ «ΠΎΠ±Ρ‰Π΅Π½ΠΈΡ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ. ГрафичСскиС изобраТСния Π½Π° элСмСнтах управлСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ этих элСмСнтов.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… срСдств построСния интСрфСйсов Π² Ρ‚Π°ΠΊΠΈΡ… языках, ΠΊΠ°ΠΊ Microsoft Visual Basic ΠΈ Delphi, Π° Ρ‚Π°ΠΊΠΆΠ΅ создаваСмыС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этих языков Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ интСрфСйсы, Π·Π°ΠΊΡ€Π΅ΠΏΠΈΠ»ΠΈ Π·Π° Π½ΠΈΠΌΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅». БСзусловно, сущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² (Visual C++, Borland C++ начиная с вСрсии 4, Symantec Visual Cafe, C++ Builder ΠΈ Π΄Ρ€.), Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ смогли Π·Π°Π²ΠΎΠ΅Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ популярности, ΠΊΠ°ΠΊ Visual Basic ΠΈ Delphi. ИмСнно благодаря Visual Basic, ΠΌΠΈΡ€ ΡƒΠ·Π½Π°Π» ΠΎ возмоТности Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ построСния интСрфСйсов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Windows.

Π’ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ модСлью Π² Visual Basic ΠΈ Delphi являСтся ΠΎΠΊΠ½ΠΎ (Ρ„ΠΎΡ€ΠΌΠ°, Π΄ΠΈΠ°Π»ΠΎΠ³) Windows, Π° Π½Π΅ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся визуализация Ρ€Π°Π±ΠΎΡ‚Ρ‹ с элСмСнтами интСрфСйса, ΠΊΠΎΠ³Π΄Π° Π² качСствС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоят Ρ„ΠΎΡ€ΠΌΡ‹ (ΠΎΠΊΠ½Π° ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ) интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Но ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ этом случаС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΊΠ½Π° свойств (PropertyBox), Π° сами ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ хранится Π² списковой Ρ„ΠΎΡ€ΠΌΠ΅ (Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅).

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Рис.8.1. Визуализация Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Рис.8.2. БрСдства Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования

Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ создания ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ процСсс создания ΠΌΠ°ΠΊΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Microsoft Excel (рис.8.3).

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Рис.8.3. Π”ΠΈΠ°Π»ΠΎΠ³ MS Excel ΠΏΡ€ΠΈ автоматичСской записи дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π’ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ модСлью Π² Π΄Π°Π½Π½ΠΎΠΌ случаС являСтся Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист Excel, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ программист выполняСт дСйствия ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ автоматичСски Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΏΡ€ΠΈ этом происходит описаниС Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… языка VBA (Visual Basic for Application) всСх Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Окно свойств Properties ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚, Π½ΠΎ Π½Π΅ Π² самом Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС, Π° Π² срСдС VBA (рис.8.4). Окно инструмСнтов ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Module Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, Π½ΠΎ Π² случаС рСдактирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° появляСтся Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список со свойствами, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈ событиями, Ρ‚.Π΅. Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС записи макроса Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ смСны Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ макроса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС Excel ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΈΠ»ΠΈ нСпосрСдствСнно ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ записанного макроса, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° рис.8.4.

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Рис.8.4. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ автоматичСской записи ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования ΠΏΡ€ΠΈ построСнии интСрфСйса прилоТСния Π² Visual Studio.Net

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Рис.8.5. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ срСдствами Visual Studio.NET

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ элСмСнтов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ «Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ», Π½ΠΎ ΠΈ Ρ‚ΡƒΡ‚ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ: послС Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΏΠΎ элСмСнту управлСния Π² конструкторС автоматичСски открываСтся ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° ΠΈ автоматичСски ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события. Π‘ΠΎΠ»Π΅ Ρ‚ΠΎΠ³ΠΎ, послС Π½Π°Π±ΠΎΡ€Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° автоматичСски появляСтся список свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (рис.8.6). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, процСсс написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ частично Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½.

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Рис.8.6. Визуализация свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

ΠšΡ€ΠΎΠΌΠ΅ элСмСнтов управлСния, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π² интСрфСйсС прилоТСния ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ стандартныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, рСализация ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½Π° срСдствами Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, стандартныС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°.

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Рис.8.7. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ стандартного Π΄ΠΈΠ°Π»ΠΎΠ³Π°

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Рис.8.8. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ стандартных элСмСнтов срСдствами Visual Studio

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ.NET Framework ΠΈ Visual Studio.NET ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π² распоряТСниС программистов ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‰ΡƒΡŽ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. МногиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС ΠΈ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ назначСния свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ конструирования с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΊΠ½Π° Properties ΠΈΠ»ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ² с мастСром-построитСлСм.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прСдусматриваСт созданиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ наглядных срСдств.

БрСдства Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ построСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ упрощСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния ΠΏΡƒΡ‚Π΅ΠΌ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° «Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹» Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ конструирования.

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

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… соврСмСнных срСдах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм. ВсС Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ Ρ„ΠΈΡ€ΠΌΡ‹, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠ΅ срСдства для программирования ΠΈ конструирования ΠΈΠΌΠ΅ΡŽΡ‚ систСмы, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ D3NE ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π’Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ позволяСт ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ процСссы Π² графичСском Π²ΠΈΠ΄Π΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ тСкстового прСдставлСния, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ усилия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ΡΠ»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ это Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Π—Π²ΡƒΡ‡ΠΈΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‰Π΅, Π½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² сути ΠΈ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π’Π°ΠΌ стоит это ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ.

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

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

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠšΠ°Π΄Ρ€ ΠΈΠ· сСриала «ΠšΡ€Π΅ΠΌΠ½ΠΈΠ΅Π²Π°Ρ Π΄ΠΎΠ»ΠΈΠ½Π°»

Часто ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽΡ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ПО с графичСского описания Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ систСмы, Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° Ρ€Π°Π½Π½ΠΈΡ… стадиях ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹Π³ΠΎΠ΄Π½ΡƒΡŽ структуру систСмы ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. ГрафичСскоС прСдставлСниС Π»Π΅Π³Ρ‡Π΅ для понимания, Ρ‡Π΅ΠΌ тСкстовый Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свои ограничСния, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ это всС Ρ€Π°Π²Π½ΠΎ придСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² понятный компилятору ΠΊΠΎΠ΄. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π° малСнькиС прилоТСния (ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π²Π½Π°Ρ‡Π°Π»Π΅) это Π½Π΅ распространяСтся, ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ написанию ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° всС Ρ€Π°Π²Π½ΠΎ остаСтся β€” Π½ΡƒΠΆΠ½ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ языка программирования. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ это Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π² Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΠ΅Π²ΡˆΠ΅ΠΌΡΡ Π²Π°ΠΌ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ стилС.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ ΠΏΠΎ своСй сути Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π½ΠΈΠ²Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ‹Π³ΠΎΠ΄Π½Ρ‹Π΅ способы Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΈ Π½Π΅ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ силы Π½Π° Ρ€ΡƒΡ‚ΠΈΠ½Ρƒ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, глядя Π½Π° Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ увСличСния слоТности ПО. ИмСнно это стимулируСт Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌ, языков программирования ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΎΠ²Ρ‹Ρ…, казалось Π±Ρ‹, ΠΈ малоизвСстных инструмСнтов Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

Π—Π°Ρ‡Π΅ΠΌ ΠΈ Π³Π΄Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

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

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠŸΠΎΡ…ΠΎΠΆΠΈΠΉ инструмСнт ΠΎΡ‚ Google ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Blocky

БущСствуСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΠ΄ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Π½Π° ΠΌΠΎΠΉ взгляд, это Data-flow programming. Он Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΈ слуТит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ надстройкой для программирования процСссов ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ. Π•Π³ΠΎ ΡΡƒΡ‚ΡŒ состоит Π² манипуляции Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ (ΡƒΠ·Π»Π°ΠΌΠΈ).

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΡƒΠ·Π»ΠΎΠ² ΠΈΠ· Blender

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ: Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ происходит с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΡƒΠ·Π»Π°Ρ…, Π° лишь Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΈ ΠΎΡ‚Π΄Π°ΡŽΡ‚ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅. ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ лишь Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой линиями, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±Π΅Π· особого затруднСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ с Ρ‡Π΅ΠΌ связано.

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΡƒΠ·Π»ΠΎΠ² Π² Blender β€” ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎΡ‚ случай, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… для управлСния Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ΠΎΠΌ, создания ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΈ тСкстур. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² 3D ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π΅ достаточно популярСн, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ хочСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π° ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ инструкции для Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

Π’Π°ΠΊΠΆΠ΅ извСстный всСм Π² сообщСствС 3D ΠΌΠΎΠ΄Π΅Π»Π»Π΅Ρ€ΠΎΠ² это Substance Designer, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ 3D ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, описанному Π²Ρ‹ΡˆΠ΅.

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для создания ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π² Substance Designer

Π₯отя Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… источниках упоминания ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅Ρ‚Ρƒ, Π² Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ самый настоящий data-flow. НавСрноС, это Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹ΠΉ Ρ…ΠΎΠ΄ β€” Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΏΡƒΠ³Π½ΡƒΡ‚ΡŒ.

Π˜Ρ‚Π°ΠΊ, Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π² Ρ‚ΠΎΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² 3D ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π½ΠΎ ΠΊΠ°ΠΊ насчСт Ρ‚Π΅Ρ… сфСр Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π³Π΄Π΅ Π±Π΅Π· умСния ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π΅ получится ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ достаточно Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚? Казалось Π±Ρ‹, Ссли ΡƒΠΌΠ΅Π΅ΡˆΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Ρ‚ΠΎ просто Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ этот Π½Π°Π²Ρ‹ΠΊ, Π½ΠΎ Π½Π΅Ρ‚ β€” ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π³Π΅ΠΉΠΌΠ΄Π΅Π²Π΅ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… стали ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ инструмСнты для программирования Π±Π΅Π· ΠΊΠΎΠ΄ΠΈΠ½Π³Π°. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, это Π±Ρ‹Π»ΠΎ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ для популяризации Π³Π΅ΠΉΠΌΠ΄Π΅Π²Π° срСди Ρ‚Π΅Ρ…, ΠΊΠΎΠ³ΠΎ ΠΎΡ‚ΠΏΡƒΠ³ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ΄ лишь ΠΎΠ΄Π½ΠΈΠΌ Π²ΠΈΠ΄ΠΎΠΌ, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” прогрСсс Π½Π΅ стоит Π½Π° мСстС ΠΈ Π΄Π°ΠΆΠ΅ Π³ΡƒΡ€Ρƒ программирования Π½Π°Π΄ΠΎΠ΅Π»ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ вмСсто Ρ‚Π°Π±ΠΎΠ² Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ тысяч строк ΠΊΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°, ΠΈ ΠΎΠ½ΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ описания Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ процСссов.

МногиС Π·Π½Π°ΡŽΡ‚ UE4 с Π΅Π³ΠΎ Blueprint’ΠΎΠΌ. Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ Π½Π΅ просто data-flow, Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ большСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ позволяСт Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π΅ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄, Π° Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ всСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° строки ΠΏΠΎ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ

НапримСр, Π² Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ ΡƒΠ·Π»Ρ‹ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ событий. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ Π½ΠΈΠΌ ΡƒΠ·Π»Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° срабатываСт событиС. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, Π° просто провСсти соСдинСниС ΠΎΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΊ Π²Ρ…ΠΎΠ΄Ρƒ.

БущСствуСт Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования (Ρ‡Π°Ρ‰Π΅ ΠΈΡ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ срСда графичСского программирования), Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Ρ‚Π°ΠΊ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‚ ΡƒΠ·ΠΊΡƒΡŽ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ вовсС Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° конструкторы, Ρ‡Π΅ΠΌ Π½Π° инструмСнты программирования.

ΠžΠ±Ρ‰ΠΈΠ΅ аспСкты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΡƒΠ·Π»ΠΎΠ²

Допустим, ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°ΡŽΡ‚ магию ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ с использованиСм ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° с Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΈ линиями. К Π²Π°ΡˆΠ΅ΠΌΡƒ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡŽ это оказалось ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²ΠΎΠΏΠ»ΠΎΡ‚ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ идСю (скаТСм, ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° Π½Π΅ получится).

Π“Π»Π°Π²Π½ΠΎΠ΅, ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π’ послСднСС врСмя ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ прямо Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΏΡƒΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ отразится Π½Π° качСствС прилоТСния (Π² ΠΈΠ½ΠΎΠΌ случаС asm.js/wasm Π² ΠΏΠΎΠΌΠΎΡ‰ΡŒ). Одна ΠΈΠ· особСнностСй Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ встроСны Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ прилоТСния. Π’Ρ‹Π±ΠΎΡ€ инструмСнтов ΠΈ языков программирования Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² интСрСсах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½Ρ‹ΠΌ ΠΈ эффСктивным ΠΈ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΡΡ‚Ρ€Π΅Π»ΠΈΡ‚ΡŒ сСбС Π² Π½ΠΎΠ³Ρƒ появлСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ²ΡˆΠΈΡΡŒ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΈ языком, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (Π² нашСм случаС Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΡƒΠ·Π»ΠΎΠ²), Π½ΠΎ ΠΈ здСсь Π½Π΅ всС Π³Π»Π°Π΄ΠΊΠΎ.
Π•ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ D3NE

D3 Node editor (D3NE) β€” это JS Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для создания Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΡƒΠ·Π»ΠΎΠ² для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡƒΠ·Π»ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ D3.js ΠΈ Angular Light

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

На GitHub Wiki доступСн Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π», Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ (Π²ΠΈΠΊΠΈ Π½Π° Π°Π½Π³Π». ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ грамматичСскиС ошибки, поэтому Π±ΡƒΠ΄Ρƒ Ρ€Π°Π΄ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² ΠΈΡ… исправлСнии)

ВсС Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Ρ‚Π°ΠΊ ΠΎΠ½ ΠΈ Π»Π΅ΠΆΠΈΡ‚ Π² draft’Π°Ρ…), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ появилась идСя ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° UE4 Blueprint, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ΅Π½ просто data-flow. Π‘Ρ€Π΅Π΄ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… open source Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π° JS Π½Π΅ оказалось подходящих: критСриями Π±Ρ‹Π»ΠΈ внСшний Π²ΠΈΠ΄ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ возмоТности (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ сокСтов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ нСсовмСстимых Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ Π²Ρ…ΠΎΠ΄ΠΎΠ²). Если ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ·Π²Π½Π΅, Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ссли структура ΠΈ исходный ΠΊΠΎΠ΄ ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΆΠ΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ.

Π’Π°ΠΊ ΠΈ Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ написаниС ΠΊΠΎΠ΄Π° ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ этого ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π”Π°, Π΄Π°, ΠΈΠΌΠ΅Π½Π½ΠΎ написаниС ΠΊΠΎΠ΄Π°, Π±Π΅Π· планирования ΠΈ проСктирования, хотя Π·Π°Ρ€Π°Π½Π΅Π΅ Π±Ρ‹Π»ΠΎ нСизвСстно Ρ‡Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ· сСбя ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ (ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ Π½Π΅ Ρ€Π°Π· ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ свои ΠΆΠ΅ ошибки).

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, спустя нСсколько мСсяцСв послС Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π΄ΠΎΠΉΡ‚ΠΈ Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ работоспособной вСрсии с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ для обСспСчСния гибкости ΠΏΡ€ΠΈ создании Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ². Но это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ это Ρ„ΠΈΠ½Π°Π». Π‘ΠΊΠΎΡ€Π΅Π΅, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ°, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ имССтся, ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… возмоТностСй.

Как ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅

Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈ это Π²Π°ΠΌ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ для сСбя ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°Π΅Ρ‚ (Ссли это Π½Π΅ Π½Π°Π²Ρ€Π΅Π΄ΠΈΡ‚ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡŽ πŸ™‚ ), Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ стоит ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ.

Π›ΡƒΡ‡ΡˆΠ΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, чСм… Π² ΠΎΠ±Ρ‰Π΅ΠΌ посмотритС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ кастомизации Π² стилС UE4

Рассмотрим основныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ для создания минимально работоспособного Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°

Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π°Π·ΡŠΠ΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой Π²Ρ…ΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для соблюдСния ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой. Назначив Π²Ρ…ΠΎΠ΄Π°ΠΌ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π°ΠΌ этот сокСт, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ смоТСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ‚ΡƒΠ΄Π° Π½Π΅ Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ (Π²Π΅Ρ€Π½Π΅Π΅, ΠΎΠ½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ связи). Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ сокСты для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ…ΠΎΠ΄Π°ΠΌΠΈ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π°ΠΌΠΈ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

Π£Π·Π»Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°ΠΌΠΈ (Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ это ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… вашСй Ρ„Π°Π½Ρ‚Π°Π·ΠΈΠΈ ΠΈ возмоТностСй CSS ΠΈ HTML). Они ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄Ρ‹, Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Ρ‹. Π’Ρ…ΠΎΠ΄Ρ‹ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ сокСты ΠΈ располоТСны Π² Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ части ΡƒΠ·Π»Π° соотвСтствСнно (ΠΎΠΏΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡ… Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹).

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΡƒΠ·Π»Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ элСмСнты, Π° ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊ ΡƒΠ·Π»Ρƒ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ (Π½Π΅ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…). НапримСр, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простого поля Π²Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡƒΠ·Π΅Π», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π·Π½Π°Π» ΠΊΠ°ΠΊΠΈΠ΅ Π² Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΡƒΠ·Π»Ρ‹ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°/экспорта. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π±ΠΈΠ»Π΄Π΅Ρ€Ρ‹ ΠΈ Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ создании ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС).

Π‘ΠΈΠ»Π΄Π΅Ρ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° созданиС экзСмпляра ΡƒΠ·Π»Π° β€” Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ создаСтС экзСмпляр, добавляСтС ΠΊ Π½Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Ρ‹, Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Ρ‹. БоздаСтся это ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΎΠ², Π° Ρ‚ΠΎ ΠΈ наслСдованиС ΡƒΠ·Π»ΠΎΠ².

Π’ΠΎΡ€ΠΊΠ΅Ρ€ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²Ρ…ΠΎΠ΄Ρ‹, Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΡƒΠ·Π»Π° (Π½Π΅ экзСмпляр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСтся Π² Π±ΠΈΠ»Π΄Π΅Ρ€Π΅, Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ· Π½Π΅Π³ΠΎ достали Ρ‡Π΅Ρ€Π΅Π· toJSON). Π’Ρ…ΠΎΠ΄Π½ΠΎΠΉ массив содСрТит Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΈ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° ΠΈ массив с Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, зависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠ·Π΅Π»)

Один ΠΈΠ· основных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ управляСт всСм Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹ΠΌ с Ρ†Π΅Π»ΡŒΡŽ отобраТСния ΠΈ взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π•ΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, контСкстноС мСню.

Π‘Π»ΡƒΠΆΠΈΡ‚ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡƒΠ·Π»Π°Ρ…. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅, экспортированныС ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΡƒΠ·Π»ΠΎΠ² вовсС Π±Π΅Π· наличия Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΅ΡΡ‚ΡŒ Π΅Π³ΠΎ рСализация Π½Π° Π‘++). ИмСнно этот ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠ±Ρ…ΠΎΠ΄ ΡƒΠ·Π»ΠΎΠ², опрСдСляя с ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ваши Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹, пСрСдавая Π² Π½ΠΈΡ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΡƒΠ·Π»ΠΎΠ². ΠœΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с асинхронными функциями, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ„ΠΎΠ½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ async/await. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π·Π° счСт асинхронной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько ΡƒΠ·Π»ΠΎΠ².

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Как Π²ΠΈΠ΄ΠΈΠΌ, Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ…ΠΎΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ·Π²Π°Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ написаниС ΠΊΠΎΠ΄Π°, Π½ΠΎ довольно Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚. НавСрноС ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ скСптичСски относятся ΠΊ ΠΈΠ΄Π΅Π΅ программирования ΠΌΡ‹ΡˆΠΊΠΎΠΉ. Π­Ρ‚ΠΎ отчасти справСдливо, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π·Π°Π΄Π°Ρ‡ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ПО ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ языкС программирования, Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСдостаточно ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ инструмСнт.

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² этом ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ говорится, Π½Π° сСбС всС описанныС возмоТности, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° основС D3NE свой Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

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

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΏΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ срСдствам Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. РассмотрСниС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½, элСмСнтов управлСния, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ, доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π°Π½Π°Π»ΠΈΠ·Π°, Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, экспорта, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

Π ΡƒΠ±Ρ€ΠΈΠΊΠ°ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΈ ΠΊΠΈΠ±Π΅Ρ€Π½Π΅Ρ‚ΠΈΠΊΠ°
Π’ΠΈΠ΄ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°
Языкрусский
Π”Π°Ρ‚Π° добавлСния26.06.2014
Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π°285,0 K

Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π€ΠΎΡ‚ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ свою Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π±Π°Π·Ρƒ Π·Π½Π°Π½ΠΈΠΉ просто. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒ, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½ΠΈΠΆΠ΅

Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚Ρ‹, аспиранты, ΠΌΠΎΠ»ΠΎΠ΄Ρ‹Π΅ ΡƒΡ‡Π΅Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π°Π·Ρƒ Π·Π½Π°Π½ΠΈΠΉ Π² своСй ΡƒΡ‡Π΅Π±Π΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅, Π±ΡƒΠ΄ΡƒΡ‚ Π²Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹.

Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π½Π° http://www.allbest.ru/

1. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°. Π’ΠΈΠΏΡ‹ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½. ΠžΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½. ИспользованиС ClassWizard для программирования Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½.

2. Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСсурса Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π’Ρ‹Π±ΠΎΡ€ элСмСнтов управлСния для Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

3. Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ элСмСнтов управлСния. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ класса Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. АссоциированныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

4. ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π° экран. Ѐункция ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами управлСния ΠΈ ассоциированными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ модального Π΄ΠΈΠ°Π»ΠΎΠ³Π°.

5. ИспользованиС элСмСнта управлСния Ρ‚ΠΈΠΏΠ° «список». Π‘Ρ‚ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ½ списков. БообщСния ΠΎΡ‚ элСмСнта управлСния Ρ‚ΠΈΠΏΠ° «список» (LBN_). НСкоторыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса CListBox.

6. ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ списки (класс CCombobox). Π‘Ρ‚ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ½ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… списков. БообщСния ΠΎΡ‚ элСмСнта управлСния Ρ‚ΠΈΠΏΠ° Β«ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ список» (CBN) НСкоторыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса CCombobox.

7. ИспользованиС элСмСнтов Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ (Ρ„Π»Π°ΠΆΠΊΠΈ, Ρ€Π°Π΄ΠΈΠΎ-ΠΊΠ½ΠΎΠΏΠΊΠΈ). БтатичСскиС поля (Static text). Окна рСдактирования (Edit box). ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса CEdit.

8. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сообщСний. ΠšΠ°Ρ€Ρ‚Ρ‹ сообщСний.

9. РСализация ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ClassWizard. Π’ΠΈΠ΄Ρ‹ сообщСний.

10. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹. РСализация ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ClassWizard.

11. АрхитСктура Β«Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚-прСдставлСниС». ΠšΠ»Π°ΡΡΡ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ прСдставлСния.

12. Π’Ρ‹Π²ΠΎΠ΄ Π½Π° экран. ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ устройства. ΠšΠ»Π°ΡΡΡ‹ контСкстов устройства Π² MFC.

13. ΠšΠ»Π°ΡΡΡ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… срСдств. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ рисования ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… Ρ„ΠΈΠ³ΡƒΡ€.

14. ИспользованиС ΠΏΠ΅Ρ€ΡŒΠ΅Π². Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΈΡΡ‚ΡŒΡŽ.

16. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ класса, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ сохранСниС-восстановлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

17. ИспользованиС основных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса CFile (ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ», Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ», ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€ΠΈΠ²Π΅ΡΡ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ записи Π² Ρ„Π°ΠΉΠ» Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…). ИспользованиС стандартных Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ для открытия ΠΈ записи Π² Ρ„Π°ΠΉΠ».

18. ПанСль инструмСнтов ΠΈ строка состояния. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сообщСний ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов.

19. Доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² Visual C++. Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ DAO, RDO, ODBC.

20. Доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² Visual C++. Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ UDA, OLE DB.

21. ΠšΠ»Π°ΡΡΡ‹ ODBC. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ с Π‘Π” Π½Π° основС классов ODBC.

22. РСгистрация Π‘Π”. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ прилоТСния.

23. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ экранной Ρ„ΠΎΡ€ΠΌΡ‹ для отобраТСния содСрТимого Π‘Π”.

24. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ записСй Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ODBC.

25. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ записСй Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ODBC.

26. Π Π°Π±ΠΎΡ‚Π° с нСсколькими Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ODBC.

27. Π‘Ρ…Π΅ΠΌΠ° процСсса ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ источником Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ экранной Ρ„ΠΎΡ€ΠΌΠΎΠΉ с использованиСм классов CRecordSet ΠΈ CRecordView. Π Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Snapshot ΠΈ Dynaset.

28. Анализ тСкстов, созданных АррWizard для класса, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡ‚ CRecordSet. (Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ DoFieldExchange(), GetDefaultConnect(), GetDefaultSQL() ΠΈ Π΄Ρ€.).

29. Анализ тСкстов, созданных Арр Wizard для класса, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡ‚ CRecordView. (Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ DoDataExchange(), OnInitialUpdate(), OnMove()). Бвязь рСсурсов с ассоциированными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Β«Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…Β» (класса CRecordSet) ΠΈΠ· класса CRecordView.

30. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса CDatabase.

31. Класс CRecordset. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Π°, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π° IsOpen, IsBOF, IsEOF, IsDeleted, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π°).

32. Класс CRecordset. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ пСрСмСщСния ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ IsFieldDirty, IsFieldNull, Requary, SetFieldDirty, SetFieldNull).

33. Класс CRecordset. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (DoFieldExchange, GetDefaultSQL. GetDefaultConnect).

34. Класс CRecordView. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (конструктор, OnGetRecordSet, OnMove).

35. ВСхнология ADO. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль, Π½Π°Π±ΠΎΡ€Ρ‹ ADO.

36. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ADO Data Control ΠΈ DataGrid Control.

37. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ записСй Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ADO.

38. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ записСй Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ADO.

39. Настройка элСмСнтов управлСния ADO Data Control ΠΈ DataGrid Control ΠΈΠ· ΠΊΠΎΠ΄Π° прилоТСния.

40. ΠžΠ±Π·ΠΎΡ€ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ActiveX ΠΈ OLE.

42. Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ элСмСнты ActiveX.

43. ВозмоТности АррWizard ΠΏΠΎ созданию ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ ActiveX.

44. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ динамичСской ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ DLL. БтатичСскоС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ DLL. ЭкспортированиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· DLL.

45. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ динамичСской ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ DLL. ДинамичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° DLL. ЭкспортированиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· DLL.

46. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ использованиС динамичСски связываСмых Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ΠŸΡ€ΠΈΠ²Π΅ΡΡ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

47. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π² Visual C++. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

48. Бинхронизация ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ синхронизации ΠΈ классы MFC.

49. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π² Visual C++. Π Π°Π±ΠΎΡ‚Π° с ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ сСмафором.

50. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π² Visual C++. Π Π°Π±ΠΎΡ‚Π° с критичСской сСкциСй.

51. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π² Visual C++. Π Π°Π±ΠΎΡ‚Π° с сСмафором.

52. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π² Visual C++. Π Π°Π±ΠΎΡ‚Π° с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ события.

53. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сСтСвых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Visual C++. ВСхнология Windows Socket для взаимодСйствия ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

54. МодСль ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр.

55. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сСтСвого прилоТСния. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса CAsyncSocket.

56. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сСтСвого прилоТСния. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий для класса сокСта.

57. ΠŸΠΎΡΡ‹Π»ΠΊΠ° ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌ сообщСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

58. ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Visual C++. Π’ΠΎΡ‡ΠΊΠ° останова. Установка Ρ‚ΠΎΡ‡Π΅ΠΊ останова. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΎΠΊΠ½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

59. ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Visual C++. Анализ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Окно CallStack.

1. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°. Π’ΠΈΠΏΡ‹ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½. ΠžΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½. ИспользованиС ClassWizard для программирования Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½

Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ срСдС Windows ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ любоС количСство Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… происходит Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° классов MFC содСрТит класс Dialog (наслСдованный ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса CWnd), ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для управлСния Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΌΠΈ панСлями.

ΠœΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приходится Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² состав прилоТСния, относятся ΠΊ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠΊΠ½Π°ΠΌ. МодальноС ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ всСгда ΠΏΠΎΠ²Π΅Ρ€Ρ… всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΠΎΠ½ Π½Π° экранС. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² этом ΠΎΠΊΠ½Π΅ ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΎΠΊΠ½Π΅ этого ΠΆΠ΅ прилоТСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ открываСтся ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ File\Open любого прилоТСния Windows.

НСмодальноС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΊΠ½Π°Ρ… прилоТСния, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ дСйствия, Π·Π°Ρ‚Π΅ΠΌ снова Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² нСмодальноС ΠΎΠΊΠ½ΠΎ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠΊΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Edit\Find (ΠŸΡ€Π°Π²ΠΊΠ°\Поиск) ΠΈ Edit\Replace (ΠŸΡ€Π°Π²ΠΊΠ°\Π—Π°ΠΌΠ΅Π½Π°) Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… прилоТСниях Windows.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ: рСсурсы ΠΎΠΊΠ½Π° ΠΈ класс ΠΎΠΊΠ½Π°.

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

Π’Π°ΠΊ ΠΊΠ°ΠΊ класс Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ сообщСния, Ρ‚ΠΎ содСрТит Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ сообщСний ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ сообщСний.

РСсурсы Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ посрСдством Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° рСсурсов, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Π΅Π³ΠΎ состав Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ элСмСнты управлСния ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΡ… Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌ порядкС. Класс ΠΎΠΊΠ½Π° создаСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ClassWizard. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, класс Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ являСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ класса CDialog, входящСго Π² MFC. ClassWizard Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ рСсурсы ΠΎΠΊΠ½Π° с классом ΠΎΠΊΠ½Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт управлСния, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² состав рСсурсов Π΄ΠΈΠ°Π»ΠΎΠ³Π°, ΠΈΠΌΠ΅Π΅Ρ‚ Π² классС ΠΎΠΊΠ½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‡Π»Π΅Π½-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π° экран, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ- Ρ‡Π»Π΅Π½ Π΅Π³ΠΎ класса. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для элСмСнтов управлСния ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΎΠΊΠ½Π° Π½Π° экран ΠΈΠ»ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ состояниС элСмСнтов управлСния послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ класса.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡƒΡŽ панСль, сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ класса Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ DoModal, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² классС CDialog.

2. Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСсурса Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π’Ρ‹Π±ΠΎΡ€ элСмСнтов управлСния для Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°

Рис. 2.1. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ рСсурса Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°

Рис.2.2. Π—Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°

Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Π½Π° экран Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Dialog Properties для вновь создаваСмого Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π²Ρ‹Π±Ρ€Π°Π² Π² мСню View\Properties ΠΈΠ»ΠΈ Ρ‰Ρ‘Π»ΠΊΠ½ΡƒΠ² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅. Π’ ΠΏΠΎΠ»Π΅ Caption (Надпись) Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄ΠΈΠ°Π»ΠΎΠ³Π°, ΠΊΠ°ΠΊ это ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис.2.3.

Рис.2.3. Окно свойств (Dialog Properties) создаваСмого Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°

Π’Ρ‹Π±ΠΎΡ€ элСмСнтов управлСния для Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° достаточно Π²Π΅Π»ΠΈΠΊ. Для установки элСмСнтов Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ тСхнология, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ°Ρ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ WYSIWYG (What You See Is What You Get) Ρ‡Ρ‚ΠΎ видишь, Ρ‚ΠΎ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡˆΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² своСм ΠΎΠΊΠ½Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΅Π΅ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† Π½Π° ΠΏΠΎΠ»Π΅ инструмСнтария, ΠΏΠ΅Ρ€Π΅Ρ‚ΡΠ½ΡƒΡ‚ΡŒ Π² ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ мСсто Π½Π° ΠΏΠΎΠ»Π΅ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΎΠΊΠ½Π° прилоТСния ΠΈ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π΅Π΅ Ρ‚Π°ΠΌ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ надпись.

ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ характСристика основных Windows-элСмСнтов управлСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для построСния Π΄ΠΈΠ°Π»ΠΎΠ³Π°:

3. Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ элСмСнтов управлСния. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ класса Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. АссоциированныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ элСмСнтов управлСния.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Dialog

УстановитС элСмСнты управлСния Π½Π° повСрхности Π΄ΠΈΠ°Π»ΠΎΠ³Π°. Для этого Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΌΡ‹ΡˆΡŒΡŽ Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта управлСния, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π² Ρ‚ΠΎΠΌ мСстС, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ располоТСн этот элСмСнт. Если посчитаСтС Π½ΡƒΠΆΠ½Ρ‹ΠΌ, «ΡƒΡ…Π²Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ» ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΌΡ‹ΡˆΠΈ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ€Π°Π·ΠΌΠ΅Ρ€Π½Ρ‹Ρ… ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² Π²ΠΎΠΊΡ€ΡƒΠ³ изобраТСния элСмСнта. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΅Π³ΠΎ пСрСдвиТСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² элСмСнта.

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ One, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠΊΠ½ΠΎ Dialog Properties ΠΈ установитС Π² Π½Π΅ΠΌ Ρ„Π»Π°ΠΆΠΎΠΊ Group (Π“Ρ€ΡƒΠΏΠΏΠ°). Вакая установка ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ One являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ элСмСнтом Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚.Π΅. ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡΠΌ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ, Π±ΡƒΠ΄Π΅Ρ‚ Π² дальнСйшСм ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Β«Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€Π°Π²Β».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π΅Ρ‰Π΅ ΠΈ элСмСнт Ρ‚ΠΈΠΏΠ° список. УстановитС Π΅Π³ΠΎ слСва ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹. Π’ Ρ‚ΠΎ врСмя, ΠΊΠΎΠ³Π΄Π° этот элСмСнт Π΅Ρ‰Π΅ остаСтся Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ View=> Properties Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Π½Π° экран ΠΎΠΊΠ½ΠΎ Dialog Properties. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Styles (Π‘Ρ‚ΠΈΠ»ΠΈ) ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π½Π΅ установлСн Π»ΠΈ Ρ„Π»Π°ΠΆΠΎΠΊ Sort (Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°). Если этот Ρ„Π»Π°ΠΆΠΎΠΊ установлСн, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ элСмСнты Π² спискС Π±ΡƒΠ΄ΡƒΡ‚ отсортированы ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ.

БозданиС класса диалогового окна.

Когда Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСсурсов Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ, Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Π½Π° экран Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ мастСра ClassWizard. Для этого Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ View\ClassWizard. ΠœΠ°ΡΡ‚Π΅Ρ€ ClassWizard ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс. УстановитС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Create a new class (ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс) ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ОК. ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ New Class (Π½ΠΎΠ²Ρ‹ΠΉ класс). Π’ ΠΏΠΎΠ»Π΅ Name (имя) Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Π½ΠΎΠ²ΠΎΠ³ΠΎ класса (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, CSDIDialog) ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ОК. ПослС этого ClassWizard создаст Π½ΠΎΠ²Ρ‹ΠΉ класс, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ Ρ„Π°ΠΉΠ» тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ SDIDialog.cpp ΠΈ Ρ„Π°ΠΉΠ» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° SDIDialog.h ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ ΠΈΡ… Π² состав ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ассоциированных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Ассоциированная пСрСмСнная позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ связь ΠΌΠ΅ΠΆΠ΄Ρƒ тСкстом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ рСсурсами ΠΎΠΊΠ½Π°.

НиТС пСрСчислСны Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ассоциированы с Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ элСмСнта управлСния:

БвяТитС Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТится Π² элСмСнтС IDC_EDIT1, с Ρ‡Π»Π΅Π½ΠΎΠΌ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ m_edit Ρ‚ΠΈΠΏΠ° CString. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ IDC_LIST1 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ связан с Ρ‡Π»Π΅Π½ΠΎΠΌ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ m_list, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса CListBox (Π² спискС Category Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π±Ρ€Π°Π½ΠΎ Control). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ IDC_RADIO1 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ связан с Ρ‡Π»Π΅Π½ΠΎΠΌ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ m_radio Ρ‚ΠΈΠΏΠ° int, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ связь Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ установлСна ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

ПослС добавлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ClassWizard ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ достовСрности Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ дСлаСтся Π½Π΅ для всСх Π²ΠΈΠ΄ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Но, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, связанной с тСкстовым ΠΏΠΎΠ»Π΅ΠΌ, Π‘lassWizard ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π² ΠΏΠΎΠ»Π΅ Maximum Characters (ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ символов) ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ строки. Для Ρ‡Π»Π΅Π½Π°-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ m_edit установитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ€Π°Π²Π½Ρ‹ΠΌ 10. Если тСкстовоС ΠΏΠΎΠ»Π΅ ассоциировано с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° int ΠΈΠ»ΠΈ float, ClassWIzard ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ эту ΠΆΠ΅ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΊΠ½Π° для установки Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ² Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ значСния. Π’ дальнСйшСм всю Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ соотвСтствия Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ значСния установлСнным ограничСниям ΠΈ Π²Ρ‹Π΄Π°Ρ‡Ρƒ Π² случаС ΠΈΡ… Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ сообщСния с ΠΏΡ€ΠΎΡΡŒΠ±ΠΎΠΉ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ Π±Π΅Ρ€ΡƒΡ‚ Π½Π° сСбя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC.

4. ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π° экран. Ѐункция ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами управлСния ΠΈ ассоциированными ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ модального Π΄ΠΈΠ°Π»ΠΎΠ³Π°

ИспользованиС класса диалогового окна

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° сформирован рСсурс ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ класс ΠΎΠΊΠ½Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ этого класса Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ (ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ InitInstance) ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран связанноС с Π½ΠΈΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ сразу послС запуска прилоТСния. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция DoModal().

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π° экран.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ трансляции компилятор Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ, Π³Π΄Π΅ Π²Π·ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ классС CSDIDialog. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠ½Π΅Ρ† тСкста Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CSDIApp::Initlnstance() Π² Ρ„Π°ΠΉΠ»Π΅ SDI.CPP ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ΠΌ тСкста Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки:

Запуск ΠΈ компиляция прилоТСния. ЗапуститС процСсс компиляции ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ‹Π±Ρ€Π°Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Build=>Build ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Build (ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ) ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Build. ЗапуститС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прилоТСния, воспользовавшись ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Build\Execute (ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ\Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ) ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Execute (Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ) ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Build. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π° экранС появилось Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ элСмСнтов управлСния, установлСнными ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ.

ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ созданного Π²Π°ΠΌΠΈ прилоТСния помСняйтС Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π² тСкстовом ΠΏΠΎΠ»Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ тСкст hello), Π° Π·Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ОК. ПослС этого Π½Π° экранС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΎΠΊΠ½ΠΎ сообщСния.

Π‘Π½ΠΎΠ²Π° запуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ тСкст Π² ΠΏΠΎΠ»Π΅ ΠΈ Π²Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· ΠΎΠΊΠ½Π°, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² Π½Π° Cancel. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° сообщСниС, гласящСС, Ρ‡Ρ‚ΠΎ Π² ΠΏΠΎΠ»Π΅ остался исходный тСкст hello. Π­Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ MFC Π½Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ содСрТимоС тСкстового поля (ΠΊΠ°ΠΊ элСмСнта управлСния) Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-Ρ‡Π»Π΅Π½ Π² случаС, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ°Π΅Ρ‚ Π½Π° Cancel для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΎΠΊΠ½Π°. И снова, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ экспСримСнтС, Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Ρ‰Π΅Π»ΠΊΠ½Π΅Ρ‚Π΅ Π½Π° ОК, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π² ΠΎΠΊΠ½Π΅ сообщСния копию тСкста, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π² тСкстовом ΠΏΠΎΠ»Π΅. Надпись Π² ΠΎΠΊΠ½Π΅ Π³Π»Π°ΠΈΡ‚: В”You clicked OK. Edit Box Is: hello”.

Если Π²Ρ‹ Ρ‰Π΅Π»ΠΊΠ½Π΅Ρ‚Π΅ Π½Π° Cancel, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ измСнСния элСмСнтов управлСния. Надпись Π² ΠΎΠΊΠ½Π΅ гласит: β€œYou clicked Cancel. Edit Box Is: hello”.

Как это происходит? Когда Π²Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ»ΠΈ Π½Π° OK, MFC ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π» Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ OnOK(). Ѐункция OnOK() унаслСдована ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса CDialog, классом-наслСдником ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся наш Π΄ΠΈΠ°Π»ΠΎΠ³. Помимо ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ Π² Π½Π΅ΠΌ находится функция DoDataExchange(), подготовлСнная срСдствами Π‘lassWizard. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΎΠ½Π° выглядит Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚:

DDX_Control(pDX, IDC_LIST1, m_list);

DDX_Check(pDX, IDC_CHECK1, m_check);

DDX_Text(pDX, IDC_EDIT1, m_edit);

DDX_Radio(pDX, IDC_RADI01, m_radio);

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ DoDataExhange. Он вызываСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ UpdateData, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² классС CWnd. ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ опрСдСляСт, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Если ΠΌΠ΅Ρ‚ΠΎΠ΄ UpdateData вызываСтся с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ FALSE, Ρ‚ΠΎ выполняСтся инициализация Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… класса отобраТаСтся Π² ΠΎΡ€Π³Π°Π½Π°Ρ… управлСния Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.

Π’ случаС Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ UpdateData Π²Ρ‹Π·Π²Π°Π½ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ TRUE, Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Из ΠΎΡ€Π³Π°Π½ΠΎΠ² управлСния Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΎΠ½ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… класса Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄ UpdateData Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΡˆΠ΅Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΈ Π½ΡƒΠ»ΡŒ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС. Ошибка ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Ссли Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π² элСмСнты класса Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π» Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΡ‚Π²Π΅Ρ€Π³Π½ΡƒΡ‚Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈ создании модальной Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ панСль появится Π½Π° экранС, вызываСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ OnInitDialog класса CDialog. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ OnInitDialog Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ UpdateData ΠΈ выполняСт ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΎΡ€Π³Π°Π½ΠΎΠ² управлСния.

Если ΠΌΠ΅Ρ‚ΠΎΠ΄ OnInitDialog пСрСопрСдСляСтся Π² классС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ OnInitDialog класса CDialog.

ΠœΠ΅Ρ‚ΠΎΠ΄ UpdateData Ρ‚Π°ΠΊΠΆΠ΅ вызываСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ класса CDialog. Π’Π°ΠΊ, ΠΌΠ΅Ρ‚ΠΎΠ΄ UpdateData вызываСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡƒΡŽ панСль, Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Ok».

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° «Ok» Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ IDOK. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΌΠ΅Ρ‚ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Cancel», ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ IDCANCEL, Ρ‚ΠΎ диалоговая панСль Ρ‚Π°ΠΊΠΆΠ΅ закрываСтся, Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ UpdateData Π½Π΅ вызываСтся ΠΈ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π΅ происходит.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρƒ DoDataExchange, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слуТит для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² автоматичСского ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, пСрСдаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ pDX Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса CDataExchange. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создаСтся, ΠΊΠΎΠ³Π΄Π° инициируСтся процСсс ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ UpdateData.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… класса CDataExchange ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π² Ρ‚ΠΎΠΌ числС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, Π² ΠΊΠ°ΠΊΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ этот ΠΎΠ±ΠΌΠ΅Π½. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ pDX пСрСдаСтся функциям DDX_ ΠΈ DDV_.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Если ΠΊ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΡ€Π³Π°Π½Ρ‹ управлСния ΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΈΡ… срСдствами ClassWizard с элСмСнтами Π΄Π°Π½Π½Ρ‹Ρ… класса CDlg, Ρ‚ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ AFX_DATA_MAP Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ DDX ΠΈ DDV, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для выполнСния ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

5. ИспользованиС элСмСнта управлСния Ρ‚ΠΈΠΏΠ° «список». Π‘Ρ‚ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ½ списков. БообщСния ΠΎΡ‚ элСмСнта управлСния Ρ‚ΠΈΠΏΠ° «список» (LBN_). НСкоторыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса CListBox

ИспользованиС элСмСнта управлСния Ρ‚ΠΈΠΏΠ° список

Когда наступаСт врСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π΅Π³ΠΎ Π½Π° экран, вызываСтся функция-Ρ‡Π»Π΅Π½ класса CDialog OnInitDialog(). Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Ρ‡Π»Π΅Π½Ρ‹ класса CsdiDialog Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ услугами ClassWizard.

Π’ ΠΎΠΊΠ½Π΅ ClassView Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π½Π° CsdiDialog ΠΈ Π² контСкстном мСню Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Add Windows Message Handler (Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ сообщСний Windows). На экранС появится ΠΎΠΊΠ½ΠΎ New Message and Event Handlers. Π’ спискС New Windows Messages/Events Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ WM_INITDIALOG ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Add Handler. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сообщСний исчСзнСт ΠΈΠ· списка Π² Π»Π΅Π²ΠΎΠΉ части ΠΎΠΊΠ½Π° ΠΈ появится Π² спискС Existing Messages/Event Handlers Π² ΠΏΡ€Π°Π²ΠΎΠΉ части. Π©Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° Π½Π΅ΠΌ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ EditExisting с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

BOOL CsdiDialog:: OnInitDialog()

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ послС Ρ‰Π΅Π»Ρ‡ΠΊΠ° OK, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.

Π’ ΠΎΠΊΠ½Π΅ ClassView Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π½Π° CsdiDialog ΠΈ Π² контСкстном мСню Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Add Windows Message Handler (Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ сообщСний Windows).

Π’ ΠΎΠΊΠ½Π΅ New Message and Event Handlers Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² спискС Class or object to handle IDOK.

Π’ Π»Π΅Π²ΠΎΠΌ спискС New Windows Messages/Events Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ BN_CLICKED. Π­Ρ‚ΠΈΠΌ Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ OK.

Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Add Handler, появится Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Add Member Function.

Π‘ΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ OnOK(), для Ρ‡Π΅Π³ΠΎ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° OK.

Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ EditExisting, появится тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π² Π½Π΅Π³ΠΎ нСсколько строк.

Π’ ΠΎΠΊΠ½Π° списка ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ стиля LBS_NOTIFY, Ρ‡Ρ‚ΠΎ позволяСт Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΎΠΊΠ½Ρƒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚ ΠΎΠΊΠ½Π° списка сообщСниС WM_COMMAND.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π² спискС допускаСтся Π²Ρ‹Π±ΠΎΡ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ сразу Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ LBS_MULTIPLESEL.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, оконная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΎΠΊΠ½Π° списка Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ список элСмСнтов Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ€Π°ΠΌΠΊΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³. Π Π°ΠΌΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стиля WS_BORDER.

Для ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ содСрТимого с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ WS_VSCROLL.

Π’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… Windows опрСдСляСтся ΡΡ‚ΠΈΠ»ΡŒ списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся LBS_STANDARD. Π‘Ρ‚ΠΈΠ»ΡŒ LBS_STANDARD Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ стили списка. Он опрСдСляСтся ΠΊΠ°ΠΊ комбинация

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ стилями WS_SIZEBOX ΠΈ WS_CAPTION, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ°Π΅Ρ‚ ΠΌΡ‹ΡˆΡŒΡŽ Π½Π°Π΄ ΠΎΠΊΠ½ΠΎΠΌ списка, ΠΎΠΊΠ½ΠΎ списка ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ фокус Π²Π²ΠΎΠ΄Π°. Если ΠΎΠΊΠ½ΠΎ списка ΠΈΠΌΠ΅Π΅Ρ‚ фокус Π²Π²ΠΎΠ΄Π°, Ρ‚ΠΎ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΌΡ‹ΡˆΡŒΡŽ, Ρ‚Π°ΠΊ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ.

Когда Π’Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ со списком, Π²Ρ‹Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΠ΅ сообщСния (notification) ΠΎΡ‚ списка. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² Message Map, Ссли Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ IDC_list1 списка.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Окно списка посылаСт ΠΊΠΎΠ΄Ρ‹ увСдомлСния LBN_SELCHANGE ΠΈ LBN_DBLCLK Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π² ΡΡ‚ΠΈΠ»ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΎΠΊΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ LBS_NOTIFY.

НСкоторыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса CListBox

ΠœΠ΅Ρ‚ΠΎΠ΄ для очистки содСрТимоС списка, Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ пустым:

ΠœΠ΅Ρ‚ΠΎΠ΄ для добавлСния элСмСнта Π² список:

int AddString( LPCSTR lpszItem);

ДобавляСт строку lpszItem Π² список ΠΈ cΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ, Ссли ΠΏΡ€ΠΈ создании Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ свойство Sort. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС элСмСнт добавляСтся Π² ΠΊΠΎΠ½Π΅Ρ† списка.

ΠœΠ΅Ρ‚ΠΎΠ΄ для удалСния элСмСнта ΠΈΠ· списка:

int DeleteString( UINT nIndex);

УдаляСт ΠΈΠ· списка элСмСнт с индСксом nIndex. Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ элСмСнтов начинаСтся с 0.

ΠœΠ΅Ρ‚ΠΎΠ΄ для получСния индСкса элСмСнта, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ:

int GetCurSel() const;

ΠœΠ΅Ρ‚ΠΎΠ΄ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ установки ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта списка:

int SetCurSel( int nSelect);

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ для копирования содСрТания ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² Π±ΡƒΡ„Π΅Ρ€:

int GetText( int nIndex, LPSTR lpszBuffer) const;

void GetText( int nIndex, CString& rString) const;

ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ элСмСнт с индСксом nIndex Π² Π±ΡƒΡ„Π΅Ρ€.

ΠœΠ΅Ρ‚ΠΎΠ΄ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ списка Π² ΠΎΠΊΠ½Π΅ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ элСмСнт с индСксом nIndex Π±Ρ‹Π» Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ:

int SetTopIndex( int nIndex);

ΠœΠ΅Ρ‚ΠΎΠ΄ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска Π² спискС:

int FindString( int nStartAfter, LPCSTR lpszItem) const;

ΠžΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅Ρ‚ поиск Π² спискС ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° индСкс элСмСнта списка, прСфикс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ совпадаСт со строкой lpszItem. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ зависит ΠΎΡ‚ рСгистра, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π°Π±ΠΈΡ€Π°Π»ΠΈΡΡŒ символы сравниваСмых строк.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ nStartAfter Π·Π°Π΄Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ поиска, Π½ΠΎ поиск ΠΈΠ΄Π΅Ρ‚ ΠΏΠΎ всСму списку. Он начинаСтся ΠΎΡ‚ элСмСнта, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π° nStartAfter, Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° списка ΠΈ Π·Π°Ρ‚Π΅ΠΌ продолТаСтся ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° списка Π΄ΠΎ элСмСнта с индСксом nStartAfter. Π’ качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° выдаСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ элСмСнт, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ условиям поиска. Если Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ‚, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ LB_ERR.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ отличаСтся ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ прСфикс элСмСнта Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ со строкой lpszFind, Π° сам тСкст элСмСнта:

int FindStringExact( int nIndexStart, LPCSTR lpszFind) const;

Поиск ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ чувствитСлСн ΠΊ рСгистру, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π°Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ символы.

6. ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ списки (класс CCombobox). Π‘Ρ‚ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ½ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… списков. БообщСния ΠΎΡ‚ элСмСнта управлСния Ρ‚ΠΈΠΏΠ° Β«ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ список» (CBN) НСкоторыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса CCombobox

Π­Ρ‚ΠΎΡ‚ класс являСтся ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ списка ΠΈ однострочного Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, поэтому для ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ списка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ стили, ΠΊΠΎΠ΄Ρ‹ извСщСния ΠΈ сообщСния, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ списку ”CListbox”, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сообщСния, спСцифичСскиС для Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° тСкста класса β€œCEdit”.

ΠŸΡ€ΠΈ создании списка β€œCCombobox” ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ стили ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ списка, символичСскиС ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ прСфикс CBS_.

Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹Π΅ стили ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ списка

Π‘Ρ€Π΅Π΄ΠΈ всСх стилСй ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ списка ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ…:

Рассмотрим стили Combo box, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π΅Π³ΠΎ создании Π² мСню PROPERTIES

When is list box visible?

Static or edit control?

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ прСдлагаСтся Simple. Π’ этом случаС список постоянно ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π½Π° экранС. Π’ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰Π΅ΠΌΡΡ свСрху, ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ элСмСнт Π² ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ списка ΠΈ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² ΠΏΠΎΠ»Π΅ рСдактирования. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π² ΠΏΠΎΠ»Π΅ рСдактирования Π½Π°Π±Ρ€Π°Ρ‚ΡŒ символы, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ с Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ символами Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… элСмСнтов списка, эти элСмСнты станут ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Π² спискС.

Π‘Ρ‚ΠΈΠ»ΡŒ Droplist (Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ). Π’ этом ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ спискС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смоТСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ элСмСнты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка. Для этого ΠΎΠ½, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² стрСлку, ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Π½ΡƒΠΆΠ½ΡƒΡŽ строку ΠΈΠ»ΠΈ Π²Π²Π΅Π΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ ΠΈΠ· Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ строки.

Combo box ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠΊΠ½Π΅ Properties. На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Data Π΅ΡΡ‚ΡŒ ΠΎΠΊΠ½ΠΎ Enter Listbox Items. ΠšΠ°ΠΆΠ΄ΡƒΡŽ строку Π² Π½Π΅ΠΌ слСдуСт Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ctrl+Enter.

List box ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° начинаСтся Π΄ΠΈΠ°Π»ΠΎΠ³, Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ OnInitDialog, которая увязана с сообщСниСм WM_INITDIALOG, класса CSDIDialog.

Рассмотрим сообщСния ΠΎΡ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ списка, посылаСмыС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΎΠΊΠ½Ρƒ

ΠšΠΎΠ΄Ρ‹ извСщСния для ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ списка ΠΈΠΌΠ΅ΡŽΡ‚ символичСскиС ΠΈΠΌΠ΅Π½Π° с прСфиксом CBN_.

Рассмотрим сообщСния, посылаСмыС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ спискам

Для управлСния списком β€œcombobox” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π°Π±ΠΎΡ€ сообщСний, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€Ρƒ сообщСний для списка β€œCListbox” ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° тСкста β€œCEdit”.

Π’ Ρ„Π°ΠΉΠ»Π΅ windows.h ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ сообщСния, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списком β€œcombobox”. БимволичСскиС ΠΈΠΌΠ΅Π½Π° этих сообщСний ΠΈΠΌΠ΅ΡŽΡ‚ прСфикс CB_.

МногиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Combo box ΠΈ List box ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚. Π’ Combo box Π½Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², связанных с мноТСствСнным Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, связанныС с ΠΏΠΎΠ»Π΅ΠΌ рСдактирования.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ΅ строки Π² ΠΏΠΎΠ»Π΅ рСдактирования.

DWORD dwCurSel = m_combobox.GetEditSel();

WORD dStart = LOWORD(dwCurSel);

WORD dEnd = HIWORD(dwCurSel);

BOOL SetEditSel( int nStartChar, int nEndChar );

ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ символы Π² ΠΏΠΎΠ»Π΅ рСдактирования. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ (nStartChar) 0. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π΄ΠΎ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π° ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ nEndChar=4.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ CB_ERR, Ссли ComboBox ΠΈΠΌΠ΅Π΅Ρ‚ ΡΡ‚ΠΈΠ»ΡŒ DROPDOWNLIST.

int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const;

ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π° Π² Π±ΡƒΡ„Π΅Ρ€ (lpszStringBuf) ΠΈΠ»ΠΈ строку (rString). Если ΠΎΠΊΠ½ΠΎ являСтся control (Π² нашСм случаС ΠΏΠΎΠ»Π΅ΠΌ рСдактирования), ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ тСкст ΠΈΠ· поля рСдактирования.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки Π² Π±Π°ΠΉΡ‚Π°Ρ…, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ символ ΠΊΠΎΠ½Ρ†Π°. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0, Ссли Π½Π΅Ρ‚ тСкста.

nMaxCount ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ максимальноС количСство символов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скопировано Π² Π±ΡƒΡ„Π΅Ρ€. Если строка Π΄Π»ΠΈΠ½Π½Π΅Π΅, ΠΎΠ½Π° обрСзаСтся.

int nLength = str.GetLength();

void SetWindowText( LPCTSTR lpszString );

ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ строку (lpszString) Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°. Если ΠΎΠΊΠ½ΠΎ являСтся control (Π² нашСм случаС ΠΏΠΎΠ»Π΅ΠΌ рСдактирования), ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ строку Π² ΠΏΠΎΠ»Π΅ рСдактирования.

int GetLBText( int nIndex, LPTSTR lpszText ) const;

void GetLBText( int nIndex, CString& rString ) const;

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ строку ΠΈΠ· Listbox.

nIndex ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ индСкс строки, Ссли индСкс мСньшС нуля, ΠΈΠ»ΠΈ большС ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния возвращаСтся CB_ERR.

lpszText ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π±ΡƒΡ„Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строку. Π‘ΡƒΡ„Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ достаточно мСста ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ символ ΠΊΠΎΠ½Ρ†Π° строки. Π Π°Π·ΠΌΠ΅Ρ€ строки Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π·Π°Ρ€Π°Π½Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° GetTextLen.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки Π² Π±Π°ΠΉΡ‚Π°Ρ… Π²ΠΊΠ»ΡŽΡ‡Π°Ρ символ ΠΊΠΎΠ½Ρ†Π° строки. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ LB_ERR, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка Π² индСксС.

int SetItemData( int nIndex, DWORD dwItemData );

устанавливаСт 32-разрядноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ связанноС с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ элСмСнтом

nIndex ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ индСкс элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн,

dwItemData ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта.

DWORD GetItemData( int nIndex ) const;

Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ 32-разрядноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ связанноС с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ элСмСнтом nIndex ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ индСкс элСмСнта Π² спискС.

Бписок ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ:

VK_SHIFT, VK_CONTROL, VK_ ALT ΠΈ Ρ‚.Π΄.

VK_UP, VK_RIGHT, VK_LEFT, VK_ESCAPE, VK_RETURN,

7.ИспользованиС элСмСнтов Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ (Ρ„Π»Π°ΠΆΠΊΠΈ, Ρ€Π°Π΄ΠΈΠΎ-ΠΊΠ½ΠΎΠΏΠΊΠΈ). БтатичСскиС поля (Static text). Окна рСдактирования (Edit box). ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса CEdit

ИспользованиС элСмСнтов Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ.

МоТно Ρ‚Π°ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ.

Для Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ CSDIDialog::0nInitDialog():

Π§Π»Π΅Π½ΠΎΠΌ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ являСтся m_radio, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ связана Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ. Она (пСрСмСнная) прСдставляСт собой индСкс Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π² этой Π³Ρ€ΡƒΠΏΠΏΠ΅ элСмСнтов управлСния (ΠΊΠ°ΠΊ всСгда, индСкс начинаСтся с 0). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса 1 соотвСтствуСт Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŽ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅. Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ UpdateData() Π² этом Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ обновляСт содСрТимоС элСмСнтов управлСния Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° соотвСтствСнно ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ связанных с Π½ΠΈΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…-Ρ‡Π»Π΅Π½ΠΎΠ². АргумСнт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ UpdateData() ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…: UpdateData(TRUE) ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΎ Π±Ρ‹ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… соотвСтствСнно элСмСнтам управлСния, Ρ‚.Π΅. пСрСписало Π±Ρ‹ Π² m_radio индСкс Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ CSDIApp::InitInstance():

msg += «Radio Selection: «;

«Π‘татичСскиС поля (класс static)»

Рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стили статичСского ΠΎΠΊΠ½Π°

CEdit наслСдуСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ‚ CWnd. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ тСкст ΠΈΠ· ΠΎΠΊΠ½Π° CEdit ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ CWnd SetWindowText ΠΈ GetWindowText. Π”Π°ΠΆΠ΅ Π² случаС многострочного ΠΎΠΊΠ½Π°. А Ρ‚Π°ΠΊΠΆΠ΅, Ссли ΠΎΠΊΠ½ΠΎ многострочноС, ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ тСкста ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² GetLine, SetSel, GetSel, ReplaceSel.

Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΠ΅ сообщСния Windows, посылаСмыС ΠΎΠΊΠ½ΠΎΠΌ рСдактирования Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌΡƒ ΠΎΠΊΠ½Ρƒ, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ сообщСний Π² класс Π΄ΠΈΠ°Π»ΠΎΠ³Π°.

Бписок Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… сообщСний ΠΎΡ‚ CEdit:

EN_CHANGE содСрТимоС ΠΎΠΊΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ EN_UPDATE сообщСниС посылаСтся послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Windows ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ экран.

Если Π²Ρ‹ создаСтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ CEdit Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΎΠ½ Ρ€Π°Π·Ρ€ΡƒΡˆΠ°Π΅Ρ‚ΡΡ автоматичСски, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ ΠΎΠΊΠ½ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π°.

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Π° рСдактирования хранят тСкст Π² области памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π² адрСсном пространствС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹). Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ рСдактирования ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 32 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°ΠΌΠΈ.

Рассмотрим стили ΠΎΠΊΠΎΠ½ рСдактирования

ВСкст Π² ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠΊΠ½Π°Ρ… рСдактирования ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°Π²Π½Π΅Π½ Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ, Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ, Π»ΠΈΠ±ΠΎ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ. Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стилСй ΠΎΠΊΠ½Π° ES_LEFT, ES_RIGHT ΠΈ ES_CENTER.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ ΠΎΠΊΠ½Π΅ рСдактирования имССтся ΠΎΠ΄Π½Π° строка. Для создания Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° с автоматичСской Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΎΠΉ слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ ES_AUTOHSCROLL.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ многострочноС ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ рСдактирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΡ‚ΠΈΠ»ΡŒ ΠΎΠΊΠ½Π° ES_MULTILINE. Для многострочного ΠΎΠΊΠ½Π° рСдактирования, Ссли Π½Π΅ Π·Π°Π΄Π°Π½ ΡΡ‚ΠΈΠ»ΡŒ ES_AUTOHSCROLL, Ρ‚ΠΎ тСкст автоматичСски пСрСносится Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку ΠΏΡ€ΠΈ достиТСнии ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ края ΠΎΠΊΠ½Π°.

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

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

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