Π”ΠΈΠΏΠ»ΠΎΠΌΡ‹, курсовыС, Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅...
Брочная ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния Β«Π˜Π³Ρ€Π° Π½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅Β»

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Image (находится Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Additional) — cΠ»ΡƒΠΆΠΈΡ‚ для отобраТСния графичСского растрового Ρ„Π°ΠΉΠ»Π°, ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚Π°Ρ„Π°ΠΉΠ»Π°. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Image ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ³Π°Ρ‡Π΅ ΠΏΠΎ ΡΠ²ΠΎΠΈΠΌ возмоТностям ΠΈ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, Ρ‡Π΅ΠΌ PaintBox. Он ΠΈΠΌΠ΅Π΅Ρ‚ сущСствСнноС прСимущСство: Π² Π½Π΅ΠΌ Π½Π΅ ΠΏΡ€ΠΈΡ…одится Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²ΠΊΠ΅ изобраТСния, испорчСнного ΠΈΠ·-Π·Π° пСрСкрытия Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. ВсС, связанноС с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ событий OnPaint, Π² Image… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния Β«Π˜Π³Ρ€Π° Π½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅Β» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния «Π˜Π³Ρ€Π° Π½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅»

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

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° delphi ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΉ ΠΈΠ³Ρ€Π° Π’Π΅ΠΌΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся созданиС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ посрСдством срСды программирования Delphi. Π’ Delphi ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TDrawGrid ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π°ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ ΠΈΠ³Ρ€Ρƒ «Memory» (Π˜Π³Ρ€Π° Π½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅).

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Анализ постановки Π·Π°Π΄Π°Ρ‡ΠΈ говорится ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ прСдставляСт ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π΅Ρ‘ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния. А Ρ‚Π°ΠΊ ΠΆΠ΅ приводятся тСорСтичСскиС свСдСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ ОбоснованиС инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π° языка программирования ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ся основныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ РСализация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ описываСтся логичСская ΠΈ Ρ„изичСская структуры, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π”Π°Π»Π΅Π΅ Ρ€Π°Π·Π΄Π΅Π» ВСстированиС. Π—Π΄Π΅ΡΡŒ ΠΎΡΠ²Π΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… тСстов ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ дСйствий ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΡ€ΠΈ этом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

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

Π’ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ дСлаСтся Π²Ρ‹Π²ΠΎΠ΄ ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅.

1. Анализ постановки Π·Π°Π΄Π°Ρ‡ΠΈ

1.1 НазначСниС ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° delphi ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΉ ΠΈΠ³Ρ€Π°

Данная ΠΈΠ³Ρ€Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для развития памяти. Π˜Π³Ρ€ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π½ΠΈ слоТности (Difficulty level).

«Π˜Π³Ρ€Π° Π½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅» позволяСт ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π·Π°ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈ Π²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ памяти ΠΈ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°.

1.2 ВСорСтичСскиС свСдСния

1.2.1 ΠŸΠ°ΠΌΡΡ‚ΡŒ

ΠŸΠ°ΠΌΡΡ‚ΡŒ — ΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ‹Ρ‚Π°.

МногиС исслСдоватСли, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ памяти, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ «Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅» ΠΈ «Π·Π°Π±Ρ‹Π²Π°Π½ΠΈΠ΅» ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° «ΠΏΠ°ΠΌΡΡ‚ΡŒ» .

1.2.2 Π’Π΅ΠΎΡ€ΠΈΠΈ забывания

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

1.2.3 Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ запоминания

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ памяти ΠΈΡΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ стороны этого процСсса, Π² Ρ‚ΠΎΠΌ числС:

— ΠΏΡ€ΠΎΡΡ‚ΠΎΠ΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°

— Π·Π°ΡƒΡ‡ΠΈΠ²Π°Π½ΠΈΠ΅ вновь Π·Π½Π°ΠΊΠΎΠΌΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ для подсчСта Ρ‚ΠΎΠΉ экономии усилий, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄Π°Π΅Ρ‚ Π΅Π³ΠΎ частичноС сохранСниС Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ

— ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ способности Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°, Ссли ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ»ΠΈΡΡŒ Π² Π½Π°Ρ€ΡƒΡˆΠ΅Π½Π½ΠΎΠΌ порядкС

— ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ узнавания исходной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ Π΅Π΅ ΡΠΌΠ΅ΡˆΠ΅Π½ΠΈΡ с Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠ»ΠΈ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½Ρ‹ΠΌ с Π½Π΅ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠΌ.

1.2.4 ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ запоминания

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

