ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π˜Π³Ρ€ΠΎΠ²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

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

Π‘Ρ€Π΅Π΄Π° Delphi Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов для скоростной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (RAD — rapid application development), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. VCL — Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ стандартныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ построСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, графичСскиС… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π˜Π³Ρ€ΠΎΠ²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования Российской Π€Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ»Π»Π΅Π΄ΠΆ β„–

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ:__________________

__________________________________

__________________________________

ΠšΠ£Π Π‘ΠžΠ’ΠžΠ™ ΠŸΠ ΠžΠ•ΠšΠ’

Дисциплина __ВСхнология Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²_

Π’Π΅ΠΌΠ° _____Π˜Π³Ρ€ΠΎΠ²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π³ΠΎΠ½ΠΊΠΈ"______

________________________________________________

(КР. 2203. 04. 35. ΠŸΠ—)

Π ΠΠ‘Π§Π•Π’ΠΠž-ΠŸΠžΠ―Π‘ΠΠ˜Π’Π•Π›Π¬ΠΠΠ― Π—ΠΠŸΠ˜Π‘ΠšΠ

Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ _______ ________________ _____________________

Π”Π°Ρ‚Π° Личная подпись Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° подписи

НормоконтролСр ______ ____________ _____________________

Π—Π°Π². ΠΊΠ°Ρ„Π΅Π΄Ρ€ΠΎΠΉ ______ ____________ _____________________

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» студСнт Π³Ρ€ΡƒΠΏΠΏΡ‹ ____________________________________

ΠžΡ†Π΅Π½ΠΊΠ° ____________________________________________________

НовокузнСцк, 2005

Π’Π’Π•Π”Π•ΠΠ˜Π•

3

1. ΠžΠ‘Π©ΠΠ― ЧАБВЬ 4

1.1 Π―Π—Π«Πš ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ˜Π ΠžΠ’ΠΠΠ˜Π― DELPHI 4

1.2 Delphi. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ характСристики ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° 4

1.3 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ 6

1.4 ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ модСль ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠžΠ’ 6

1.5 ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ срСдства для построСния Π±Π°Π· Π΄Π°Π½Π½Π«Ρ… 8

1.6 НСкоторыС особСнности Delphi 8

1.7 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² 9

1.8 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ 9

1.9 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OLE 2.0, DDE ΠΈ VBX 10

2. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ 10

2.1 ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ 10

2.2 ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ тСхничСскиС трСбования ΠΈ ΠžΠ‘ 10

2.3 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΏ 11

2.4 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для событий Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… 12

3. Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° 12

3.1 ΠšΡ€Π°Ρ‚ΠΊΠΎ описания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ 12

3.2 РСализация основных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π² ΡΡ€Π΅Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ 12

4. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ 13

4.1 Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ ΠΏΠΏ 13

5. ВСстированиС 15

5.1 тСстированиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΏ 15

5.2 тСстированиС надёТности 15

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 16

КП. 2203. 04. 35. ΠŸΠ—

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп

Π”Π°Ρ‚Π°

Π Π°Π·Ρ€Π°Π±.

Π˜Π³Ρ€ΠΎΠ²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° «ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π³ΠΎΠ½ΠΊΠΈ»

Π›ΠΈΡ‚

Лист

Листов

ΠŸΡ€ΠΎΠ².

Н. ΠΊΠΎΠ½Ρ‚Ρ€

Π£Ρ‚Π².

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π°Ρ€ΠΊΠ°Π½Π½Ρ‹ΠΉ симулятор Π³ΠΎΠ½ΠΎΠΊ. ДСйствиС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ разворачиваСтся Π½Π° Π΄ΠΎΡ€ΠΎΠ³Π΅.

ЦСль ΠΈΠ³Ρ€Ρ‹ ΠΏΡ€ΠΎΠ΅Ρ…Π°Ρ‚ΡŒ расстояниС 20 ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π’ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΈΠ³Ρ€Ρ‹ Π½Π° Π΄ΠΎΡ€ΠΎΠ³Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ:

1. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ (ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠΈ) ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ, ΠΏΡ€ΠΈ столкновСнии ΠΎΡ‚Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ Ρƒ Π²Π°Ρ 1 Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π°;

2. Π—Π½Π°Ρ‡ΠΎΠΊ Π² Π²ΠΈΠ΄Π΅ Π±ΠΎΡ‡ΠΊΠΈ (Ρ‚ΠΎΠΏΠ»ΠΈΠ²ΠΎ), Π²ΠΎΡΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΏΡ€ΠΈ столкновСнии ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π΅Π·Π΄Π΅;

3. Нитро, элСмСнт ускорСния ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ.

Π˜Π³Ρ€Π° Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»Π°ΡΡŒ Π² ΡΡ€Π΅Π΄Π΅ Delphi 5 с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenGL вСрсия 1.3.4582 ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰Π΅ΠΉ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ графичСского Π΄Π²ΠΈΠΆΠΊΠ°, Pixia вСрсия 2.4g для создания ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ирования тСкстур, Image Editor вСрсия 3.0 для создания ΠΈΠΊΠΎΠ½ΠΎΠΊ, 3D-Stydio Max вСрсия 5.0 для создания ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машин (ΠΈΠ³Ρ€ΠΎΠΊΠ°).

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°.

1. ΠžΠ±Ρ‰Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ

1.1 Π―Π·Ρ‹ΠΊ программирования Delphi.

Delphi — это грСчСский Π³ΠΎΡ€ΠΎΠ΄, Π³Π΄Π΅ ΠΆΠΈΠ» Π΄Π΅Π»ΡŒΡ„ΠΈΠΉΡΠΊΠΈΠΉ ΠΎΡ€Π°ΠΊΡƒΠ». И ΡΡ‚ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π±Ρ‹Π» Π½Π°Π·Π²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ с Ρ„Π΅Π½ΠΎΠΌΠ΅Π½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ характСристиками.

