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

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°

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

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

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

  • 1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
    • 2. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
      • 3. Алгоритм Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ
      • 4. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования C++
      • 5. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€
      • 6. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
      • 7. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
      • 8. Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

C++ (произносится «ΡΠΈ ΠΏΠ»ΡŽΡ плюс») — ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ статичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ программирования, сочСтаСт свойства ΠΊΠ°ΠΊ высокоуровнСвых, Ρ‚Π°ΠΊ ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… языков. Π’ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΠΈ с Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠΌ — языком C, — наибольшСС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ программирования. НазваниС «C++» происходит ΠΎΡ‚ ΡΠ·Ρ‹ΠΊΠ° C, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ++ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π―Π·Ρ‹ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊ Π² Π½Π°Ρ‡Π°Π»Π΅ 1980;Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ³Π΄Π° сотрудник Ρ„ΠΈΡ€ΠΌΡ‹ Bell Laboratories Π‘ΡŒΡ‘Ρ€Π½ Бтрауструп ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» ряд ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠ·Ρ‹ΠΊΡƒ C ΠΏΠΎΠ΄ собствСнныС Π½ΡƒΠΆΠ΄Ρ‹. Π”ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ стандартизации язык развивался Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ силами Бтрауструпа Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π·Π°ΠΏΡ€ΠΎΡΡ‹ программистского сообщСства.

Являясь ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… популярных языков программирования, C++ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π΅Π³ΠΎ примСнСния Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ созданиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² устройств, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для встраиваСмых систСм, Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сСрвСров, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€Ρ‹). БущСствуСт нСсколько Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ языка C++ — ΠΊΠ°ΠΊ бСсплатных, Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΠΈΡ…. Π˜Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚ ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ GNU, Microsoft, Intel ΠΈ Embarcadero (Borland). C++ ΠΎΠΊΠ°Π·Π°Π» ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ влияниС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки программирования, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π° Java ΠΈ C#.

ΠŸΡ€ΠΈ создании C++ Π‘ΡŒΡ‘Ρ€Π½ Бтрауструп стрСмился ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡΠ·Ρ‹ΠΊΠΎΠΌ C. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ компиляторами C, Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Π°ΠΌΠΈ C++, довольно Π²Π΅Π»ΠΈΠΊΠΎ — отчасти благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ синтаксис C++ Π±Ρ‹Π» основан Π½Π° ΡΠΈΠ½Ρ‚аксисС C.

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

Π’Π΅ΠΌΠ° ΠΌΠΎΠ΅ΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹: «Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ — тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°».

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ‚Скстом, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ тСкста, ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… RTF ΠΈ TXT, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Ρ Ρ€Π΅ΡˆΠΈΠ» Π² ΡΡ€Π΅Π΄Π΅ Π‘++ Builder 6, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ использованиС Π‘++ Builder 6 ΠΈΠΌΠ΅Π΅Ρ‚ большС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹Ρ… качСств, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ срСды программирования.

3. Алгоритм Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для составлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

RichEdit — содСрТит ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Скстом ΠΈ Π±ΡƒΡ„Π΅Ρ€ΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π°

SpeedBar — панСль инструмСнтов с Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° Π½Π΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ

MainMenu — Π³Π»Π°Π²Π½ΠΎΠ΅ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

OpenDialog — Π΄ΠΈΠ°Π»ΠΎΠ³ для ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ»

SaveDialog — Π΄ΠΈΠ°Π»ΠΎΠ³ для ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ»

FontDialog — Π΄ΠΈΠ°Π»ΠΎΠ³ для ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π¨Ρ€ΠΈΡ„Ρ‚»

PrintDialog — Π΄ΠΈΠ°Π»ΠΎΠ³ для ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ»

PopupMenu — контСкстноС мСню

SpeedButton — ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°

ComboBox — «Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ» список

Label — тСкстовая ΠΌΠ΅Ρ‚ΠΊΠ°

UpDown — ΠΊΠ½ΠΎΠΏΠΊΠ° «UpDown»

StatusBar — панСль статуса

