Разработка текстового редактора в С++ Builder

Автор: Пользователь скрыл имя, 21 Декабря 2012 в 11:31, курсовая работа

Описание работы

В С++ некоторые объекты являются частью самого языка. Но в целом задача создания новых объектов ложится на пользователя. В C++Builder имеется множество типов объектов, но реальное использование языка требует создания новых типов. Эффективность ООП проявляется только при создании и применении групп связанных между собой объектов. Такие группы называют иерархиями классов. Развитие этих иерархий классов является основой деятельности в ООП.

Содержание

Введение……………………………………………………….............................3 1История языка C++………………………........................................................5
1.1 Стандартизация языка…………….....................................................7
1.2 История названия……………………….............................................8
1.3 Достоинства…………………………………………...........................8
2 C++ Builder…………………………………………..........................................12
2.1 Интегрированная Среда Разработки..............................................13
3 Системные диалоги......................................................................................14
3.1 Компоненты закладки Dialog..........................................................14
3.2 Диалоги открытия и сохранения файлов ……….………................16
3.3 Диалог выбора шрифта…………....................................................17
3.4 Диалоги печати и установки принтера.............................................20
4 Реализация программы в среде «С++ Builder 6»..........................................23
Заключение………………………………………..……………………………..30
Библиографический список…..............................................................................31

Работа содержит 1 файл

KURSOVIKSE.docx

— 108.66 Кб (Скачать)

Рисунок 1 - Компоненты Dialog

 

3.1 Компоненты закладки Dialog

    

Компоненты закладки Dialog (Рис. 1) позволяют создавать диалоги с пользователем программы.

Диалоги придают программе гибкость и позволяют пользователю манипулировать объектами программы во время  ее работы. Закладка содержит десять компонентов  стандартных диалогов: 
   • OpenDialog (диалог открытия) позволяет создать в программе диалог открывания файлов. Данный диалог имеет возможность установки фильтров на имя и расширение открываемых файлов. 
   • SaveDialog (диалог сохранения) создает в программе диалог с возможностью выбора в программе имени файла для сохранения. Данный диалог обычно используется в связке с компонентом OpenDialog. 
   • OpenPictureDialog (диалог открытия рисунка) предназначен для создания диалогов открытия файлов с графическим изображением. Он отличается от компонента OpenDialog возможностью предварительного просмотра файла изображения непосредственно в окне диалога. 
   • SavePictureDialog (диалог сохранения рисунка) создает диалог сохранения файла с изображением. Так же, как и OpenPictureDialog, имеет возможностью предварительною просмотра файла изображения непосредственно в окне диалога. 
   • FontDialog (диалог выбора шрифта) предоставляет возможность создания диалога для выбора шрифта текста в программе. 
   • ColorDialog (диалог выбора цвета) предназначен для создания диалога для выбора цвета из палитры цветов Windows. Полученный числовой параметр цвета после этого можно передать любому компоненту, имеющему свойство Color. 
   • PrintDialog (диалог выбора принтера) позволяет организовать в программе диалог выбора печатающего устройства из числа установленных на компьютере. Кроме того, данный диалог позволит задать число копий, выбрать или задать диапазон печатаемых страниц и т. п. 
   • PrinterSetupDialog (диалог установки принтера) создает в программе диалог настройки параметров печатающего устройства, к числу которых относятся выбор типа бумаги и ее ориентация, параметры отображения графики. 
   • FindDialog (диалог поиска) открывает в программе диалог поиска текста с возможностью настройки параметров поиска. 
   • Replace Dialog (диалог замены) открывает в программе диалог поиска текста с возможностью замены найденного фрагмента на заданный пользователем. Обладает всеми возможностями компонента FindDialog.

Кроме рассмотренных выше закладок с компонентами на палитре присутствует множество других закладок (Samples, Office2k, Internet Express, BDE, ADO и т. п.) для более сложных компонентов, используемых профессиональными программистами.

         

3.2 Диалоги открытия и  сохранения файлов

   

Компоненты OpenDialog — диалог «Открыть файл» и SaveDialog — диалог «Сохранить файл как...», пожалуй, используются чаще всего, в большинстве приложений. Примеры открываемых ими аналоговых окон приведены на рис. 3.1 и 3.2.

           

