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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Delphi. Π’Ρ€ΡŽΠΊΠΈ ΠΈ эффСкты»

Автор Π’Π°Π»Π΅Ρ€ΠΈΠΉ Борисок

АлСксандр Π§ΠΈΡ€Ρ‚ΠΈΠΊ

Delphi. Π’Ρ€ΡŽΠΊΠΈ ΠΈ эффСкты

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’ настоящСС врСмя количСство ΠΊΠ½ΠΈΠ³, посвящСнных Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ языкам программирования, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Π»ΠΈΠΊΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° просто Π½Π΅ знаСшь, ΠΊΠ°ΠΊΡƒΡŽ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ. ЦСль этой ΠΊΠ½ΠΈΠ³ΠΈ – Π½Π΅ просто Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΎ Delphi. Она ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ базис Π·Π½Π°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ даст Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΈ быстро ΡƒΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° вопросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Ρƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° людСй ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ своих собствСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΌ большС Π½Π΅ придСтся Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π°Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ повсСднСвной Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° программистов. Π£ вас появится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ†Π΅Π»ΡŒ, ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ, Π° Π½Π΅ Π½Π° второстСпСнныС.

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

Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ люди Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ Delphi Π·Π° Π΅Π³ΠΎ простоту. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ΄ΠΊΡƒΠΏΠ°Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΏΠΎΡ‡Ρ‚ΠΈ сразу ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² особСнностях синтаксиса языка. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° Π² совокупности с ΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°ΡŽΡ‚ Π²Π°ΠΌ Ρ†Π΅Π»Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов для воплощСния Π·Π°Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ. Однако Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅: Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, нСдостаточно ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ объСм тСорСтичСских Π·Π½Π°Π½ΠΈΠΉ, хотя ΠΈ ΠΎΠ½ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ΅Π½. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ языка, ΠΈ Ρ‚ΠΎΠ³Π΄Π° вас ΠΆΠ΄Π΅Ρ‚ успСх. Π’Π΅Π΄ΡŒ Π½Π΅ понимая, Π·Π°Ρ‡Π΅ΠΌ всС это Π½ΡƒΠΆΠ½ΠΎ, Π²Ρ‹ Π½Π΅ смоТСтС эффСктивно Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ рСсурсами языка для Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнных Π·Π°Π΄Π°Ρ‡.

Π’ этой ΠΊΠ½ΠΈΠ³Π΅ описано мноТСство ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². Π•ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простыС, Ρ‚Π°ΠΊ ΠΈ довольно слоТныС. Но ΠΏΡƒΡΡ‚ΡŒ послСднСС вас Π½Π΅ ΠΏΡƒΠ³Π°Π΅Ρ‚. К Ρ‚ΠΎΠΌΡƒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ ΠΈΡ… Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, ΠΎΠ½ΠΈ Π½Π΅ покаТутся Π²Π°ΠΌ особСнно Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌΠΈ.

ΠžΡ‚ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°

Π’Π°ΡˆΠΈ замСчания, прСдлоТСния, вопросы отравляйтС ΠΏΠΎ адрСсу элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ [email protected] (ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Β«ΠŸΠΈΡ‚Π΅Ρ€Β», ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ рСдакция).

На сайтС ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° http://www.piter.com Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π°ΡˆΠΈΡ… ΠΊΠ½ΠΈΠ³Π°Ρ….

Π“Π»Π°Π²Π° 1 Окна

β€’ ΠŸΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ внимания ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ

β€’ ΠžΠΊΠ½ΠΎ прилоТСния

β€’ ΠŸΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Π΅ ΠΎΠΊΠ½Π°

β€’ ΠžΠΊΠ½Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ нСстандартной Ρ„ΠΎΡ€ΠΌΡ‹

β€’ ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΎΠΊΠΎΠ½

β€’ ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΊΠΎΠ½

β€’ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Π° Π² систСмноС мСню ΠΎΠΊΠ½Π°

β€’ ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΊΠΎΠ½