Image — ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Bevel — Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ

ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π±ΠΎΡ€Π° Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ C++ Builder 6, Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Π»Π΅Π²ΠΎΠΉ клавишСй ΠΌΡ‹ΡˆΠΈ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΠŸΡ€ΠΎΡ†Π΅ΡΡ построСния:

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ мСню быстрого запуска. Для этого пСрСнСсСм Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ SpeedBar 15 ΠΊΠ½ΠΎΠΏΠΎΠΊ SpeedButton ΠΈ ΠΏΡ€ΠΈΠ΄Π°Π΄ΠΈΠΌ ΠΈΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ (Рис. 1)

Рис. 1

Π—Π°Ρ‚Π΅ΠΌ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Properties Π·Π°Π΄Π°Π΄ΠΈΠΌ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ Π·Π½Π°Ρ‡ΠΊΠΈ, ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ΄Ρ‹ (ΠΏΡƒΡ‚Π΅ΠΌ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π΅) (Рис. 2)

Рис. 2

ΠšΠΎΠ΄Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «ΠšΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹».

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½Ρ‹Ρ… дСйствий получится мСню быстрого запуска (Рис. 3)

Рис. 3

Π”Π°Π»Π΅Π΅, добавляСм Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ элСмСнты RichEdit, MainMenu, OpenDialog, SaveDialog, FontDialog, PrintDialog, PopupMenu, ComboBox, Edit, UpDown, Label ΠΈ StatusBar. РасполоТим ΠΈΡ… Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для использования порядкС (Рис 4.)

Рис. 4

Π—Π°Π΄Π°Π΄ΠΈΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ComboBox, Label, RichEdit ΠΈ MainMenu Ρ‡Π΅Ρ€Π΅Π· Π²ΠΊΠ»Π°Π΄ΠΊΡƒ properties ΠΈΠ· Object Inspector. (Рис. 5)

Рис. 5

Π§Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ MainMenu создадим Π³Π»Π°Π²Π½ΠΎΠ΅ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для этого Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½Π΅ΠΌ ΠΏΠΎ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ MainMenu, послС Ρ‡Π΅Π³ΠΎ откроСтся ΠΎΠΊΠ½ΠΎ рСдактирования Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню. (Рис. 6)

Рис. 6

Π§Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ создадим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню (правая клавиша ΠΌΡ‹ΡˆΠΈ -> insert) (Рис. 7)

Рис. 7

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΠΊΠ½ΠΎ «ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅». Для этого Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π·

File -> new -> form. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π΅ элСмСнты Button, Image, Bevel, Label. Π§Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Label Π·Π°Π΄Π°Π΄ΠΈΠΌ имя Π°Π²Ρ‚ΠΎΡ€Π° ΠΈ Π³ΠΎΠ΄ создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Image присвоим ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Button Π·Π°Π΄Π°Π΄ΠΈΠΌ имя «OK», послС наТатия Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠΊΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ. (Рис. 8)

Рис. 8

ОсновноС ΠΎΠΊΠ½ΠΎ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (Рис. 9):

Рис. 9

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡ:

1 — Кнопка «ΠΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»»

2 — Кнопка «ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ»

3 — Кнопка «Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ»

4 — Кнопка «ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ»

5 — Кнопка «ΠžΡ‚ΠΌΠ΅Π½Π°»

6 — Кнопка «ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ»

7 — Кнопка «Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ»

8 — Кнопка «Π’Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ»

9 — Π“Π»Π°Π²Π½ΠΎΠ΅ мСню

10 — ПанСль форматирования тСкста

11 — ПолС для Π²Π²ΠΎΠ΄Π° тСкста

4. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования C++

//ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для рСдактирования тСкста Diamond PAD

//Π”ΠΎΠ»Π³ΠΈΡ… Антон 2010. Π“Ρ€ΡƒΠΏΠΏΠ° ПИЭ-091

//—————————————————————————————————————-;

#include

#pragma hdrstop

#include

#include

#include

#include «Romain.h»

#include «RichAbt.h»

#include «ReConst.hpp»

#include «reinit.hpp»

const float RulerAdj = 4.0/3.0;

const int GutterWid = 6;

//—————————————————————————————————————-;

#pragma resource «*.dfm» TMainForm *MainForm;

//—————————————————————————————————————-;

__fastcall TMainForm: TMainForm (TComponent *Owner)

: TForm (Owner) { SetFileName (Reconst_SUntitled); }

//—————————————————————————————————————-;

template int AsInt (T Param)

{ return static_cast (Param);}

//—————————————————————————————————————-;