Рисунок 2.1 - Диалог "Открыть файл"

Рисунок 3.2 – Диалог «Сохранить»

Все свойства этих компонентов одинаковы, только их смысл несколько различен для  открытия и закрытия файлов. Основное свойство, в котором возвращается в виде строки выбранный пользователем  файл, — FileName. Значение этого свойства можно задать и перед обращением к диалогу. Тогда оно появится в диалоге как значение по умолчанию в окне Имя файла (см. рис. 3.1 и 3.2).

Типы  искомых файлов, появляющиеся в диалоге  в выпадающем списке Тип файла (рис. 3.1 и 3.2), задаются свойством Filter. В процессе проектирования это свойство проще всего задать с помощью редактора фильтров, который вызывается нажатием кнопки с многоточием около имени этого свойства в Инспекторе Объектов. При этом открывается окно редактора, вид которого представлен на рис. 3.3. В его левой панели Filter Name вы записываете тот текст, который увидит пользователь в выпадающем списке Тип файла диалога. А в правой панели Filter записываются разделенные точками с запятой шаблоны фильтра. В примере рис. 3.3 задано два фильтра: текстовых файлов с расширениями .txt и .doc и любых файлов с шаблоном *.*.

                      

                   

Рисунок 3.3 -  Окно редактора  фильтров

                             

 

3.3 Диалог выбора шрифта — компонент  FontDialog

 

Компонент FontDialog вызывает диалоговое окно выбора атрибутов шрифта, представленное на рис. 3.4. В нем пользователь может выбрать имя шрифта, его стиль (начертание), размер и другие атрибуты. 

Рисунок 3.4 - Диалоговое окно выбора атрибутов шрифта

 

Основное  свойство компонента — Font типа TFont, в котором вы можете задать при желании начальные установки атрибутов шрифта и в котором вы можете прочесть значения атрибутов, выбранные пользователем в процессе диалога.

Свойства MaxFontSize и MinFontSize устанавливают ограничения на максимальный и минимальный размеры шрифта. Если значения этих свойств равны 0 (по умолчанию), то никакие ограничения на размер не накладываются. Если же значения свойств заданы (обычно это целесообразно делать исходя из размеров компонента приложения, для которого выбирается шрифт), то в списке Размер диалогового окна (см. рис. 8.8) появляются только размеры, укладывающиеся в заданный диапазон. При попытке пользователя задать недопустимый размер ему будет выдано предупреждение вида «Размер должен лежать в интервале ...» и выбор пользователя отменится. Свойства MaxFontSize и MinFontSize действуют только при включенной опции fdLimitSize (см. ниже).

Свойство Device определяет, из какого списка возможных шрифтов будет предложен выбор в диалоговом окне: fdScreen — из списка экрана (по умолчанию), fdPrinter — из списка принтера, fdBoth — из обоих.

Свойство Options содержит множество опций:

  • fdAnsiOnly - Отображать только множество шрифтов символов Windows, не отображать шрифтов со специальными символами.
  • fdApplyButton - Отображать в диалоге кнопку «Применить» независимо от того, предусмотрен ли обработчик события OnApply
  • fdEffects - Отображать в диалоге индикаторы специальных эффектов (подчеркивание и др.) и список «Цвет».
  • fdFixedPitchOnly - Отображать только шрифты с постоянной шириной символов.
  • fdForceFontExist - Позволять пользователю выбирать шрифты только из списка, запрещать ему вводить другие имена.
  • fdLimitSize - Разрешить использовать свойства MaxFontSize и MinFontSize, ограничивающие размеры шрифта.
  • fdNoFaceSel - Открывать диалоговое окно без предварительно установленного имени шрифта.
  • fdNoOEMFonts - Удалять из списка шрифтов шрифты OEM.
  • fdScalableOnly - Отображать только масштабируемые шрифты, удалять из списка не масштабируемые (шрифты bitmap).
  • fdNoSimulations - Отображать только шрифты и их начертания, напрямую поддерживаемые файлами, не отображая шрифты, в которых жирный стиль и курсив синтезируется.
  • fdNoSizeSel - Открывать диалоговое окно без предварительно установленного размера шрифта.
  • fdNoStyleSel - Открывать диалоговое окно без предварительно установленного начертания шрифта.
  • fdNoVectorFonts - Удалять из списка векторные шрифты (типа Roman или Script для Windows 1.0).
  • fdShowHelp - Отображать в диалоговом окне кнопку «Справка».
  • fdTrueTypeOnly - Предлагать в списке только шрифты TrueType.
  • fdWysiwyg - Предлагать в списке только шрифты, доступные и для экрана, и для принтера, удаляя из него аппаратно зависимые шрифты.