HΠ°Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° обстановка Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Borland ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Π»Π°ΡΡŒ Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΌ для Π½Π΅Π΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠŸΠΎΠ³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Π»ΠΈ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, курс Π°ΠΊΡ†ΠΈΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π΅ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎ катился Π²Π½ΠΈΠ·. БСйчас ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· всяких сомнСний ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ трудностСй ΠΏΠΎΠ·Π°Π΄ΠΈ. HΠ΅Π²Π΅Ρ€Π½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Delphi явился ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ восстановлСния ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΠΌΠ΅Π½Π½ΠΎ Delphi стал Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ стало ясно, Ρ‡Ρ‚ΠΎ Ρƒ Borland Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ ΡƒΠΉΠ΄Π΅Ρ‚ с Ρ€Π°Π½ΠΊΠ°, ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ СдинствСнный ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ΄Π°Ρ‡Π½ΠΎ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

1.2 Delphi. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ характСристики ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°

Delphi — это комбинация Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ:

Β· Π’Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ компилятор Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

Β· ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная модСль ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚

Β· Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ (Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚Π½ΠΎΠ΅) построСниС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ²

Β· ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ срСдства для построСния Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

1.3 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€, встроСнный Π² Delphi, обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для построСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ «ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр». Π­Ρ‚ΠΎΡ‚ компилятор Π² Π½Π°ΡΡ‚оящСС врСмя являСтся самым быстрым Π² ΠΌΠΈΡ€Π΅, Π΅Π³ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ компиляции составляСт ΡΠ²Ρ‹ΡˆΠ΅ 120 тысяч строк Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ 486DX33. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΅ врСмя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ для языков Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ³ΠΎ поколСния (4GL) ΠΈ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя обСспСчиваСт качСство ΠΊΠΎΠ΄Π°, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ для компилятора 3GL. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Delphi обСспСчиваСт Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±Π΅Π· нСобходимости ΠΏΠΈΡΠ°Ρ‚ΡŒ вставки Π½Π° Π‘ΠΈ ΠΈΠ»ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ написания ΠΊΠΎΠ΄Π° (хотя это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ).

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ построСния прилоТСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈΠ· ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠ°ΠΊ Ρ…ΡƒΠ΄ΠΎΠΆΠ½ΠΈΠΊ, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΠΉ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΌΠ°Π·ΠΊΠΈ ΠΊΠΈΡΡ‚ΡŒΡŽ. Π•Ρ‰Π΅ Π΄ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΠΈ ΠΎΠ½ Π²ΠΈΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ — послС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π² Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π’ ΡΡ‚ΠΎΠΌ смыслС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Delphi ΠΌΠ°Π»ΠΎ Ρ‡Π΅ΠΌ отличаСтся ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ирования Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ срСдС, ΠΎΠ΄Π½Π°ΠΊΠΎ послС выполнСния компиляции ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ исполняСтся Π² 10−20 Ρ€Π°Π· быстрСС, Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΠΆΠ΅ самоС, сдСланноС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, компилятор компилятору Ρ€ΠΎΠ·Π½ΡŒ, Π² Delphi компиляция производится нСпосрСдствСнно Π² Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π² Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΊΠ°ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ компиляторы, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ p-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ интСрпрСтируСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ p-машиной. Π­Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° Ρ„актичСском быстродСйствии Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ прилоТСния.

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

1.4 ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная модСль ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠžΠ’

Основной ΡƒΠΏΠΎΡ€ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Delphi дСлаСтся Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ прилоТСния вСсьма быстро ΠΈΠ· Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π΅Ρ‚ ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои собствСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ для срСды Delphi. Никаких ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, всС Π² Delphi написано Π½Π° Π½Π΅ΠΌ ΠΆΠ΅, поэтому Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались для создания срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, поставляСмыми Borland ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌΠΈ Ρ„ΠΈΡ€ΠΌΠ°ΠΌΠΈ, ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ.

Π’ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ поставку Delphi входят основныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΡƒΠ΄Π°Ρ‡Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π½Π½ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ ΠΈΠ· 270 Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов. Для Π½Π°Ρ‡Π°Π»Π° — Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ. Но Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ спСцифичСской ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π° Delphi, совСтуСм, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ «Ρ Π½ΡƒΠ»Ρ», ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список свободно распространяСмых ΠΈΠ»ΠΈ коммСрчСских ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌΠΈ Ρ„ΠΈΡ€ΠΌΠ°ΠΌΠΈ, количСство этих Ρ„ΠΈΡ€ΠΌ Π² Π½Π°ΡΡ‚оящСС врСмя ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ число 250, хотя, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, я Π½Π΅ ΠΎΠ±ΠΎ всСх знаю. Π‘ΠΊΠ΅ΠΏΡ‚ΠΈΠΊΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ ΠΏΠΎΠ²Π΅Ρ€ΡΡ‚ ΠΌΠ½Π΅, ΠΊΠΎΠ³Π΄Π° я ΡΠΊΠ°ΠΆΡƒ, Ρ‡Ρ‚ΠΎ Π½Π° Delphi ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ прилоТСния ΠΊ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, это Ρ‚Π°ΠΊ. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ это ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ Π² ΡΡ€Π΅Π΄Π΅ Windows Π±Ρ‹Π»ΠΎ достаточно слоТно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. Бобытийная модСль Π² Windows всСгда Π±Ρ‹Π»Π° слоТна для понимания ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Но ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° интСрфСйса Π² Delphi являСтся самой простой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ для программиста.

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

Π‘Ρ€Π΅Π΄Π° Delphi Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов для скоростной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (RAD — rapid application development), ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. VCL — Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ стандартныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ построСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, графичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ управлСния Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ DDE ΠΈ OLE. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ½Ρƒ Delphi, это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, поставляСмых Borland, ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠ΅. Однако, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΈΡ€ΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ свободно распространяСмыС программистами freeware-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΡƒΠΆΠ΅ восполнили этот нСдостаток. ΠŸΠΎΡΡ‚ΠΎΠΉΡ‚Π΅, — скаТСтС Π²Ρ‹, вСдь это ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ. Π”Π°, это Π±Ρ‹Π»ΠΎ Π² Visual Basic.

Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ стандарт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ назывался VBX. И ΡΡ‚ΠΎΡ‚ стандарт Ρ‚Π°ΠΊ ΠΆΠ΅ поддСрТиваСтся Π² Delphi. Однако, Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² Delphi ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ большСй Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ. Вспомним, Π² Ρ‡Π΅ΠΌ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² VB. ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ программист ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π», Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, Π² ΡΡ€Π΅Π΄Π΅ языка бэйсик. А ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π΅ VBX Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ Π΅ΠΌΡƒ Π΅Π³ΠΎ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ-профСссионалы Π½Π° Π‘++.