void __fastcall TMainForm: SelectionChange (TObject */*Sender*/)

{

TParaAttributes *Paragraph = RichEdit1->Paragraph;

TTextAttributes *SelAttributes = RichEdit1->SelAttributes;

char sizebuf[6]; try

{FUpdating = True;

FirstInd->Left = AsInt (Paragraph->FirstIndent*RulerAdj) — 4 + GutterWid;

LeftInd->Left = AsInt ((Paragraph->LeftIndent + Paragraph->FirstIndent)

* RulerAdj) — 4 + GutterWid;

RightInd->Left = Ruler->ClientWidth-6-AsInt ((Paragraph->RightIndent + GutterWid) * RulerAdj);

BoldButton->Down = SelAttributes->Style.Contains (fsBold);

ItalicButton->Down = SelAttributes->Style.Contains (fsItalic);

UnderlineButton->Down = SelAttributes->Style.Contains (fsUnderline);

BulletsButton->Down = static_cast (Paragraph->Numbering);

FontSize->Text = itoa (SelAttributes->Size, sizebuf, 10);

FontName->Text = SelAttributes->Name;

switch (AsInt (Paragraph->Alignment))

{case 0:

LeftAlign->Down = True;

break;

case 1:

RightAlign->Down = True;

break;

case 2:

CenterAlign->Down = True;

break; } }__finally{FUpdating = False;}}

//—————————————————————————————————————-;

TTextAttributes *__fastcall TMainForm: CurrText (void)

{return RichEdit1->SelAttributes;}

//—————————————————————————————————————-;

int __stdcall EnumFontsProc (TLogFontA &LogFont, TTextMetricA &/*TextMetric*/,

int /*FontType*/, Pointer Data)

{TCharsetObject *FontCharset; TStrings *Strings = static_cast (Data);

FontCharset = new TCharsetObject (AsInt (LogFont.lfCharSet)); Strings->AddObject (LogFont.lfFaceName, FontCharset); return 1;}

//—————————————————————————————————————-;

void __fastcall TMainForm: GetFontNames (void)

{ HDC hDC = GetDC (0);

void * cTmp = static_cast (FontName->Items);

EnumFonts (hDC, NULL, (FONTENUMPROC) EnumFontsProc, (long) cTmp);

ReleaseDC (0,hDC);

FontName->Sorted = True; }

//—————————————————————————————————————-;

void __fastcall TMainForm: SetFileName (const AnsiString FileName)

{LPSTR lpBuf = new char[MAX_PATH]; sprintf (lpBuf, Reconst_SPercent_s.c_str (), ExtractFileName (FileName).c_str (), Application->Title.c_str ());

Caption = lpBuf; FFileName = FileName; delete lpBuf; }

//—————————————————————————————————————-;

void __fastcall TMainForm: CheckFileSave (void)

{ if (RichEdit1->Modified) { switch (MessageBox (Handle, Reconst_SSaveChanges.c_str (),

Reconst_SConfirmation.c_str (), MB_YESNOCANCEL | MB_ICONQUESTION))

{case ID_YES: FileSaveClick (this); break; case ID_CANCEL: Abort (); }; } }

//—————————————————————————————————————-;

void __fastcall TMainForm: SetupRuler (void)