По умолчанию все эти опции, кроме fdEffects, отключены. Если установить опцию fdApplyButton, то при нажатии пользователем кнопки «Применить» возникает событие OnApply, в обработчике которого вы можете написать код, который применит выбранные пользователем атрибуты, не закрывая диалогового окна.

Приведем примеры применения компонента FontDialog. Пусть ваше приложение включает окно редактирования Memo1, шрифт в котором пользователь может выбирать командой меню Шрифт. Вы ввели в приложение компонент FontDialog, имя которого по умолчаниюFontDialog1. Тогда обработчик команды Шрифт может иметь вид:

if  (FontDialog1->Execute()) Memo1->Font=FontDialog1->Font;

 

3.4 Диалоги печати и установки принтера

 

Компонент PrintDialog вызывает диалоговое окно печати, представленное на рис. 3.5. В нем пользователь может выбрать принтер и установить его свойства, указать число копий и последовательность их печати, печатать в файл или непосредственно на принтер, выбрать печатаемые страницы или печатать только выделенный фрагмент.

     

Рисунок 3.5 - Диалоговое окно настройки печати

 

 

Компонент PrintDialog не осуществляет печать. Он только позволяет пользователю задать атрибуты печати. А сама печать должна осуществляться программно с помощью объекта Printer или иным путем. Рассмотренные ранее диалоговые компоненты возвращали одно свойство — имя файла, цвет, или один объект — Font, содержащий множество свойств. В отличие от них компонент PrintDialog возвращает ряд свойств, характеризующих выбранные пользователем установки. Это следующие свойства:

  • PrintRange - Показывает выбранную пользователем радиокнопку из группы «Печатать»: prAllPages — выбрана кнопка «Все страницы», prSelection — выбрана кнопка «Страницы с ... по ...», prPageNums — выбрана кнопка «Страницы».
  • FromPage - Показывает установленную пользователем начальную страницу в окне «Страницы с ... по ...».
  • ToPage - Показывает установленную пользователем конечную страницу в окне «Страницы с ... по ...».
  • PrintToFile - Показывает, выбран ли пользователем индикатор «Печать в файл».
  • Copies - Показывает установленное пользователем число копий.
  • Collate - Показывает, выбран ли пользователем индикатор «Разобрать».

Теперь  остановимся на компоненте PrinterSetupDialog, вызывающем диалоговое окно установки принтера, представленное на рис. 3.6. Это единственный диалоговый компонент, не имеющий никаких специфических свойств, которые надо было бы устанавливать или читать. Диалог выполняет операции по установке принтера, на котором будет производиться печать, и задании его свойств. Этот диалог не возвращает никаких параметров. 

             

Рисунок 3.6 - Диалоговое окно установки принтера

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

4  Реализация программы в среде «С++ Builder 6»

    

Запускаем Borland C++ Builder 6 и создаем новый проект. Поскольку текстовый редактор предназначен для работы с текстовыми строками, нам понадобится компонент Memo из вкладки Standard. Помещаем его в центре формы проекта. Теперь помещаем на форму компонент MainMenu из той же вкладки и добавляем кнопки «Сохранить», «вставить» и так далее. Они понадобятся для формирования в программе органов управления для открытия и сохранения файлов и для других функций. Поскольку редактор должен при открытии и сохранении файлов обращаться к дисковым накопителям, необходимо добавить на форму диалоги Open Dialog и Save Dialog из вкладки Dialogs. Кроме того, добавляем на форму диалог Font Dialog из этой же вкладки. Он облегчит нам задачу настройки шрифтов из программы. Эти компоненты являются невидимыми при работе программы, поэтому место их размещения на форме не имеет значения. Но все же лучше располагать такие компоненты без наложения, для того чтобы они не скрывали друг друга.