VBX’Ρ‹ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΈ, «ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ», ΠΈ Π½ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, Π½ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π±Ρ‹Π»ΠΎ нСльзя.

А Π΄Π»Ρ изготовлСния VBX Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ «ΠΊΡƒΡ…Π½ΡŽ» языка C++. Π’ Delphi Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌ ПаскалС, Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ПаскалС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ алгоритмичСская Ρ‡Π°ΡΡ‚ΡŒ прилоТСния. И Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Delphi ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ для надстройки ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΡ.

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

1.5 ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ срСдства для построСния Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π‘Π” Π² Delphi основаны Π½Π° SQL ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΌΠΎΡ‰ΡŒ Borland Database Engine. Π’ ΡΠΎΡΡ‚Π°Π² Delphi Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Borland SQL Link, поэтому доступ ΠΊ Π‘Π£Π‘Π” Oracle, Sybase, Informix ΠΈ InterBase происходит с Π²Ρ‹ΡΠΎΠΊΠΎΠΉ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Delphi Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр Interbase для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Π΅ Π½Π° Π»ΡŽΠ±Ρ‹Π΅ внСшниС SQL-сСрвСра прилоТСния Π² ΠΎΡ„Π»Π°ΠΉΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² ΡΡ€Π΅Π΄Π΅ Delphi, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму для локальной ΠΌΠ°ΡˆΠΈΠ½Ρ‹ (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ систСму ΡƒΡ‡Π΅Ρ‚Π° мСдицинских ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡Π΅ΠΊ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°), ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° .dbf (ΠΊΠ°ΠΊ Π² dBase ΠΈΠ»ΠΈ Clipper) ΠΈΠ»ΠΈ .db (Paradox). Если ΠΆΠ΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ InterBase for Windows 4.0 (это Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ SQL-сСрвСр, входящий Π² ΠΏΠΎΡΡ‚Π°Π²ΠΊΡƒ), Ρ‚ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎ всяких ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π² ΡΠΎΡΡ‚Π°Π²Π΅ большой систСмы с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр.

1.6 НСкоторыС особСнности Delphi

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр InterBase — слСдуСт Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот инструмСнт ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ½ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт ΠΈΠ· ΡΠ΅Π±Ρ сокращСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° SQL-запросов InterBase, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ возмоТности настоящСго сСрвСра InterBase. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ этих возмоТностСй с Π»ΠΈΡ…Π²ΠΎΠΉ компСнсируСтся прСимущСством Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Team Development Support — срСдство ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Π³Ρ€ΡƒΠΏΠΏΠ΅. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ сущСствСнно ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΎ сдСлано Π² Π²ΠΈΠ΄Π΅ возмоТности ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΊΠ°ΠΊ Intersolve PVCS 5.1 нСпосрСдствСнно ΠΊ ΡΡ€Π΅Π΄Π΅ Delphi.

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

1.7 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ стандартныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ построСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, графичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ управлСния Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ DDE ΠΈ OLE.

1.8 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Delphi ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ структурный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык (Object Pascal), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сочСтаСт с ΠΎΠ΄Π½ΠΎΠΉ стороны Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠΎΡ‰ΡŒ ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Ρƒ программирования, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΡƒΡŽ для языков 4GL, Π° Ρ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ языка 3GL. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ прилоТСния, ΠΈ ΠΈΠΌ Π½Π΅ придСтся для этого ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ особСнности программирования событий Π² Windows. Delphi ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ, наслСдованиС, ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ событиями.

1.9 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OLE 2.0, DDE ΠΈ VBX

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ваТная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² ΡΡ€Π΅Π΄Π΅ Windows, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Windows-прилоТСния программист ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Delphi.

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

2. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ

2.1 ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ПП

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ срСдствами графичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenGL. Π’ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния происходит Ρ‚Ρ€ΠΈ этапа:

1. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° тСкстуры (ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ) ΠΈΠ· Ρ„Π°ΠΉΠ»Π°;

2. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° изобраТСния, пСрСстановка Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ OpenGL);

3. Π’Ρ‹Π²ΠΎΠ΄ созданной тСкстуры Π½Π° ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½ ΠΈ ΠΏΡ€ΠΎΡ€ΠΈΡΠΎΠ²ΠΊΠ° Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Π’Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π±ΡƒΠ΄ΡƒΡ‚ дСйствия ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ (ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ автомобиля).

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ автомобиля вслСдствиС ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡˆΠΈΡ…ΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, скорости столкновСниС ΠΈ Ρ€Π°Π·Π³ΠΎΠ½.

2.2 ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ тСхничСскиС трСбования ΠΈ ΠžΠ‘

Β· ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Intel ® Pentium ® III 900 MHz ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅;

Β· ΠžΠ—Π£ 32MB SDRAM ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅;

Β· Π’ΠΈΠ΄Π΅ΠΎ ΠΊΠ°Ρ€Ρ‚Π° с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ OpenGL v. 1.3.4582 Ρ‚. Π΅. ΠŸΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ Π΄Π°ΠΆΠ΅ встроСнная, Π½ΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ;

Β· Звуковая ΠΊΠ°Ρ€Ρ‚Π° AC' 97 ΠΈΠ»ΠΈ Π»ΡƒΡ‡ΡˆΠ΅;

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

2.3 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΏ

Главная Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π²Ρ‹Π²ΠΎΠ΄Π° графичСских дСйствий. Π’ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния появляСтся ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ дСйствия. Данная Ρ„ΠΎΡ€ΠΌΠ° называСтся SpeedGL ΠΈ Π½Π° Π½Π΅ΠΉ находится Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

1. MediaPlayer;

2. ActionList.

MediaPlayer

Π‘Π»ΡƒΠΆΠΈΡ‚ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π·Π²ΡƒΠΊΠΎΠ² (ΠΌΡƒΠ·Ρ‹ΠΊΠΈ) Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° *.mp3, *.wav ΠΈ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ проигрывания Π΅Π΅.

ActionList

Π‘Π»ΡƒΠΆΠΈΡ‚ для выполнСния ΠΊΠΎΠ΄Π° Π½Π° Ρ‚Ρƒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρƒ Π½Π΅Π³ΠΎ прописанно дСйствиС. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: дСйствиС Π½Π° ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠ΅ клавиш Alt+F4.

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