{ int iCtr = 1; char sTmp[201]; while (iCtr < 200) '; iCtr++; Ruler->Caption = sTmp; }

//—————————————————————————————————————-;

void __fastcall TMainForm: SetEditRect (void)

{TRect Rct = Rect (GutterWid, 0, RichEdit1->ClientWidth-GutterWid, ClientHeight);

SendMessage (RichEdit1->Handle, EM_SETRECT, 0, (long)&Rct); }

//—————————————————————————————————————-;

void __fastcall TMainForm: ShowHint (TObject* /*Sender*/)

{StatusBar->SimpleText = Application->Hint; }

//—————————————————————————————————————-;

void __fastcall TMainForm: FileNewClick (TObject* /*Sender*/)

{CheckFileSave (); SetFileName (Reconst_SUntitled); RichEdit1->Lines->Clear ();

RichEdit1->Modified = False;}

//—————————————————————————————————————-;

void __fastcall TMainForm: FileOpenClick (TObject* /*Sender*/)

{CheckFileSave (); if (OpenDialog->Execute ())

{RichEdit1->Lines->LoadFromFile (OpenDialog->FileName);

SetFileName (OpenDialog->FileName); RichEdit1->SetFocus (); RichEdit1->Modified = False;

RichEdit1->ReadOnly = OpenDialog->Options.Contains (ofReadOnly); } }

//—————————————————————————————————————-;

void __fastcall TMainForm: FileSaveClick (TObject* Sender)

{ if (!strcmp (FFileName.c_str (), Reconst_SUntitled.c_str ())) FileSaveAsClick (Sender); else {

RichEdit1->Lines->SaveToFile (FFileName); RichEdit1->Modified = False; } }

//—————————————————————————————————————-;

void __fastcall TMainForm: FileSaveAsClick (TObject* /*Sender*/)

{ if (SaveDialog->Execute ()) {

RichEdit1->Lines->SaveToFile (SaveDialog->FileName); SetFileName (SaveDialog->FileName);

RichEdit1->Modified = False;} }

//—————————————————————————————————————-;

void __fastcall TMainForm: FilePrintClick (TObject* /*Sender*/)

{ if (PrintDialog->Execute ()) RichEdit1->Print (FFileName); }

//—————————————————————————————————————-;

void __fastcall TMainForm: FileExitClick (TObject* /*Sender*/) {Close ();}

//—————————————————————————————————————-;

void __fastcall TMainForm: EditUndoClick (TObject* /*Sender*/)

{if (RichEdit1->HandleAllocated ()) SendMessage (RichEdit1->Handle, EM_UNDO, 0, 0);}

//—————————————————————————————————————-;

void __fastcall TMainForm: EditCutClick (TObject* /*Sender*/) {RichEdit1->CutToClipboard ();}

//—————————————————————————————————————-;

void __fastcall TMainForm: EditCopyClick (TObject* /*Sender*/) { RichEdit1->CopyToClipboard ();}

//—————————————————————————————————————-;

void __fastcall TMainForm: EditPasteClick (TObject* /*Sender*/) {RichEdit1->PasteFromClipboard ();}

//—————————————————————————————————————-;

void __fastcall TMainForm: HelpContentsClick (TObject* /*Sender*/)

{Application->HelpCommand (HELP_CONTENTS, 0);}

//—————————————————————————————————————-;

void __fastcall TMainForm: HelpSearchClick (TObject* /*Sender*/)

{Application->HelpCommand (HELP_PARTIALKEY, (long) «»);}

//—————————————————————————————————————-;

void __fastcall TMainForm: HelpHowToClick (TObject* /*Sender*/)

{Application->HelpCommand (HELP_HELPONHELP, 0);}

//—————————————————————————————————————-;

void __fastcall TMainForm: HelpAboutClick (TObject* /*Sender*/)

{Form2 = new TForm2(Application); Form2->ShowModal (); delete Form2;}

//—————————————————————————————————————-;

void __fastcall TMainForm: SelectFont (TObject* /*Sender*/)

{FontDialog1->Font->Assign (RichEdit1->SelAttributes);

if (FontDialog1->Execute ()) CurrText ()->Assign (FontDialog1->Font); RichEdit1->SetFocus (); }

//—————————————————————————————————————-;

void __fastcall TMainForm: RulerResize (TObject* /*Sender*/)

{ RulerLine->Width = (int)Ruler->ClientWidth — (RulerLine->Left*2); }

//—————————————————————————————————————-;

void __fastcall TMainForm: FormResize (TObject* Sender) { SetEditRect (); SelectionChange (Sender); }

//—————————————————————————————————————-;

void __fastcall TMainForm: FormPaint (TObject* /*Sender*/) {SetEditRect ();}

//—————————————————————————————————————-;

void __fastcall TMainForm: BoldButtonClick (TObject* /*Sender*/)

{ if (!FUpdating)

{if (BoldButton->Down) CurrText ()->Style = CurrText ()->Style << fsBold;

else CurrText ()->Style = CurrText ()->Style >> fsBold;}}

//—————————————————————————————————————-;

void __fastcall TMainForm: ItalicButtonClick (TObject* /*Sender*/)

{if (!FUpdating){ if (ItalicButton->Down) CurrText ()->Style = CurrText ()->Style << fsItalic; else

CurrText ()->Style = CurrText ()->Style >> fsItalic;}}

//—————————————————————————————————————-;

void __fastcall TMainForm: UnderlineButtonClick (TObject* /*Sender*/)

{if (!FUpdating){ if (UnderlineButton->Down)

CurrText ()->Style = CurrText ()->Style << fsUnderline;

else CurrText ()->Style = CurrText ()->Style >> fsUnderline;}}

//—————————————————————————————————————-;

void __fastcall TMainForm: FontSizeChange (TObject* /*Sender*/)

{int fontsize = atoi (FontSize->Text.c_str ()); if ((!FUpdating) && (fontsize)) {

if (fontsize < 1) {ShowMessage (Reconst_SNumberbetween); FontSize->Text = 1; } else if (fontsize > 1638){

ShowMessage (Reconst_SNumberbetween); FontSize->Text = 1638;}

CurrText ()->Size = atoi (FontSize->Text.c_str ());}}

//—————————————————————————————————————-;

void __fastcall TMainForm: AlignClick (TObject* Sender)

{if (!FUpdating){ TControl *oAliBtn = dynamic_cast (Sender);

RichEdit1->Paragraph->Alignment = static_cast (oAliBtn->Tag);}}

//—————————————————————————————————————-;

void __fastcall TMainForm: FontNameChange (TObject* /*Sender*/)

{ TCharsetObject* ChasrsetObject;

if (!FUpdating) { int FontIndex = FontName->ItemIndex;

if ((FontIndex > -1) && (FontIndex < FontName->Items->Count)) { ChasrsetObject = dynamic_cast (FontName->Items->Objects[FontName->ItemIndex]);

CurrText ()->Charset = ChasrsetObject->Charset;

CurrText ()->Name = FontName->Items->Strings[FontName->ItemIndex];

}}}

//—————————————————————————————————————-;

void __fastcall TMainForm: BulletsButtonClick (TObject* /*Sender*/)

{if (!FUpdating)

RichEdit1->Paragraph->Numbering = static_cast (BulletsButton->Down);}

//—————————————————————————————————————-;

void __fastcall TMainForm: FormCloseQuery (TObject* /*Sender*/, bool & CanClose)

{ try {CheckFileSave ();} catch (…) {CanClose = False; }}

//—————————————————————————————————————-;

void __fastcall TMainForm: RulerItemMouseDown (TObject * Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{TLabel *oTmpLabel = dynamic_cast (Sender);

FDragOfs = oTmpLabel->Width / 2;

oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs; FDragging = True;}

//—————————————————————————————————————-;

void __fastcall TMainForm: RulerItemMouseMove (TObject *Sender, TShiftState Shift, int X, int /*Y*/)

{if (FDragging) {

TLabel * oTmpLabel = dynamic_cast (Sender); oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;}}

//—————————————————————————————————————-;

void __fastcall TMainForm: FirstIndMouseUp (TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)

{FDragging = False; RichEdit1->Paragraph->FirstIndent = AsInt ((FirstInd->Left+FDragOfs-GutterWid) / RulerAdj); LeftIndMouseUp (Sender, Button, Shift, X, Y);}

//—————————————————————————————————————-;

void __fastcall TMainForm: LeftIndMouseUp (TObject *Sender, TMouseButton /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)

{FDragging = False; RichEdit1->Paragraph->LeftIndent = AsInt ((LeftInd->Left+FDragOfs-GutterWid) /

RulerAdj)-RichEdit1->Paragraph->FirstIndent; SelectionChange (Sender); }

//—————————————————————————————————————-;

void __fastcall TMainForm: RightIndMouseUp (TObject *Sender, TMouseButton /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)

{FDragging = False; RichEdit1->Paragraph->RightIndent =

AsInt ((Ruler->ClientWidth-RightInd->Left+FDragOfs-2) / RulerAdj) — 2 * GutterWid; SelectionChange (Sender); }

//—————————————————————————————————————-;

void __fastcall TMainForm: FormActivate (TObject *Sender)

{Application->HelpFile = «RICHEDIT.HLP»; RichEdit1->SetFocus ();}

//——————————————————————————————————;

void SetLocaleOverrides (char* FileName, char* LocaleOverride)

{HKEY Key; const char* LocaleOverrideKey = «Software\Borland\Locales» ;

if (RegOpenKeyEx (HKEY_CURRENT_USER, LocaleOverrideKey, 0, KEY_ALL_ACCESS, &Key)

== ERROR_SUCCESS) {if (lstrlen (LocaleOverride) == 3)

RegSetValueEx (Key, FileName, 0, REG_SZ, (const BYTE*)LocaleOverride, 4); RegCloseKey (Key);}}

//——————————————————————————————————;

void __fastcall TMainForm: FormDestroy (TObject *Sender)

{for (int n = 0;n < FontName->Items->Count;n++) if (FontName->Items->Objects[n])

{delete FontName->Items->Objects[n]; FontName->Items->Objects[n] = NULL;}}

//—————————————————————————————————————-;

__fastcall TCharsetObject: TCharsetObject (int FCharset): TObject () {Charset = FCharset;}

//—————————————————————————————————————;

void __fastcall TMainForm: BitBtn1Click (TObject *Sender)

{CheckFileSave ();

SetFileName (Reconst_SUntitled); RichEdit1->Lines->Clear (); RichEdit1->Modified = False;}

//—————————————————————————————————————;

void __fastcall TMainForm: SpeedButton1Click (TObject *Sender)

{CheckFileSave ();

SetFileName (Reconst_SUntitled); RichEdit1->Lines->Clear (); RichEdit1->Modified = False; }

//—————————————————————————————————————;

5. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ «Π’Сстовой ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ» для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Microsoft Windows XP (ΠΈ Π²Ρ‹ΡˆΠ΅), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Borland C++ Builder 6 — ΠΏΡ€ΠΈ отсутствии исполнимого Ρ„Π°ΠΉΠ»Π°.

Для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ WordPad, ΠΈΠ΄ΡƒΡ‰Π΅Π΅ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Microsoft Windows .

Запустим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ WordPad ΠΈΠ· ΠΌΠ΅Π½ΡŽ «ΠŸΡƒΡΠΊ — ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ — Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ — WordPad». Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ простой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ Π½Π°Π΄ Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ форматирования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚Π° Π½Π° ΠΆΠΈΡ€Π½Ρ‹ΠΉ, Π½Π°ΠΊΠ»ΠΎΠ½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ, отступ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΡˆΡ€ΠΈΡ„Ρ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ самого Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° (Рис. 10):

Рис. 10

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

6. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Запустим ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ DiamondPad. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ простой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ Π½Π°Π΄ Π½ΠΈΠΌ Ρ‚Π΅ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ форматирования, Ρ‡Ρ‚ΠΎ ΠΈ Ρ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ (Рис.11):

тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Рис.11

ВСкст вводится, форматируСтся, выводится Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ, Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚, Ρ„Π°ΠΉΠ»Ρ‹ прилоТСния ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ RTF Ρ‚Π°ΠΊ ΠΈ TXT. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ свои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

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

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

DiamondPad ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности форматирования тСкста:

Β· Π¨Ρ€ΠΈΡ„Ρ‚

Β· Π Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π°

Β· НачСртаниС ΡˆΡ€ΠΈΡ„Ρ‚Π°

Β· Π–ΠΈΡ€Π½Ρ‹ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚

Β· ΠŸΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅

Β· По Π»Π΅Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ

Β· По Ρ†Π΅Π½Ρ‚Ρ€Ρƒ

Β· По ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ

Β· ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°

Β· Вставка ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΠ±ΠΌΠ΅Π½Π°

9. Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1. ΠŸΠΎΠ½Π°ΠΌΠ°Ρ€Π΅Π² Π’. И. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C++/C# Π² Visual Studio .NET 2003 Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³. 2004.

2. Π”Π°Π²Ρ‹Π΄ΠΎΠ² Π’. Π“. Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования C++ Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³. 2005.

3. Π”ΠΆ. КоплиСн ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C++. 2005.

4. АлСксандров Π’. И. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΡ€Π΅Π΄Π΅ программирования C++ Builder 6. Аст-прСсс. 2006.

5. Антонов Π‘. Н. Π‘++ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π”ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΈΠΊΠ° — Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³. 2007.

6. И. М. Π Π°Ρ‚Π½Π΅Ρ€. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅ «Π’ысокоуровнСвыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ"

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