2. ОбоснованиС инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ я Π²Ρ‹Π±Ρ€Π°Π» язык программирования Borland Delphi 7. Π­Ρ‚Π° вСрсия ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΅Π΄ΠΈΠ½ΠΎΠΉ систСмы ΠΌΠΎΡ‰Π½Ρ‹ΠΉ алгоритмичСский ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» языка, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства тСстирования ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ интСрфСйс для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ ΠΎΡΠ½ΠΎΠ²Π΅ Delphi Π»Π΅ΠΆΠΈΡ‚ язык Object Pascal, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ООП (инкапсуляция, наслСдованиС, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ) ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ встроСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Delphi являСтся прямым Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ (классами), ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ наслСдования. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Delphi ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π ΠœΠ•-модСль (Property, Method, Events — свойства, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, события), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π±Π΅Π· нСобходимости создания Π½ΠΎΠ²Ρ‹Ρ… классов. ΠŸΡ€ΠΈ создании Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ я ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ:

— ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Image (находится Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Additional) — cΠ»ΡƒΠΆΠΈΡ‚ для отобраТСния графичСского растрового Ρ„Π°ΠΉΠ»Π°, ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚Π°Ρ„Π°ΠΉΠ»Π°. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Image ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ³Π°Ρ‡Π΅ ΠΏΠΎ ΡΠ²ΠΎΠΈΠΌ возмоТностям ΠΈ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, Ρ‡Π΅ΠΌ PaintBox. Он ΠΈΠΌΠ΅Π΅Ρ‚ сущСствСнноС прСимущСство: Π² Π½Π΅ΠΌ Π½Π΅ ΠΏΡ€ΠΈΡ…одится Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²ΠΊΠ΅ изобраТСния, испорчСнного ΠΈΠ·-Π·Π° пСрСкрытия Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. ВсС, связанноС с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ событий OnPaint, Π² Image осущСствляСтся автоматичСски. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Image ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ нСпосрСдствСнном рисовании Π½Π° ΠΊΠ°Π½Π²Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² ΠΎΠΊΠ½Π΅ прилоТСния нСсколько ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ. ΠŸΡ€ΠΈ этом ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ слоТных ΠΈ Π½ΡƒΠ΄Π½Ρ‹Ρ… расчСтов ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΊΠ°Π½Π²Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ располоТСниС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‚. Π΅. Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ прСимущСства Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, вСроятно, Π²ΠΎ Π²ΡΠ΅Ρ… случаях Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠ°Π½Π²ΠΎΠΉ Image, Ρ‡Π΅ΠΌ с ΠΊΠ°Π½Π²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹.

Но ΠΏΠΎΠΌΠΈΠΌΠΎ этих возмоТностСй Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Image ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ свойства, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ графичСских Ρ„Π°ΠΉΠ»ΠΎΠ². Delphi ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² — Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΌΠ΅Ρ‚Π°Ρ„Π°ΠΉΠ»Ρ‹. ВсС Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² хранят изобраТСния; Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ лишь Π² ΡΠΏΠΎΡΠΎΠ±Π΅ ΠΈΡ… Ρ…ранСния Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π² ΡΡ€Π΅Π΄ΡΡ‚Π²Π°Ρ… доступа ΠΊ Π½ΠΈΠΌ. Битовая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° (Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .bmp) ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. ΠŸΡ€ΠΈ этом информация хранится Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ любой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠ², ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

ΠŸΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .ico) — это малСнькиС Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Они повсСмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для обозначСния Π·Π½Π°Ρ‡ΠΊΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² Π±Ρ‹ΡΡ‚Ρ€Ρ‹Ρ… ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ…, Π² ΠΏΡƒΠ½ΠΊΡ‚Π°Ρ… мСню, Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… списках. Бпособ хранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… схоТ с Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ…, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ся ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ. Π’ Ρ‡Π°ΡΡ‚ности, ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΠ½Π° сохраняСт Ρ‚ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»Π° создана.

ΠœΠ΅Ρ‚Π°Ρ„Π°ΠΉΠ»Ρ‹ (Metafiles) хранят Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΠΈΡ‚ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΡΠΏΠΎΡΠΎΠ±Π΅ создания ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ. Они хранят ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ рисования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½Ρ‹ ΠΏΡ€ΠΈ воссоздании изобраТСния. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌΠΈ, Ρ‡Π΅ΠΌ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Image позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽΡΡ Π² Π³Ρ€Π°Ρ„ичСских Ρ„Π°ΠΉΠ»Π°Ρ… всСх ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Для этого слуТит Π΅Π³ΠΎ свойство Picture — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° TPicture.