2.4 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для событий Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…

Π‘Π°ΠΌΡ‹ΠΉ Π³Π»Π°Π²Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ происходит Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π° ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΈ OnPaint;

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ OnPaint происходит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 0,010 сСк. Оно вызываСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Ρ mmsystem. Если ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ событиС OnPaint Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…одят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

Β· ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ условия нахоТдСния Π² ΠΌΠ΅Π½ΡŽ;

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° состоит Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

Ссли пСрСмСнная Selected_Menu_item='Start' Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° ΠΈΠ³Ρ€Π° начнСтся ΠΈ Π°Π²Ρ‚оматичСски Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π½ΡƒΠΆΠ½Ρ‹Π΅ тСкстуры ΠΈ Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΏΡ€ΠΎΡ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях Ссли:

Selected_Menu_item='';

Selected_Menu_item='Car';

Selected_Menu_item='Actors';

Selected_Menu_item='Exit', Ρ‚ΠΎ ΡΡ‚ΠΎ всС относится ΠΊ ΠΌΠ΅Π½ΡŽ ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ манипуляциям с Ρ‚Скстурами.

3. Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

3.1 ΠšΡ€Π°Ρ‚ΠΊΠΎ описания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° вСлась Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСдС Delphi 5 Ρ‚. ΠΊ. это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ соврСмСнная ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ совмСстимая с Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌΠΈ вСрсиями Delphi. Начиная с ΡΡ‚ΠΎΠΉ вСрсии Delphi ΠΈ Π²Ρ‹ΡˆΠ΅ вСлась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL.

3.2 РСализация основных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π² ΡΡ€Π΅Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

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

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

ПослС выполнСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° автоматичСски вызываСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° пСрСрисовки ΠΎΠΊΠ½Π° OnPaint. Π’ ΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΡ€ΠΈΡΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ тСкстуры. Π’Π°ΠΊ происходит взаимодСйствиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ событиС Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° происходит достаточно часто ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 100 Ρ€Π°Π· Π² ΡΠ΅ΠΊΡƒΠ½Π΄Ρƒ Ρ‚ΠΎ ΠΏΡ€ΠΎΡ€ΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° ΠΈ Ρ€Π΅Π°ΠΊΡ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ достаточно высока. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ здСсь Π½Π΅ ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΈΠ³Ρ€Π°Π΅Ρ‚ процСссор Ρ‚. ΠΊ. Ρ‡Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ Π΅Π³ΠΎ частота Ρ‚Π΅ΠΌ Ρ‡Π°Ρ‰Π΅ ΠΈ Π±Ρ‹ΡΡ‚Ρ€Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ событиС Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°.

4. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

4.1 Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ ΠΏΠΏ

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΌΠΎΡ‘ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎ ΠΈΠ³Ρ€Ρƒ Ρ‚ΠΎ Ρ ΠΎΠΏΠΈΡˆΡƒ основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ клавиши управлСния.

Клавиши Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² ΠΌΠ΅Π½ΡŽ:

Β· «Π‘Ρ‚Ρ€Π΅Π»ΠΊΠ° Π²Π²Π΅Ρ€Ρ…» ΠΈ «Π‘Ρ‚Ρ€Π΅Π»ΠΊΠ° Π²Π½ΠΈΠ·» ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ курсора выдСлСния Π²Π²Π΅Ρ€Ρ… ΠΈ Π²Π½ΠΈΠ·;

Β· «Esc» Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΈΠ³Ρ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСню;

Β· «Π‘Ρ‚Ρ€Π΅Π»ΠΊΠ° Π²ΠΏΡ€Π°Π²ΠΎ» ΠΈ «Π‘Ρ‚Ρ€Π΅Π»ΠΊΠ° Π²Π»Π΅Π²ΠΎ» Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Ссли Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ Π² ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡŽ Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠ°ΡˆΠΈΠ½Ρ‹; ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ «Esc» выбираСтся Ρ‚Π° ΠΌΠ°ΡˆΠΈΠ½Π° которая Π±Ρ‹Π»Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Π°;

Β· «Enter» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡŽ ΠΈ Π½Π°Ρ‡Π°Π»Π° ΠΈΠ³Ρ€Ρ‹;

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

Клавиши Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² ΠΈΠ³Ρ€Π΅:

Β· «Π‘Ρ‚Ρ€Π΅Π»ΠΊΠ° Π²Π²Π΅Ρ€Ρ…» ΠΈ «Π‘Ρ‚Ρ€Π΅Π»ΠΊΠ° Π²Π½ΠΈΠ·» Ρ€Π°Π·Π³ΠΎΠ½ ΠΈ Ρ‚ΠΎΡ€ΠΌΠΎΠΆΠ΅Π½ΠΈΠ΅ автомобиля;

Β· «Π‘Ρ‚Ρ€Π΅Π»ΠΊΠ° Π²Π»Π΅Π²ΠΎ» ΠΈ «Π‘Ρ‚Ρ€Π΅Π»ΠΊΠ° Π²ΠΏΡ€Π°Π²ΠΎ» ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π½Π°Π»Π΅Π²ΠΎ ΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π½Π°ΠΏΡ€Π°Π²ΠΎ;

Β· «N» (Π°Π½Π³Π».) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ускорСния;

Β· «P» ΠΈΠ»ΠΈ «Pause» ΠΏΠ°ΡƒΠ·Π° Π² ΠΈΠ³Ρ€Π΅, ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠ°ΡƒΠ·Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ;

Β· «Esc» Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСню;

Клавиши Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈ Π² ΠΌΠ΅Π½ΡŽ ΠΈ Π² ΠΈΠ³Ρ€Π΅:

Β· «K» (Π°Π½Π³Π».) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ нахоТдСния курсора ΠΌΡ‹ΡˆΠΈ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выводится Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ„ΠΎΡ€ΠΌΡ‹;

Β· «F» (Π°Π½Π³Π».) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния количСства ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² ΡΠ΅ΠΊΡƒΠ½Π΄Ρƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выводится Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ„ΠΎΡ€ΠΌΡ‹;

Β· «A» (Π°Π½Π³Π».) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ OpenGL, Ссли поддСрТиваСтся Ρ‚ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ написано вСрсия OpenGL ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠ°Ρ€Ρ‚Π° Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ осущСствляСтся Π²Ρ‹Π²ΠΎΠ΄;

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