Теперь  приступим к изменению свойств  компонентов. Начнем с компонента Memo, выбрав его в инспекторе объектов. Вначале удалим надпись Memo1 с компонента, для того чтобы она не появлялась при запуске приложения. Для этого изменим свойство Lines, щелкнув по кнопке с тремя точками правее надписи Tstrings этого свойства. При этом откроется окно редактора строки String List Editor, в котором необходимо удалить строку Memo1 и нажать кнопку ОК. Далее растягиваем Memo1 на всю клиентскую область, для этого в свойстве Align выбираем AlClient.

Настройку главного меню произведем с помощью  дизайнера меню, вызываемого двойным  щелчком левой кнопки мыши по компоненту MainMenu. Ранее мы уже ввели один пункт меню под названием «Файл». Следующий по горизонтали пункт меню назовем «Правка». Теперь заполним пункты меню по вертикали. Щелкаем левой кнопкой мыши по пункту меню «Файл», а затем ниже него по пустому полю. Свойство Caption этого пункта меню изменяем на «Открыть» и нажимаем клавишу <Enter>. Следующий пункт называем «Сохранить». Аналогично расширяем по вертикали пункты меню «Правка», добавив пункты: «Копировать», «Вставить», «Вырезать», «Удалить». 
На этом этап создания главного меню программы редактора завершен. Все введенные пункты меню теперь будут присутствовать в приложении, но пока не будут выполняться, поскольку не созданы функции для выполнения соответствующих команд. Создаем их. Для этого воспользуемся компонентами диалогов, помещенных ранее на форму приложения. С помощью диалогов работы с файлами можно задать направленность приложения путем определения типов открываемых файлов. Это делается с помощью свойства Filter.

Выбираем в инспекторе объектов компонент OpenDialog1 и нажимаем кнопку с тремя точками правее свойства Filter. При этом появится диалоговое окно Filter Editor, в котором производится настройка типов файлов. Окно разбито на два поля. В левом поле Filter Name вводятся строки пояснения. В правом поле Filter — расширения файлов. Для указания нескольких типов файлов необходимо записать их через точку с запятой. Если задать несколько строк с пояснениями и типами файлов, то при работе приложения их можно будет выбирать с помощью выпадающего списка. Заполняем оба поля диалогового окна Filter Editor в соответсвии с рисунком 4 и нажимаем ОК. 

                     

Рисунок 4 -  Окно редактора фильтров

Аналогично выполняем настройку компонента SaveDialog1. Для корректности работы приложения оба эти диалога должны иметь одинаковую настройку свойства Filter. Чтобы облегчить эту работу и избежать ошибок, можно использовать два способа. Первый способ уже был показан ранее, когда несколько компонентов кнопок выделялось в группу и задавалось свойство одновременно для всех выделенных компонентов. Второй способ заключается в том, что, задав свойство для одного из компонентов, можно скопировать и вставить его для других компонентов с помощью комбинации клавиш <Ctrl>+<C> и <Ctrl>+<V> соответственно. Так, после задания свойства Filter компонента OpenDialog1 с помощью Filter Editor в поле этого свойства появится запись: Текстовые файлы |*.txt *.doc|, Все файлы |*.*|. Выделив эту строку с помощью клавиш <Ноmе> и <Shift>+<End>, скопируем ее с помощью клавиш <Ctrl>+<C>. Теперь можно вставить эту строку в свойство Filter для компонента SaveDialog1. Замечательно то, что работу этих компонентов можно проверить еще до выполнения программы. Дело в том, что после задания свойства Filter этих компонентов двойной щелчок по компонентам приводит к открытию диалога на основе заданных свойств. Например, после двойного щелчка по компоненту SaveDialog1 откроется окно, изображенное на рисунке 4.1.

Информация о работе Разработка текстового редактора в С++ Builder