Когда Π²Ρ‹ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ проСктирования Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Image, ΠΎΠ½ Π½Π΅ ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΅Π³ΠΎ, Π½ΠΎ ΠΈ ΡΠΎΡ…раняСт Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ графичСского Ρ„Π°ΠΉΠ»Π°. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ·Π΄Π½Π΅Π΅, Π² Image ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΠ΅ графичСскиС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ выполнСния прилоТСния.

Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Image:

— autoSize. Если ΠΎΠ½ Π² true, Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Image Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΠΎΠ΄Π³ΠΎΠ½ΡΡ‚ΡŒΡΡ ΠΏΠΎΠ΄ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠΉ Π² Π½Π΅Π³ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ. Если ΠΆΠ΅ свойство AutoSize установлСно Π² false, Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΌΠ½ΠΎΠ³ΠΎ большС ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ изобраТСния.

— stretch. Оно позволяСт ΠΏΠΎΠ΄Π³ΠΎΠ½ΡΡ‚ΡŒ Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎΠ΄ Ρ€Π°Π·ΠΌΠ΅Ρ€ рисунка, Π° Ρ€ΠΈΡΡƒΠ½ΠΎΠΊ ΠΏΠΎΠ΄ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π£ΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Stretch Π² true ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ смысл Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΡƒΠ·ΠΎΡ€ΠΎΠ², Π½ΠΎ Π½Π΅ Π΄Π»Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ. Бвойство Stretch Π½Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΠ΅Ρ‚ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ своих Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².

— center. УстановлСнноС Π² true, Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ Image, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° большС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° рисунка.

— transparent (ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ). Если Transparent Ρ€Π°Π²Π½ΠΎ true, Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Image становится ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для налоТСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°. Одно ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ этого свойства — Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ надписСй, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Π­Ρ‚ΠΈ надписи ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной Π² Delphi ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Image Editor. Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ свойство Transparent дСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

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

— ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ класса TSpinEdit (находится Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Samples) — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для Π²Π²ΠΎΠ΄Π° Ρ†Π΅Π»Ρ‹Ρ… чисСл. Π”Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, находящиСся Π² ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пошагового измСнСния значСния чисСл. Π’ ΡΡ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ допускаСтся Π²Π²ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†ΠΈΡ„Ρ€ ΠΈ Π·Π½Π°ΠΊΠΎΠ² «ΠΏΠ»ΡŽΡ» (+) ΠΈ «ΠΌΠΈΠ½ΡƒΡ» (-).

Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° SpinEdit:

— EditorEnabled. Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π²Π²ΠΎΠ΄ чисСл.

— Increment. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π·Π°Π΄Π°Ρ‚ΡŒ шаг измСнСния числа ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ увСличСния ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ это свойство ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1.

— MaxValue. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ максимально допустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа.

— MinValue. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ минимально допустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа.

— Value. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа.

— ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DrawGrid ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ графичСскиС изобраТСния. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ StringGrid, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ послСдний являСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ DrawGrid. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² DrawGrid ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ всС свойства, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, события ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° StringGrid, ΠΊΡ€ΠΎΠΌΠ΅ относящихся ΠΊ Ρ‚Сксту, Ρ‚. Π΅. ΠΊΡ€ΠΎΠΌΠ΅ свойств Cells, Cols, Rows, Objects.

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

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π±Ρ‹Π»Π° работоспособной, Π² Π½Π΅ΠΉ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ слСдуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события OnDrawCell, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ нСобходимости ΠΏΡ€ΠΎΡ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ ячСйку. Для прорисовки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ свойство Canvas.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ DrawGrid ΠΈΠΌΠ΅ΡŽΡ‚ ΠΊΠ°Π½Π²Ρƒ Canvas, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ изобраТСния. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ CellRect, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠ°Π½Π²Ρ‹, ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄ Π·Π°Π΄Π°Π½Π½ΡƒΡŽ ячСйку.

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°Π½Π²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° DrawGrid, ΠΊΠ°ΠΊ ΠΈ Π½Π° ΠΊΠ°Π½Π²Π΅ любого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ΠΎ ΡΡ‚ΠΈΡ€Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΎΠΊΠ½Π° прилоТСния Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ сворачивании прилоТСния.

— TTimer — находится Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅ System

Π­Ρ‚ΠΎΡ‚ Π½Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для увСдомлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ± ΠΈΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΎΠ² Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ инкапсулируСт систСмный Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Windows ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· посылку сообщСний WM_TIMER.

Бвойство:

— property Enabled: Boolean. Π’ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€, влияя Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠΌ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΉ. Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ установлСн Π² Enabled, Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ события OnTimer Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