5. тСстированиС

5.1 тСстированиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΏ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ нСбольшой сбой Π±Π°Π» Π±Ρ‹ сразу Π·Π°ΠΌΠ΅Ρ‡Π΅Π½ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

5.2 тСстированиС надСТности

Ѐункция ΠΏΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΡŽ клавиш ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Π° Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° Ρ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΠΈ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ΄ выполнСния, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

КП. 2203. 04. 35. ΠŸΠ—

Лист

Изм

Лист

β„– Π΄ΠΎΠΊΡƒΠΌ

Подп.

Π”Π°Ρ‚Π°

ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°:

procedure FNTimeCallBack (uTimerID, uMessage: UINT;dwUser, dw1, dw2: DWORD) stdcall;

var

word:DWORD;

begin

Inc (CountTickTimer);

if (((PressedKey[19]=true)or

(PressedKey[80]=true))and (CountTickTimer>100))and (CountFuel>0) then

if (not Pause) then begin

Pause:=true;

CountTickTimer:=0;

end

else

begin

Pause:=false;

CountTickTimer:=0;

end;

if not Pause then begin

if Selected_Menu_item='Start' then //НаТата клавиша Start

begin

if SpeedGL. MediaPlayer1.FileName<>'SoundRace.mp3' then begin

SpeedGL.MediaPlayer1.FileName:='SoundRace.mp3';

SpeedGL.MediaPlayer1.Open;

SpeedGL.MediaPlayer1.Play;

end;

if (PressedKey[27]=true)and (CountTickTimer>100) then

begin

Selected_Menu_item:='';

SpeedGL.MediaPlayer1.Stop;

SpeedGL.MediaPlayer1.Close;

SpeedGL.MediaPlayer1.FileName:='';

Menu_item:=2;

CountTickTimer:=0;

Speed:=0.0;

sound:=false;

CountFuel:=8;

CountKM:=0;

end;

//Ρ‚ΠΎΡ€ΠΌΠΎΠΆΠ΅Π½ΠΈΠ΅

if PressedKey[40]=true then

begin

Speed:=Speed+0.2;

GasDeley:=1;

end;

if (CountFuel>0)and (CountKM<20) then if PressedKey[38]=true then Speed:=Speed-0.5;//Ρ€Π°Π·Π³ΠΎΠ½

if (PressedKey[39]=true)and (Speed<-0.1) then X_KordCar:=X_KordCar+0.5-Speed/5;//ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π²ΠΏΡ€Π°Π²ΠΎ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ скорости

if (PressedKey[37]=true)and (Speed<-0.1) then X_KordCar:=X_KordCar-0.5+Speed/5;//ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π²Π»Π΅Π²ΠΎ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ скорости

if (PressedKey[40]=False)and (PressedKey[38]=False) then begin Speed:=Speed+0.3; GasDeley:=1; end;//Ρ‚ΠΎΡ€ΠΌΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½Π΅Ρ€Ρ†ΠΈΠ΅ΠΉ

if Speed>0 then Speed:=0;//ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ тормоТСния

if (Gas)and (CountFuel<>0) then

begin

GasDeley:=GasDeley+0.0005;

if GasDeley>=1 then Speed:=Speed+0.5 else Speed:=-0.025;

if Speed>-0.01 then

begin

Speed:=-0.01;

Gas:=false;

GasDeley:=1;

end;

end

else

if Speed<-0.01 then Speed:=-0.01;//ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости

Y_Kord:=Y_Kord+Speed;//Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Π½ΠΈΠ΅ скорости

if EnymiGoToWay then begin

Y_Enymi:=Y_Enymi+Speed+0.0085;

X_Enymi:=X_Enymi+(0.001*LR);

if X_Enymi>=Right_death_dot then LR:=-1;

if X_Enymi<=Left_death_dot then LR:=1;

if (Y_Enymi>1.2)or (Y_Enymi<-1.2)then EnymiGoToWay:=false;

end;

if FuelGoToWay then

Y_KordFuel:=Y_KordFuel+Speed; //ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ элСмСнтов

if (Speed<>0)and (Speed<-0.2)and (CountFuel>0) then

CountFuel:=CountFuel+MinusFuel/(Speed*50); //УмСньшСниС Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π°

if (CountFuel<=0)or (CountKM>=20) then begin Gas:=false; GasDeley:=1; Speed:=Speed+0.3; end;

if (Speed<-0.005)and (MinusFuel=0.2) then MinusFuel:=MinusFuel*10 else

if MinusFuel=0.0002 then MinusFuel:=MinusFuel/10;

if Y_Kord<=-2.0 then Y_Kord:=0;//пСрСстановка ΠΊΠ°Π΄Ρ€ΠΎΠ²

if X_KordCar>=Right_death_dot then

begin

X_KordCar:=Right_death_dot;//ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ справа

if Speed<-0.001 then begin Speed:=Speed+0.2; GasDeley:=1; end;//УмСньшСниС скорости ΠΏΡ€ΠΈ прикосновСнии ΠΊ Π±Π°Ρ€Π΄ΡŽΡ€Ρƒ справап

end;

if X_KordCar<=Left_death_dot then

begin

X_KordCar:=Left_death_dot;//ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ слСва

if Speed<-0.001 then begin Speed:=Speed+0.2; GasDeley:=1; end;//УмСньшСниС скорости ΠΏΡ€ΠΈ прикосновСнии ΠΊ Π±Π°Ρ€Π΄ΡŽΡ€Ρƒ слСва

end;

end;

end

else

if (PressedKey[27]=true)and (CountTickTimer>100) then

begin

Selected_Menu_item:='';

Menu_item:=2;

CountTickTimer:=0;

Speed:=0.0;

Pause:=false;

sound:=false;

CountFuel:=8;

CountKM:=0;

end;

if Selected_Menu_item='' then //НаТата клавиша Esc Π² ΠΈΠ³Ρ€Π΅ ΠΈΠ»ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ

begin

if SpeedGL. MediaPlayer1.FileName<>'TexturesVideoSL_Start_Logo.avi' then

if SpeedGL. MediaPlayer1.FileName<>'SoundMain_Menu.mp3' then begin