Π‘Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ ΠΈΠΌΠ΅Π½Π½ΠΎ с Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² использования ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ интСрфСйса. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ стало Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Windows ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΠΊΠ½Π° постоянно ΠΈ Π²Π΅Π·Π΄Π΅ (ΠΎΡ‚ΡΡŽΠ΄Π°, собствСнно, ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅). Π Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ± ΠΎΠΊΠ½Π°Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, сообщСний, свойств – понятиС ΠΎ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΊΠ½Π°Ρ… Π΅ΡΡ‚ΡŒ Ρƒ любого Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Windows.

Π’ своих собствСнных ΠΎΠΊΠ½Π°Ρ… Ρ€ΠΈΡΡƒΡŽΡ‚ΡΡ ΠΈ элСмСнты управлСния (тСкстовыС поля, ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ, Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ списки ΠΈ Ρ‚. Π΄.). ВзглянитС Π½Π° интСрфСйс, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Microsoft Word. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ содСрТимоС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° находится Π² своСм собствСнном ΠΎΠΊΠ½Π΅ с полосами ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ (ΠΏΡ€Π°Π²Π΄Π°, это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ элСмСнт управлСния). Окна элСмСнтов управлСния ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Β«ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…Β» ΠΎΠΊΠΎΠ½ (ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ) отсутствиСм стиля, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΈΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠΊΠ½Π°ΠΌ. ПониманиС этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° Π½Π΅ΠΌ основана Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ‹.

РассматриваСмыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ частично ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ срСдства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдусмотрСны Π² Borland Delphi, Π° частично – возмоТности «чистого» API (см. Π³Π». 2). ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠΊΠ½Π°ΠΌΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ задания ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ‚ΠΈΠΏΠ° HWND – дСскриптора ΠΎΠΊΠ½Π°. Π­Ρ‚ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС Windows ΠΎΠΊΠ½ΠΎ. Π’ Delphi дСскриптор ΠΎΠΊΠ½Π° Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ элСмСнта управлСния хранится Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Handle ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

НуТно Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² этой Π³Π»Π°Π²Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ Β«ΠΎΠΊΠ½ΠΎΒ» ΠΈ Β«Ρ„ΠΎΡ€ΠΌΠ°Β» ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ синонимы, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Ρ„ΠΎΡ€ΠΌΠ΅ (Π² Ρ‚ΠΎΠΌ смыслС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ это слово ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ с использованиСм Delphi). Когда ΠΆΠ΅ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎΠ± элСмСнтах управлСния, Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΈ говорится: ΠΎΠΊΠ½ΠΎ элСмСнта управлСния.

1.1. ΠŸΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ внимания ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ

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

Π˜Π½Π²Π΅Ρ€ΡΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π°

ВСроятно, Π²Ρ‹ Π½Π΅ Ρ€Π°Π· ΠΌΠΎΠ³Π»ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прилоТСния послС выполнСния Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки ΠΊΠ°ΠΊ Π±Ρ‹ ΠΏΠΎΠ΄ΠΌΠΈΠ³ΠΈΠ²Π°ΡŽΡ‚. ΠŸΡ€ΠΈ этом мСняСтся Ρ†Π²Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ прилоТСния Π½Π° ПанСли Π·Π°Π΄Π°Ρ‡, Π° Ρ‚Π°ΠΊΠΆΠ΅ состояниС ΠΎΠΊΠ½Π° с Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π½Π° Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅. Π’Π°ΠΊΠΎΠΉ эффСкт Π»Π΅Π³ΠΊΠΎ достиТим ΠΏΡ€ΠΈ использовании API-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ FlashWindow ΠΈΠ»ΠΈ Π΅Π΅ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° – Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ FlashWindowEx.

...

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

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

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ позволяСт ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ПанСли Π·Π°Π΄Π°Ρ‡ (листинг 1.1).

...

Листинг 1.1.

ΠŸΡ€ΠΎΡΡ‚Π°Ρ инвСрсия Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π°

procedure TForm1.cmbFlashOnceClick(Sender: TObject);

begin

FlashWindow(Handle, True);

end;

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ дСскриптор Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (Ρ‚ΠΈΠΏ BOOL) инвСрсии. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„Π»Π°Π³Π° Ρ€Π°Π²Π½ΠΎ True, Ρ‚ΠΎ состояниС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° измСняСтся Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅ (ΠΈΠ· Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ становится Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚). Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„Π»Π°Π³Π° False, Ρ‚ΠΎ состояниС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° восстанавливаСтся Π² своС ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ).