— property Interval: Word. Π˜Π·ΠΌΠ΅Ρ€ΡΠ΅Ρ‚ΡΡ Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡƒΠ½Π΄Π°Ρ….

— property OnTimer: TNotifyEvent. ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ истСчСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° инициируСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, связанньш с ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ΠΌ, ΠΏΡ€ΠΈ этом программист ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΊΠ²Π°Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π΄Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ свободных Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ². Π’ ΡΡ‚ΠΎΠΌ случаС гСнСрируСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ситуация EOutOfResources.

— TRadioGroup — находится Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅ Standart

Готовая Π³Ρ€ΡƒΠΏΠΏΠ° Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ, содСрТащая всС срСдства для управлСния ΠΈΠΌΠΈ. КаТдая Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠ° Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ наслСдуСт всС свойства TRadioButton. Π Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ столбцов.

Бвойство:

— property Columns: Integer; - устанавливаСт число столбцов с Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. Оно Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 16. ИндСкс Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ опрСдСляСтся свойством:

— property Itemlndex: Integer. ИндСкс исчисляСтся ΠΎΡ‚ 0. Если ΠΎΠ½ Ρ€Π°Π²Π΅Π½ -1, Π½ΠΈ ΠΎΠ΄Π½Π° Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠ° Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ Π½Π΅ Π½Π°ΠΆΠ°Ρ‚Π°.

— property Items: TStrings. Набор строк с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ содСрТится Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅.

Доступ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚, Ρ‚. ΠΊ. сами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹-Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ содСрТатся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ скрытом спискС.

— TMainMenu — находится Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅ Standart

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ прСдставляСт Π³Π»Π°Π²Π½ΠΎΠ΅ мСню Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π½Π°ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° TMenu. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ слоТный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ объСдинСния мСню. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ: Если Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ имССтся нСсколько Ρ„ΠΎΡ€ΠΌ со ΡΠ²ΠΎΠΈΠΌΠΈ мСню, Ρ‚ΠΎ Π΄Π»Ρ упрощСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ цСлСсообразно ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΎΠ΄Π½ΠΎ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ мСню ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. ОбъСдинСниС мСню Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΈΠ½Ρ‚СрфСйсом MDI ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠΊΠ½Π°ΠΌΠΈ. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ объСдинСния мСню ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСрвСрами. OLE, запускаСмыми ΠΏΠΎ ΠΌΠ΅ΡΡ‚Ρƒ нахоТдСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° OLE. Π—Π°Π³Ρ€ΡƒΠΆΠ°ΡΡΡŒ, сСрвСр дописываСт осущСствляСмыС ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊ ΠΌΠ΅Π½ΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ прилоТСния. ОбъСдинСниС мСню происходит ΠΏΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π»Π΅ΠΆΠΈΡ‚ использованиС Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠ³ΠΎ индСкса (свойства GroupIndex) ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° TMenuItem. Π£ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню ΠΎΠ΄Π½ΠΎΠ³ΠΎ уровня, Π² Ρ‡Π°ΡΡ‚ности всСх подмСню Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню, свойство GroupIndex являСтся Π½Π΅ΡƒΠ±Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ, Ρ‚. Π΅. Ρƒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ индСкс большС Π»ΠΈΠ±ΠΎ Ρ€Π°Π²Π΅Π½ индСксу ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ отслСТиваСтся ΠΊΠ°ΠΊ Π½Π° ΡΡ‚Π°ΠΏΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΡΡ‚Π°ΠΏΠ΅ исполнСния. На ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠ΅Ρ€Π²Π΅Ρ€Π°ΠΌΠΈ OLE прСдусмотрСны Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности ΠΏΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡŽ мСню. Если Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TOLEContainer Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ OLE, Ρ‚ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ† подмСню Edit ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ добавляСтся подмСню, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ открытия ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ирования этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ПослС Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ сСрвСра ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ свои подмСню Π² Π³Π»Π°Π²Π½ΠΎΠ΅, Π½ΠΎ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΠΊ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ подмСню.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ мСню Delphi ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ мСню. Π’ Π½Π΅ΠΌ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… подмСню Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня: File, Edit ΠΈ Π΄Ρ€. МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ свои ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹.

— TEdit — находится Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅ Standart

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ собствСнного ΠΊΠΎΠ΄Π°, Π² Π½Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ свойства Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠ° TCustomEdit. Он ΠΏΡ€Π΅Π΄ΡΡ‚авляСт собой Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ строку.

Бвойства Edit:

— property AutoSize: Boolean. Если Ρ€Π°Π²Π½ΠΎ True, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ измСняСт свою высоту Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΡˆΡ€ΠΈΡ„Ρ‚Π° (свойство Font).

— property OEMConvert: Boolean. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ автоматичСского прСобразования Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… символов ΠΈΠ· ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ OEM Π² ANSI ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Π’Π°ΠΊΠΎΠ΅ свойство часто Π±Ρ‹Π²Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ тСкста Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ MS-DOS.

— property AutoSelect: Boolean. ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ фокуса. Если ΠΎΠ½ΠΎ установлСно Π² True (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ это Ρ‚Π°ΠΊ), Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ фокуса Π²Π²ΠΎΠ΄Π° вСсь тСкст Π² Π½Π΅ΠΌ выдСляСтся нСзависимо ΠΎΡ‚ ΡΠΎΡΡ‚ояния свойства SelText. Если AutoSelect установлСно Π² False, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ фокуса выдСляСтся лишь Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ Π΄ΠΎ Π΅Π³ΠΎ ΡƒΡ‚Π΅Ρ€ΠΈ.

— property HideSelection: Boolean. ПослС ΡƒΡ‚Π΅Ρ€ΠΈ фокуса Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² Π½Π΅ΠΌ тСкст ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ тСряСт Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠ΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ ΠΎΡΡ‚Π°Π²Π°Π»ΠΎΡΡŒ, установитС Π² False Π²Ρ‚ΠΎΡ€ΠΎΠ΅ свойство:

— property MaxLength: Integer. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ тСкста Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π² ΡΠΈΠΌΠ²ΠΎΠ»Π°Ρ…. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого свойства Ρ€Π°Π²Π½ΠΎ 0, Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° Π΄Π»ΠΈΠ½Ρƒ тСкста Π½Π΅Ρ‚.

3. РСализация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3.1 ЛогичСская структура

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ «Π˜Π³Ρ€Π° Π½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅» состоит ΠΈΠ· Ρ„ΠΎΡ€ΠΌΡ‹, ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, установок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, рСсурсов ΠΈ Ρ‚. Π΄. МногиС ΠΈΠ· ΡΡ‚ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² автоматичСски ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² Delphi Π²ΠΎ Π²Ρ€Π΅ΠΌΡ построСния прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ компиляторами.

АвтоматичСски созданныС Ρ„Π°ΠΉΠ»Ρ‹:

— Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ «Ρ„Π°ΠΉΠ» — ΠΏΡ€ΠΎΠ΅ΠΊΡ‚» (Memory.dpr) содСрТит Π±Π»ΠΎΠΊ — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ†Π΅Π»ΠΎΠΌ. Π’ Π½Π΅ΠΌ содСрТатся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ выполнСния. Π•Π³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ *.dpr;

— Ρ‚Ρ€ΠΈ «Ρ„Π°ΠΉΠ»ΠΎΠ² — Ρ„ΠΎΡ€ΠΌΡ‹» (MainUnit.dfm, Unit2. dfm, Unit3. dfm), Π΄Π°Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ основными ΠΎΠΊΠ½Π°ΠΌΠΈ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ;

— Ρ‚Ρ€ΠΈ «Ρ„Π°ΠΉΠ»ΠΎΠ² — ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ», с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ *.pas (MainUnit.pas, Unit2. pas, Unit3. pas), Π² Π½Π΅ΠΌ содСрТится тСкст модуля для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹;

— Ρ„Π°ΠΉΠ» ΠΎΠΏΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Memory.dof). Π’ Π½Π΅ΠΌ находятся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°;

— Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Memory.cfg). Π’ Π½Π΅ΠΌ хранится установка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ компилятора ΠΈ Ρ‚. Π΄;

— Ρ„Π°ΠΉΠ» рСсурсов (Memory.res) содСрТит, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСсурсы;

— Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ (MainUnit.~ddp, MainUnit.~dfm, MainUnit.~pas, Unit2.~ddp, Unit2. dfm, Unit2.~pas, Unit3.~ddp, Unit3. dfm, Unit3.~pas).

Π€Π°ΠΉΠ»Ρ‹, созданныС компилятором:

— Ρ„Π°ΠΉΠ» memory. exe, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» прилоТСния. Если для выполнСния Ρ„Π°ΠΉΠ»Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся никакая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Ρ‚ΠΎ ΡΡ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° достаточно для Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния;

— Ρ„Π°ΠΉΠ»Ρ‹ MainUnit. dcu, Unit2. dcu, Unit3. dcu — это ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ MainUnit. pas, Unit2. pas, Unit3.pas.