SpeedGL.MediaPlayer1.FileName:='SoundMain_Menu.mp3';

SpeedGL.MediaPlayer1.Open;

SpeedGL.MediaPlayer1.Play;

end;

if CountTickTimer>100 then begin

if PressedKey[27]=true then

begin

SpeedGL.MediaPlayer1.Stop;

SpeedGL.MediaPlayer1.Close;

SpeedGL.MediaPlayer1.FileName:='';

Selected_Menu_item:='Exit';

CountTickTimer:=0;

end;

if PressedKey[40]=true then

begin

Inc (Menu_item);

PlaySound ('SoundSelect_MainMenu.wav', 0, SND_ASYNC);

CountTickTimer:=0;

end; //Π²Π½ΠΈΠ·

if PressedKey[38]=true then

begin

Dec (Menu_item);

PlaySound ('SoundSelect_MainMenu.wav', 0, SND_ASYNC);

CountTickTimer:=0;

end;//Π²Π²Π΅Ρ€Ρ…

if CountTickTimer>1000 then CountTickTimer:=110;

end;

if Menu_item>4 then Menu_item:=1;//ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅

if Menu_item<1 then Menu_item:=4;// Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… 4 ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ²

if PressedKey[13]=true then begin

PlaySound ('SoundChoose_MainMenu.wav', 0, SND_ASYNC);

case Menu_item of

1:begin

Selected_Menu_item:='Start';

Score:=0;

FuelGoToWay:=false;

NextKM_GenerFuel:=1;

CountKM:=0;

CountFuel:=8;

CountNitro:=0;

MinusFuel:=0.2;

Y_KordFuel:=1.5;

FuelGoToWay:=false;

GasDeley:=1;

Gas:=false;

NextKmEnymy:=0.3;

Y_Enymi:=1.2;

end;

2:begin Selected_Menu_item:='Car'; end;

3:begin Selected_Menu_item:='Actors'; end;

4:begin Selected_Menu_item:='Exit'; end;

end;

end;

end;

if CountTickTimer>100 then begin

if Selected_Menu_item='Actors' then //НаТата клавиша Sound

begin

if SpeedGL. MediaPlayer1.FileName<>'SoundActor.mp3' then begin

SpeedGL.MediaPlayer1.FileName:='SoundActor.mp3';

SpeedGL.MediaPlayer1.Open;

SpeedGL.MediaPlayer1.Play;

end;

if PressedKey[27]=true then

begin

Selected_Menu_item:='';

SpeedGL.MediaPlayer1.Stop;

SpeedGL.MediaPlayer1.Close;

SpeedGL.MediaPlayer1.FileName:='';

CountTickTimer:=0;

end;

end;

if Selected_Menu_item='Car' then //НаТата клавиша Car

begin //Car

if SpeedGL. MediaPlayer1.FileName<>'SoundGarage.mp3' then begin

SpeedGL.MediaPlayer1.FileName:='SoundGarage.mp3';

SpeedGL.MediaPlayer1.Open;

SpeedGL.MediaPlayer1.Play;

end;

if PressedKey[27]=true then

begin

Selected_Menu_item:='';

SpeedGL.MediaPlayer1.Stop;

SpeedGL.MediaPlayer1.Close;

SpeedGL.MediaPlayer1.FileName:='';

CountTickTimer:=0;

OldSelectMenyItem:='Car';

end;

if PressedKey[37]=true then

begin

Dec (CarMenuItem);

CountTickTimer:=0;

LeftButton:=true;

PlaySound ('SoundSelect_CarMenu.wav', 0, SND_ASYNC);

end;

if PressedKey[39]=true then

begin

Inc (CarMenuItem);

CountTickTimer:=0;

RightButton:=true;

PlaySound ('SoundSelect_CarMenu.wav', 0, SND_ASYNC);

end;

if CarMenuItem>4 then CarMenuItem:=1;

if CarMenuItem<1 then CarMenuItem:=4;

end; //Car

end;//CountTickTimer

if Selected_Menu_item='Exit' then //НаТата клавиша Exit Π² Π³Π»Π°Π½ΠΎΠΌ мСню

begin

SpeedGL.MediaPlayer1.Free;

Application.Terminate;

Application.ProcessMessages;

end;

InvalidateRect (SpeedGL.Handle, nil, False);//пСрСрисовка

if (Symvol=0)and

(PressedKey[78]=true)and

(CountNitro>0)and

(GasDeley=1) then

begin

Gas:=true;

CountNitro:=CountNitro-1;

GasDeley:=0;

PlaySound ('SoundStart_Nitro.wav', 0, SND_ASYNC);

end;

end;

событиС OnPaint:

procedure TSpeedGL. FormPaint (Sender: TObject);

var

ps:TPaintStruct;

begin

BeginPaint (dc, ps);

if Selected_Menu_item='' then

begin

case Menu_item of

1:begin LeftTiresMeny:=-0.849; RightTiresMeny:=0.8; TopTiresMeny:=0.76; end;

2:begin LeftTiresMeny:=-1.1; RightTiresMeny:=1.0; TopTiresMeny:=0.4; end;

3:begin LeftTiresMeny:=-0.8; RightTiresMeny:=0.8; TopTiresMeny:=0.0; end;

4:begin LeftTiresMeny:=-0.8; RightTiresMeny:=0.8; TopTiresMeny:=-0.58; end;

end;

if OldSelectMenyItem='Car' then begin

if RemoveMeny>=0.0 then begin RemoveMeny:=0.0; OldSelectMenyItem:='' end else

RemoveMeny:=RemoveMeny+0.018;

glCallList (Background);

glPushMatrix;

glTranslatef (RemoveMeny, 0.0,0.0);

glCallList (StringMeny);

glPopMatrix;

end

else begin

glCallList (Background);//Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΠΎΠ½Π°

glCallList (StringMeny);//Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° надписСй Π² ΠΌΠ΅Π½ΡŽ

end;

if (Selected_Menu_item<>'Car')and (RemoveMeny=0.0) then begin

Angel:=Angel+1;

if Angel=360 then Angel:=0;

glCallList (8);//Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° колСса

glPushMatrix;

glScalef (0.5,0.66,0.5);

glTranslatef (LeftTiresMeny, TopTiresMeny, 0.0);