Π‘ΠΎΠ»Π΅Π΅ слоТная функция FlashWindowEx Π² качСствС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (ΠΊΡ€ΠΎΠΌΠ΅ дСскриптора ΠΎΠΊΠ½Π°) ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ структуру FLASHWINFO, заполняя поля ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ мигания ΠΊΠ½ΠΎΠΏΠΊΠΈ прилоТСния ΠΈ/ΠΈΠ»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π°.

Π’ Ρ‚Π°Π±Π». 1.1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ описаниС ΠΏΠΎΠ»Π΅ΠΉ структуры FLASHWINFO.

Π’Π°Π±Π»ΠΈΡ†Π° 1.1. Поля структуры FLASHWINFO

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° dwFlags формируСтся ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ Ρ„Π»Π°Π³ΠΎΠ² с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π˜Π›Π˜:

β€’ FLASHW_CAPTION – ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ состояниС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π°;

β€’ FLASHWTRAY—заставляСт ΠΌΠΈΠ³Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° ПанСли Π·Π°Π΄Π°Ρ‡;

β€’ FLASHW_ALL – сочСтаниС FLASHW_CAPTION И FLASHW_TRAY;

β€’ FLASHW_TIMER – пСриодичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° ΠΈ/ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ПанСли Π·Π°Π΄Π°Ρ‡ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΏΠΎΠΊΠ° Ρ„yнкцияFlashWindowEx Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° с Ρ„Π»Π°Π³ΠΎΠΌ FLASHW_STOP;

β€’ FLASHW_TIMERNOFG – пСриодичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° ΠΈ/ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ПанСли Π·Π°Π΄Π°Ρ‡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠΊΠ½ΠΎ Π½Π΅ станСт Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ;

β€’ FLASHWSTOP – восстанавливаСт исходноС состояниС ΠΎΠΊΠ½Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ПанСли Π·Π°Π΄Π°Ρ‡.

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ FlashWindowEx.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ – состояниС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ПанСли Π·Π°Π΄Π°Ρ‡ измСняСтся Π΄Π΅ΡΡΡ‚ΡŒ Ρ€Π°Π· ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 0,2 сСкунды (листинг 1.2).

...

Листинг 1.2.

ДСсятикратная инвСрсия Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π°

procedure TForm1.cmbInverse10TimesClick(Sender: TObject);

var

fl: FLASHWINFO;

begin

fl.cbSize:= SizeOf(fl);

fl.hwnd:= Handle;

fl.dwFlags:= FLASHW_CAPTION or FLASHW_TRAY; // Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ

FLASHW_ALL

fl.uCount:= 10;

fl.dwTimeout:= 200;

FlashWindowEx(fl);

end;

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт использованиС флаговРЬАЗШ_Π’1ΠœΠ•Π Ρ‡ ΠΈ FLASHW_STOP для инвСрсии Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (листинг 1.3).

...

Листинг 1.3.

Π˜Π½Π²Π΅Ρ€ΡΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

//Запуск процСсса пСриодичСской инвСрсии Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°

procedure TForm1.cmbFlashFor4SecClick(Sender: TObject);

var

fl: FLASHWINFO;

begin

fl.cbSize:= SizeOf(fl);

fl.hwnd:= Handle;

fl.dwTimeout:= 200;

fl.dwFlags:= FLASHW_ALL or FLASHW_TIMER;

fl.uCount:= 0;

FlashWindowEx(fl);

Timer1.Enabled:= True;

end;

//ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° инвСрсии Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°

procedure TForm1.Timer1Timer(Sender: TObject);

var

fl: FLASHWINFO;

begin

fl.cbSize:= SizeOf(fl);

fl.hwnd:= Handle;

fl.dwFlags:= FLASHW_STOP;

FlashWindowEx(fl);

Timer1.Enabled:= False;

end;

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ подразумСваСтся использованиС Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ сСкунды. Π’Π°ΠΉΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π° просто ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство инвСрсий, ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ сСкунды), ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠΎΠ»Π΅ uCount. Но ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ рассчитан ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ использования Ρ„Π»Π°Π³ΠΎΠ² FLASHW_TIMERH flashw_stop.

Активизация ΠΎΠΊΠ½Π°