3.2 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ управлСния

Π’Π°ΠΊ ΠΊΠ°ΠΊ данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΈΠ³Ρ€Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для развития памяти Π΄Π΅Ρ‚Π΅ΠΉ, студСнтов, Ρ‚ΠΎ ΠΏΡ€ΠΎΡΡ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ слоТности. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ прСдусмотрСно 3 уровня слоТности: Easy, Standart ΠΈ Hard.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ ΠΈΡ… ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅:

— procedure LoadImages — ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ изобраТСния

var

i: integer;

begin

for i := 0 to 9 do

begin

Images[i] := TImage. Create (nil);

Images[i]. Picture. LoadFromFile (ImagePaths[i])

end

end;

— procedure RandomizeThePermutationArray — это ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, которая случайным способом разбрасываСт ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

4. ВСстированиС Π”Π°Π½Π½Ρ‹Π΅ испытания Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Ρ‹ с Ρ†Π΅Π»ΡŒΡŽ выявлСния ΠΈ ΡƒΡΡ‚ранСния ошибок.

Π’ Ρ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ³Ρ€Ρ‹ Π±Ρ‹Π»Π° выявлСна ошибка Π²Π²ΠΎΠ΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ со Π·Π½Π°ΠΊΠΎΠΌ (-) Π² SpinEdit. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΈΠ³Ρ€ΠΎΠΉ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ значСния с (-). Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² SpinEdit Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²minValue ΠΏΠΎΡΡ‚Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ со Π·Π½Π°ΠΊΠΎΠΌ (-).

ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ со Π·Π½Π°ΠΊΠΎΠΌ (-) стало Π½Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ΠΌ.

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ справки Π±Ρ‹Π»Π° Π·Π°ΠΌΠ΅Ρ‡Π΅Π½Π° странная ошибка, связанная с Π½Π΅Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ тСкстом написанным ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ. Однако, Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ, эта ошибка Π±Ρ‹Π»Π° исправлСна.

Π’ Ρ…ΠΎΠ΄Π΅ тСстирования Π±Ρ‹Π»ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с ΡƒΡΠΏΠ΅Ρ…ΠΎΠΌ Π±Ρ‹Π»ΠΈ исправлСны.

5. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅

5 1 НазначСниС ΠΈ ΡƒΡΠ»ΠΎΠ²ΠΈΡ примСнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° дСмонстрируСт возмоТности срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Delphi ΠΏΡ€ΠΈ создании графичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² Ρ‡Π°ΡΡ‚ности ΠΌΠΈΠ½ΠΈ-ΠΈΠ³Ρ€. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для развлСчСния.

5.2 Π˜Π½ΡΡ‚Π°Π»Π»ΡΡ†ΠΈΡ Π’ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ поставки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диск, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ записан инсталлятор ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для использования Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ установки с ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-диска (Ρ„Π°ΠΉΠ» «Setup.exe») ΠΈ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Ссли установка ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ ΠΏΡ€Π°Π² администратора.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСния с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π΅ΠΈΠ½ΡΡ‚Π°Π»Π»ΡΡ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСмСнта «Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ» ΠΏΠ°Π½Π΅Π»ΠΈ управлСния.

5.3 Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

Для запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ ΡΡ€Π»Ρ‹ΠΊΡƒ «Memory» Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ярлык ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚Π° мСню «ΠŸΡƒΡΠΊ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» создан Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ установки.

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

Π’ Ρ…ΠΎΠ΄Π΅ создания курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΈΠ³Ρ€Π° Π² ΡΡ€Π΅Π΄Π΅ программирования Delphi. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ, поставлСнныС ΠΏΠ΅Ρ€Π΅Π΄ созданиСм Π΄Π°Π½Π½ΠΎΠ³ΠΎ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹.

Данная ΠΈΠ³Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΎΠ±Ρ‰Π΅Π³ΠΎ пользования, для провСдСния досуга Π΄Π΅Ρ‚Π΅ΠΉ, школьников, студСнтов.

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ для студСнтов ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π² Delphi.

1. ΠŸΡ€ΠΈΡ‰Π΅ΠΏΠΎΠ² М. А. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ°Ρ… Basic, Pascal ΠΈ Object Pascal Π² ΡΡ€Π΅Π΄Π΅ Delphi / М. А. ΠŸΡ€ΠΈΡ‰Π΅ΠΏΠΎΠ², Π•. Π’. Π‘Π΅Π²Π΅Ρ€Π½Ρ‘Π²Π°, А. И. Π¨Π°ΠΊΠΈΡ€ΠΈΠ½ — Минск: «Π’СтраБистСмс», 2006. — 313 с.

2. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Delphi [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. -2009. — Π Π΅ΠΆΠΈΠΌ доступа: http://www.cyberguru.ru/programming/delphi/delphi-components-part1.html

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

MainUnit:

unit MainUnit;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, ExtCtrls, Menus, StdCtrls;

type

TfrmMain = class (TForm)

DrawGrid: TDrawGrid;

MainMenu1: TMainMenu;

itemNewGame: TMenuItem;

Timer1: TTimer;

Edit1: TEdit;

N1: TMenuItem;

Newgame1: TMenuItem;

Restart1: TMenuItem;

Exit1: TMenuItem;

procedure FormCreate (Sender: TObject);

procedure itemNewGameClick (Sender: TObject);

procedure DrawGridDrawCell (Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

procedure DrawGridSelectCell (Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

procedure Timer1Timer (Sender: TObject);

procedure Exit1Click (Sender: TObject);

end;

type

TCellMode = (ALREADY_MATCHED, CELL_VISIBLE, CELL_INVISIBLE);

const

MAX_IMAGES = 10;

var

frmMain: TfrmMain;

tick:integer;

Images: array [0.MAX_IMAGES-1] of TImage;

RandomPermutationArray: array [0.19] of integer;

PartnerOf: array [0.19] of integer;

ImageOfCell: array [0.19] of integer;

ModeOfCell: array [0.19] of TCellMode;

FirstCell, SecondCell: integer;

NumberOfVisibleCells, n: integer;

ImagePaths: array [0.MAX_IMAGES-1] of string

= ('img0.bmp', 'img1.bmp', 'img2.bmp', 'img3.bmp', 'img4.bmp', 'img5.bmp',

'img6.bmp', 'img7.bmp', 'img8.bmp', 'img9.bmp');

implementation

{$R *.dfm}

procedure RedrawCell (index: integer);

var

Col, Row: integer;

begin

Row := index div 5;

Col := index mod 5;

frmMain.DrawGridDrawCell (frmMain, Col, Row, frmMain.DrawGrid.CellRect (Col, Row), [])

end;

procedure LoadImages;

var

i: integer;

begin

for i := 0 to MAX_IMAGES-1 do

begin

Images[i] := TImage. Create (nil);

Images[i]. Picture. LoadFromFile (ImagePaths[i])

end

end;

procedure TfrmMain. FormCreate (Sender: TObject);

var

i: integer;

begin

LoadImages;

for i := 0 to 19 do

RandomPermutationArray[i] := i;

Randomize;

itemNewGame.Click

end;

function LinearIndexOf (Row, Column: integer): integer;

begin

Result := 5 * Row + Column

end;

procedure RandomizeThePermutationArray;

var

i, RandomPosition, Temp: integer;

begin

for i := 0 to 18 do

begin

RandomPosition := i + Random (19 — i) + 1;

Temp := RandomPermutationArray[i];

RandomPermutationArray[i] := RandomPermutationArray[RandomPosition];

RandomPermutationArray[RandomPosition] := Temp

end;

end;

procedure AssignPartnerships;

var

i: integer;

begin

for i := 0 to 19 do

if i mod 2 = 0 then

PartnerOf[RandomPermutationArray[i]] := RandomPermutationArray[i + 1]

else

PartnerOf[RandomPermutationArray[i]] := RandomPermutationArray[i — 1]

end;

procedure AssignImagesToCells;

var

i: integer;

begin

for i := 0 to 19 do

ImageOfCell[RandomPermutationArray[i]] := i div 2

end;

procedure InitializeCellModes;

var

i: integer;

begin

for i := 0 to 19 do

ModeOfCell[i] := CELL_INVISIBLE

end;

procedure TfrmMain. itemNewGameClick (Sender: TObject);

var

i: integer;

begin

timer1.Enabled:=true;

tick:=30;

RandomizeThePermutationArray;

AssignPartnerships;

AssignImagesToCells;

InitializeCellModes;

NumberOfVisibleCells := 0;

for i := 0 to 19 do

RedrawCell (i);

end;

procedure TfrmMain. DrawGridDrawCell (Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

var

index: integer;

begin

index := LinearIndexOf (ARow, ACol);

if ModeOfCell[index] = CELL_INVISIBLE then

begin

DrawGrid.Canvas.Brush.Color := clBlack;

DrawGrid.Canvas.FillRect (Rect)

end

else if ModeOfCell[index] = ALREADY_MATCHED then

begin

DrawGrid.Canvas.Brush.Color := clWhite;

DrawGrid.Canvas.FillRect (Rect)

end

else begin

DrawGrid.Canvas.StretchDraw (Rect, Images[ImageOfCell[index]]. Picture. Graphic);

end

end;

procedure TfrmMain. DrawGridSelectCell (Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);

var

index: integer;

begin

index := LinearIndexOf (ARow, ACol);

if ModeOfCell[index] = ALREADY_MATCHED then

exit;

if NumberOfVisibleCells = 0 then

begin

FirstCell := index;

ModeOfCell[FirstCell] := CELL_VISIBLE;

RedrawCell (FirstCell);

inc (NumberOfVisibleCells)

end

else if (NumberOfVisibleCells = 1) and (FirstCell <> index) then

begin

SecondCell := index;

ModeOfCell[SecondCell] := CELL_VISIBLE;

RedrawCell (SecondCell);

if PartnerOf[SecondCell] = FirstCell then

begin

Sleep (100);

ModeOfCell[FirstCell] := ALREADY_MATCHED;

RedrawCell (FirstCell);

ModeOfCell[SecondCell] := ALREADY_MATCHED;

RedrawCell (SecondCell);

NumberOfVisibleCells := 0

end

else

inc (NumberOfVisibleCells)

end

else begin

if (FirstCell <> index) and (SecondCell <> index) then

begin

ModeOfCell[index] := CELL_VISIBLE;

RedrawCell (index);

end;

if FirstCell <> index then

begin

ModeOfCell[FirstCell] := CELL_INVISIBLE;

RedrawCell (FirstCell);

end;

if SecondCell <> index then

begin

ModeOfCell[SecondCell] := CELL_INVISIBLE;

RedrawCell (SecondCell);

end;

FirstCell := index;

NumberOfVisibleCells := 1

end

end;

procedure TfrmMain. Timer1Timer (Sender: TObject);

var

i: integer;

begin

n := 0;

tick:=tick-1;

edit1.text:=inttostr (tick);

if edit1. text='0' then

begin

timer1.Enabled:=false;

Showmessage ('GAME OVER');

end;

for i := 0 to 19 do

begin

if ModeOfCell[i] = ALREADY_MATCHED then

n := n + 1;

end;

if n = 20 then

begin

timer1.Enabled:=false;

Showmessage ('You Win');

end;

end;

procedure TfrmMain. Exit1Click (Sender: TObject);

begin

close;

end;

end.

Unit2:

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, MainUnit, Spin;

type

TForm2 = class (TForm)

RadioGroup1: TRadioGroup;

SpinEdit1: TSpinEdit;

Button1: TButton;

procedure RadioGroup1Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure SpinEdit1KeyPress (Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

i: integer;

implementation

{$R *.dfm}

procedure TForm2. RadioGroup1Click (Sender: TObject);

begin

{case RadioGroup1. ItemIndex of

0:

tick := 60;

1:

tick := 45;

2:

tick := 30;

3:

if SpinEdit1. Value <> 0 then

tick := SpinEdit1. Value;

end;

Form2.Hide;

Application.ProcessMessages;

frmMain.Timer1.Enabled := true;

frmMain.RandomizeThePermutationArray;

frmMain.AssignPartnerships;

frmMain.AssignImagesToCells;

frmMain.InitializeCellModes;

NumberOfVisibleCells := 0;

for i := 0 to 19 do

frmMain.RedrawCell (i);}

end;

procedure TForm2. Button1Click (Sender: TObject);

begin

case RadioGroup1. ItemIndex of

0:

tick := 60;

1:

tick := 45;

2:

tick := 30;

3:

if SpinEdit1. Value <> 0 then

tick := SpinEdit1. Value;

end;

Form2.Hide;

Application.ProcessMessages;

frmMain.Timer1.Enabled := true;

frmMain.RandomizeThePermutationArray;

frmMain.AssignPartnerships;

frmMain.AssignImagesToCells;

frmMain.InitializeCellModes;

NumberOfVisibleCells := 0;

for i := 0 to 19 do

frmMain.RedrawCell (i);

end;

procedure TForm2. SpinEdit1KeyPress (Sender: TObject; var Key: Char);

begin

if (key = '-') then

Key := #0;

end;

end.

Unit3:

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, XPMan;

type

TForm3 = class (TForm)

Button1: TButton;

Image1: TImage;

XPManifest1: TXPManifest;

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3. Button1Click (Sender: TObject);

begin

form3.Close;

end;

end.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