glRotatef (Angel, 0.0,0.0,1.0);

glCallList (Tires);

glPopMatrix;

glPushMatrix;

glScalef (0.5,0.66,1.0);

glTranslatef (RightTiresMeny, TopTiresMeny, 0.0);

glRotatef (Angel, 0.0,0.0,1.0);

glCallList (Tires);

glPopMatrix;

end;

end;

if Selected_Menu_item='Start' then //НаТата клавиша Start ΠΈΠ³Ρ€Π° Π½Π°Ρ‡Π°Π»Π°ΡΡŒ

begin //Start

// glClear (GL_COLOR_BUFFER_BIT); //ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ стираниС

glPushMatrix;

glTranslatef (0.0,Y_Kord, 0.0);

glCallList (WayDesert1);

glPopMatrix;

glPushMatrix;

glTranslatef (0.0,Y_Kord+1.99,0.0);

glCallList (WayDesert1);

glPopMatrix;

if not Pause then

if Speed<>0 then CountKM:=CountKM+abs (Speed/27);//количСсто ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Ρ‹Ρ… ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

// Caption:=FloatToStrF (CountKM, ffNumber, 6,3);

//Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π‘Π΅Π½Π·ΠΈΠ½Π° ΠΈΠ»ΠΈ Нитро Π½Π° Π΄ΠΎΡ€ΠΎΠ³Π΅

if (CountKM>NextKM_GenerFuel)and (FuelGoToWay=False)and (speed<>0) then

begin

if Random (2)=1 then X_KordFuel:=Random*0.5 else X_KordFuel:=-Random*0.5;

FuelGoToWay:=true;

Y_KordFuel:=1.5;

Inc (NextKM_GenerFuel, 1);

if not FuelOrNitro then FuelOrNitro:=true else FuelOrNitro:=false;

end;

if (FuelGoToWay)and (Y_KordFuel<-1.2) then FuelGoToWay:=False;

//ΠŸΡ€ΠΎΡ€ΠΈΡΠΎΠ²ΠΊΠ° Π‘Π΅Π½Π·ΠΈΠ½Π° ΠΈΠ»ΠΈ Нитро

if not KordObjectItems (X_KordFuel, Y_KordFuel, 0.05,0.065,X_KordCar, Y_KordCar, CarXPogresh, CarYPogresh) then

begin // KordObject

glPushMatrix;

glTranslatef (X_KordFuel, Y_KordFuel, 0.0);

if FuelOrNitro then glCallList (ItemFuelList) else glCallList (ItemNitroList);

glPopMatrix;

end//KordObject

else

begin

Y_KordFuel:=1.5;

FuelGoToWay:=False;

PlaySound ('SoundGet_Nitro_Fuel.wav', 0, SND_ASYNC);

if FuelOrNitro then if CountFuel<20 then CountFuel:=CountFuel+1;

if not FuelOrNitro then if CountNitro<=10 then CountNitro:=CountNitro+1;

end;

{Caption:=FloatToStrF (CountFuel, ffNumber, 6,3)+' '+

FloatToStrF (CountNitro, ffNumber, 6,3)+' '+

FloatToStrF (CountKM, ffNumber, 6,3)+' '+

FloatToStrF (GasDeley, ffNumber, 6,3);}

if (CountKM>NextKmEnymy)and (EnymiGoToWay=False)and (speed<>0) then

begin

NumbrCar:=random (9)+1;

EnymiGoToWay:=true;

NextKmEnymy:=NextKmEnymy+0.1;

Y_Enymi:=1.2;

end;

if (EnymiGoToWay)and (Y_Enymi<-1.2) then EnymiGoToWay:=False;

if not KordObjectEnimy (X_Enymi, Y_Enymi, 0.08,0.130,X_KordCar, Y_KordCar, CarXPogresh-0.05,CarYPogresh-0.05) then

begin // KordObject

glPushMatrix;

glTranslatef (X_Enymi, Y_Enymi, 0.0);

glCallList (EnymiCars[NumbrCar]);

glPopMatrix;

end//KordObject

else

begin

Y_Enymi:=1.2;

EnymiGoToWay:=False;

GasDeley:=1;

Gas:=false;

Speed:=-0.001;

PlaySound ('SoundDenger_Sound.wav', 0, SND_ASYNC);

if CountFuel>0 then CountFuel:=CountFuel-1;

if CountFuel<0 then CountFuel:=0;

end;

//рисованиС ΠΌΠ°ΡˆΠΈΠ½Ρ‹

if ChooseCar='ShotWarKiller' then begin

glPushMatrix;

glTranslatef (X_KordCar, Y_KordCar, 0.0);

glCallList (WarKiller);

glPopMatrix;

end;

if ChooseCar='ShotFlash' then begin

glPushMatrix;

glTranslatef (X_KordCar, Y_KordCar, 0.0);

glCallList (Flash);

glPopMatrix;

end;

if ChooseCar='ShotGembic' then begin

glPushMatrix;

glTranslatef (X_KordCar, Y_KordCar, 0.0);

glCallList (Gembic);

glPopMatrix;

end;

if ChooseCar='ShotGlass' then begin

glPushMatrix;

glTranslatef (X_KordCar, Y_KordCar, 0.0);

glCallList (Glass);

glPopMatrix;

end;

//ΠŸΡ€ΠΎΠΈΠ³Ρ€Ρ‹Ρˆ ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΡŒ Π² ΠΈΠ³Ρ€Π΅

if (CountFuel<=0)and (CountKM<20) then begin glCallList (GameOver); if not sound then sound:=true; end;

if CountKM>=20 then begin glCallList (YouWin); if not sound then sound:=true; end;

if ((CountFuel<=0)or (CountKM>=20))and (Speed>=0)then begin

glPushMatrix;

glTranslatef (0.0,-0.4,0.0);

glCallList (PressEsc);

glPopMatrix

end;

//Π˜Π³Ρ€ΠΎΠ²ΠΎΠ΅ мСню

glPushMatrix;

glTranslatef (0.7,0.58,0.0);

glScalef (1.5,1.5,1.0);

glCallList (GameMenu);

glPopMatrix;

//Надписи Π½Π° ΠΌΠ΅Π½ΡŽ

glPushMatrix;

glTranslatef (0.64,0.68,1.0);

glCallList (FontList);

glPopMatrix;

if Pause then glCallList (PauseToGame);

end; //Start

if Selected_Menu_item='Car' then //НаТата клавиша Car

begin //Car

if RemoveMeny<=-0.5 then RemoveMeny:=-0.5 else RemoveMeny:=RemoveMeny-0.018;

glCallList (Background);

glPushMatrix;

glTranslatef (RemoveMeny, 0.0,0.0);

glCallList (StringMeny);

glPopMatrix;

if RemoveMeny<=-0.5 then

begin

//МСню

glPushMatrix;

glTranslatef (0.5,0.2,0.0);

glCallList (SubMenuInCar);

glPopMatrix;

DeleyButtonInCarMeny;

//ВыбираСтся машина

case CarMenuItem of

1:begin

//ShotWarKiller

glPushMatrix;

glTranslatef (0.5,0.12,0.0);

glCallList (ShotWarKiller);

glPopMatrix;

ChooseCar:='ShotWarKiller';

CarXPogresh:=XPogreshWarKiller;

CarYPogresh:=YPogreshWarKiller;

end;

2:begin

//ShotFlash

glPushMatrix;

glTranslatef (0.5,0.12,0.0);

glCallList (ShotFlash);

glPopMatrix;

ChooseCar:='ShotFlash';

CarXPogresh:=XPogreshFlash;

CarYPogresh:=YPogreshFlash;

end;

3:begin

//ShotGembic

glPushMatrix;

glTranslatef (0.5,0.12,0.0);

glCallList (ShotGembic);

glPopMatrix;

ChooseCar:='ShotGembic';

CarXPogresh:=XPogreshFlash;

CarYPogresh:=YPogreshFlash;

end;

4:begin

//ShotGlass

glPushMatrix;

glTranslatef (0.5,0.12,0.0);

glCallList (ShotGlass);

glPopMatrix;

ChooseCar:='ShotGlass';

CarXPogresh:=XPogreshFlash;

CarYPogresh:=YPogreshFlash;

end;

end;//Case

end;//RemoveMeny

end; //Car

if Selected_Menu_item='Actors' then //НаТата клавиша Actors

begin

glCallList (Actor);

end;

if Selected_Menu_item='Exit' then //НаТата клавиша Exit

begin

end;

SwapBuffers (DC);

EndPaint (DC, ps);

{if Selected_Menu_item='Start'then begin

Canvas.Brush.Color:=clWhite;

Canvas.TextOut (500,40,'Π‘Π΅Π½Π·ΠΈΠ½: '+FloatToStrF (CountFuel, ffNumber, 6,3)+'Π»');

Canvas.TextOut (500,55,'Нитро: '+FloatToStrF (CountNitro, ffNumber, 6,3)+'ΠΊΠ³/см');

Canvas.TextOut (500,70,'К.ΠΌΠ΅Ρ‚Ρ€Ρ‹: '+FloatToStrF (CountKM, ffNumber, 6,3)+'ΠΊΠΌ');

end;}

Caption:=StatisticCaption;

//ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ускоритСля ΠΈ Π²Π΅Ρ€ΡΠΈΡ OpenGL клавиша 'a'

if PressedKey[65]=true then

Caption:='OpenGL: '+

StrPas (glGetString (GL_VERSION))+

' '+

StrPas (glGetString (GL_VENDOR))+

' '+

StrPas (glGetString (GL_RENDERER));

if PressedKey[70]=true then //ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Fps — клавиша 'f'

begin

newCount:=GetTickCount;

Inc (frameCount);

If abs (newCount — lastCount) > 1000 then

begin

StatisticCaption:='FPS: '+FloatToStr (frameCount);

lastCount := newCount;

frameCount := 0;

end;

end;

if PressedKey[75]=true then

StatisticCaption:='X='+FloatToStrF (xpos, ffNumber, 4,3)+

' '+'Y='+FloatToStrF (ypos, ffNumber, 4,3);

if (PressedKey[70]=false)and

(PressedKey[75]=false)and

(PressedKey[65]=false)then StatisticCaption:='SpeedLine';

end;

procedure TSpeedGL. FormDestroy (Sender: TObject);

begin

//glDeleteLists (1,1);

timeKillEvent (uTimerID);

wglMakeCurrent (0, 0);

wglDeleteContext (hrc);

ReleaseDC (Handle, DC);

end;

procedure TSpeedGL. FormMouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

xpos:=2*X/ClientWidth-1;

ypos:=2*(ClientHeight-Y)/ClientHeight-1;

if Selected_Menu_item='' then begin //Selected_Menu_item

if (xpos>-0.3)and (ypos>0.4)and

(xpos<0.3)and (ypos>0.4)and

(xpos<0.3)and (ypos<0.6)and

(xpos>-0.3)and (ypos<0.6)then begin

if Menu_item<>1 then

PlaySound ('SoundSelect_MainMenu.wav', 0, SND_ASYNC);

Menu_item:=1;

end;

if (xpos>-0.3)and (ypos>0.15)and

(xpos<0.3)and (ypos>0.15)and

(xpos<0.3)and (ypos<0.35)and

(xpos>-0.3)and (ypos<0.35)then begin

if Menu_item<>2 then

PlaySound ('SoundSelect_MainMenu.wav', 0, SND_ASYNC);

Menu_item:=2;

end;

if (xpos>-0.3)and (ypos>-0.1)and

(xpos<0.3)and (ypos>-0.1)and

(xpos<0.3)and (ypos<0.1)and

(xpos>-0.3)and (ypos<0.1)then begin

if Menu_item<>3 then

PlaySound ('SoundSelect_MainMenu.wav', 0, SND_ASYNC);

Menu_item:=3;

end;

if (xpos>-0.3)and (ypos>-0.5)and

(xpos<0.3)and (ypos>-0.5)and

(xpos<0.3)and (ypos<-0.3)and

(xpos>-0.3)and (ypos<-0.3)then begin

if Menu_item<>4 then

PlaySound ('SoundSelect_MainMenu.wav', 0, SND_ASYNC);

Menu_item:=4;

end;

{if Selected_Menu_item='Start' then

begin

if

end;}

end; //Selected_Menu_item

end;

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