Текстовый редактор


Содержание

 

 

Введение……………………………………………………………………………..….3

1. Теоретическая часть…………………………….…………………………………4

1.1 Общее описание среды Delphi…….……………………………………………..5

1.2 Методика решения задачи ……..………………………………………………11

1.3 Общее описание работы программы…………………………...……...….…….11

1.4 Недостатки и достоинства программы………………..………………...….……11

2.Практическая часть……………………………………………………...….….…15

3.Заключение…………………………………………………………………………23

4.Список литературы………………………………………………………....………25

5.Листинг программы…………………………………………………………...…….26

 

Введение

 

  Цель данной курсовой работы: разработать программу формирования текста из исходного текстового файла по заданным параметрам образца. Перенос строк осуществлять по границе слова. Предусмотреть возможности:

  • изменения шрифта;
  • изменение размера шрифта;
  • типа выравнивания;
  • цвета текста и фона;
  • сохранения текста в файл;
  • открытие текстового файла
  • поиска и замены текстового фрагмента.

Данную программу возможно реализовать на любом из известных языков программирования, и для закрепления и усовершенствования своих практических навыков разработки алгоритмов, написания и отладки программ на языке программирования Delphi я использовал среду разработки Borland Delphi 7.

Поставленная  передо мной задача посвящена редактированию текста. Редактирование текста является очень важной частью оформления документов.

Разрабатываемая программа  – «Текстовый редактор» не является какой-то сверхновой программой и на сегодняшний день имеет огромное количество подобных приложений, разработанных  как отдельными людьми, так и целыми корпорациями.

В данной курсовой работе стоит задача, даже не повторить  их, а всего лишь проработать некоторые  функции работы с текстом. В результате работы должна получиться программа, которой, в принципе, можно пользоваться в повседневной жизни в качестве замены встроенного редактора «WordPad».

Также в данном приложении используется ещё одно дополнительное окно с календарем и электронными часами, где пользователь может посмотреть текущую дату и узнать время.

Теоретическая часть

 

Delphi – это потомок среды программирования Turbo Pascal. Название среды произошло от названия города в Древней Греции, где находился знаменитый Дельфийский оракул (храм Аполлона в городе Дельфы, жрецы которого занимались предсказаниями).

Система визуального объектно-ориентированного проектирования Delphi позволяет:

  1. Создавать законченные приложения для Windows самой различной направленности.
  2. Быстро создавать профессионально выглядящий оконный интерфейс для любых приложений; интерфейс удовлетворяет всем требованиям Windows и автоматически настраивается на ту систему, которая установлена, поскольку использует функции, процедуры и библиотеки Windows.
  3. Создавать свои динамически присоединяемые библиотеки компонентов, форм, функций, которые потом можно использовать из других языков программирования.
  4. Создавать мощные системы работы с базами данных любых типов.
  5. Формировать и печатать сложные отчеты, включающие таблицы, графики и т.п.
  6. Создавать справочные системы, как для своих приложений, так и для любых других.
  7. Создавать профессиональные программы установки для приложений Windows, учитывающие всю специфику и все требования операционной системы.

Delphi – быстро развивающаяся система. Первая версия Delphi была выпущена в феврале 1995 года, в 1996 году вышла вторая версия, 1997 – третья, 1998 – четвертая, 1999 – пятая, 2001 – шестая. Все версии, начиная с Delphi 2.0, рассчитаны на разработку 32-разрядных приложений, т.е. приложений для операционных систем Windows 95/98, NT и т.д. В 2002 году вышла седьмая версия, основным нововведением в которой были Интернет-технологии.

 

Общее описание среды Delphi

Интегрированная среда разработки Delphi – это среда, в которой есть все необходимое для проектирования, запуска и тестирования создаваемых приложений. Большинство версий Delphi выпускается в нескольких вариантах: а) стандартная, б) профессиональная версия, в) разработка баз данных предметных областей. Эти варианты различаются, в основном разным уровнем доступа к системам управления базами данных. Последние два варианта являются наиболее мощными в этом отношении. Библиотеки компонентов в различных вариантах практически одинаковы.

  1. Верхней части окна среды отображается полоса главного меню. Назначение каждого пункта меню можно уточнить в справочной системе Delphi. Для получения справки следует выбрать интересующий пункт меню и нажать клавишу F1. Выбор команды меню выполняется любым из стандартных способов: F10, Alt+горячая клавиша или щелчком мыши на нужном пункте меню.

Назначение  команд меню представлены в таблице:

Таблица 1 – Команды меню

Раздел меню

Назначение

1) Меню File (Файл)

Разделы меню позволяют создавать  новый проект, новую форму, открыть  ранее созданный проект или форму, сохранить проекты или форму  в файлах с заданными именами.

2) Меню Edit (Правка)

Разделы этого меню позволяют выполнять обычные для приложений Windows операции с буфером обмена, а также дают возможность выравнивать группы размещенных на форме компонентов по размерам и местоположению.

3) Меню Search (Поиск)

Разделы этого меню позволяют осуществлять поиск фрагментов текста, ошибок, объектов, модулей, переменных и символов в редакторе кода.

4) Меню View (Вид)

Разделы этого меню позволяют вывести  на экран или скрыть различные  элементы среды проектирования и  открыть окна, связанные с интегрированным  отладчиком.

5) Меню Project (Проект)

Разделы меню позволяют добавлять  и удалять из проекта формы, задавать опции проекта, компилировать проект без его выполнения, дать информацию о размерах приложения.

6) Меню Run (Выполнить)

Предоставляет возможность выполнять  проект в нормальном или отладочном режимах, по шагам, останавливаясь в указанных точках, просматривая значения переменных и т.д.

7) Меню Component (Компонент)

Содержит раскрывающееся меню, которое  позволяет работать с компонентами: создавать новые компоненты, изменять палитру компонентов и т.п.

8) Меню Database (База данных)

Раздел меню позволяет использовать инструментарий для работы с базами данных.

9) Меню Tools (Сервис)

Включает ряд разделов, позволяющих  выполнять различные вспомогательные  программы: редактор изображений, программы, конфигурирующие базы данных и сети и т.п.

10) Меню Windows (Окно)

Содержит список открытых окон среды  и предоставляет возможность  перехода из одного окна в другое.

11) Меню Help (Помощь)

Содержит разделы, помогающие работать со справочной системой среды программирования Delphi.


 

  1. Ниже полосы главного меню расположены две инструментальные панели. Левая панель (состоящая, в свою очередь, из трех панелей) содержит два ряда кнопок, дублирующих некоторые наиболее часто используемые команды меню (открыть, сохранить, сохранить все и т.д.). Правая панель содержит панель библиотеки визуальных компонентов (или палитра). Палитра компонентов содержит ряд страниц, закладки которых видны в ее верхней части. Страницы сгруппированы в соответствии с их смыслом и назначением. Поскольку число предоставляемых компонентов растет от версии к версии, то остановимся на основных (12 страниц).
  2. Основные Палитры компонентов представлены в таблице:

Таблица 2 – Палитра компонентов

Палитра компонентов

Назначение

1. Палитра компонентов Standard (Стандартная)

Большинство компонентов на этой странице являются аналогами экранных элементов  операционной системы Windows: меню, кнопки, полосы прокрутки, панели и т.п. Имена компонентов можно узнать из всплывающей подсказки. Назначение компонентов можно уточнить, используя систему контекстной справки Delphi.

2. Палитра компонентов Additional (Дополнительная)

Содержит более развитые компоненты: а) воспроизведение звука, музыки и  видео; б) отображение графической  информации.

3. Палитра компонентов System (Системная)

Предоставляет возможность объединять отдельные элементы, такие как  списки каталогов и файлов, а также  генерировать события через определенные промежутки времени.

4. Палитра компонентов Win32

Содержит компоненты, позволяющие созданным программам использовать интерфейс Windows.

5. Палитра компонентов Dialogs (Диалоговая)

Содержит стандартные диалоговые окна для операций над файлами, поиска и замены текста, выбор шрифтов, цветов и т.д.

6. Палитра компонентов Data Access, Data Controls (Сервис баз данных)

Использует механизм баз данных для организации доступа к  файлам баз данных различных форматов.

7. Палитра компонентов QReport (Отчеты)

Предоставляет компоненты для визуального  проектирования отчетов баз данных.

8. Палитра компонентов Servers (Сервис)

Предоставляет компоненты-наследники для доступа ко всем серверным  объектам Microsoft Office.

9. Палитра компонентов Samples (Примеры)

Содержит компоненты-примеры, которые  можно добавлять в собственные  приложения.

10. Палитра компонентов Internet

Предоставляет компоненты для разработки приложений, позволяющих создавать  HTML-файлы непосредственно из файлов баз данных и других типов, взаимодействующих с другими приложениями для Интернета.


  1. Правее полосы главного меню располагается еще одна небольшая инструментальная панель, содержащая раскрывающийся список и две кнопки. Эта панель служит для сохранения и выбора различных конфигураций окна среды, которые можно создавать и запоминать.
  2. Под палитрой компонентов располагается окно формы с размещенными на ней компонентами. Форма является основой почти всех приложений Delphi. Форму можно понимать как типичное окно Windows. Она обладает теми же свойствами, что и другие окна. Во время проектирования форма покрыта сеткой из точек. В узлах этой сетки размещаются те компоненты, которые помещены на форму. Во время выполнения приложения эта сетка не видна.
  3. В основном поле окна слева находится окно Инспектора объектов, с помощью которого в дальнейшем можно задавать свойства компонентов и обработчики событий. Инспектор объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения активного компонента. Первая страница – это Свойства, вторая – События.

Рассмотрим  некоторые свойства любого компонента:

Таблица 3 –  Свойства компонентов

Свойство

Назначение

Caption (надпись)

Название компонента

Color

Цвет поверхности компонента

Font Color

Цвет шрифта

Font Height

Высота шрифта

Font Name

Имя шрифта

Font Size

Размер шрифта

Style fsBold

Стиль надписи на компоненте – Жирный

Style fsItalic

Стиль надписи на компоненте –  курсив

Style fsUnderline

Стиль надписи на компоненте –  подчеркивание

Style fsStrikeOut

Стиль надписи на компоненте –  зачеркивание


Каждый компонент имеет свой набор свойств, который соответствует назначению этого компонента.

Страница Событий – вторая часть Инспектора объектов. На ней указаны все события, на которые может реагировать выбранный объект.

  1. Одним из наиболее важных элементов среды Delphi является окно Редактора кода. Оно располагается ниже окна формы, обычно при первом взгляде на экран невидимо, т. к. его размер равен размеру формы и окно Редактора кода практически полностью перекрывается окном формы. Редактор кода является полноценным программным редактором. В заголовке окна редактора кода отображается имя текущего файла, с текстом которого производится работа (стандартное имя – Main.pas). В нижней части окна Редактора кода располагается строка состояния. В самой левой ее позиции отображается позиция курсора: номер строки и колонки.
  2. Выше окна Инспектора объектов расположено окно Дерево объектов, которое отображает структуру компонентов приложения с точки зрения их принадлежности друг к другу.

Примечание: Страница событий связана с Редактором кода, если дважды щелкнуть мышью по правой стороне какого либо пункта, то соответствующий данному событию код будет автоматически помещен в окно Редактора кода.

Методика  решения задачи

Разобьем поставленную перед нами задачу на отдельные подзадачи:

  1. Создание меню программы.
  2. Вывод на экран справки, содержащей руководство по управлению и информацию об авторе.

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

 Программа содержит в своем составе все необходимые пакеты для работы независимо от Borland Delphi 7. Запуск производится по открытию файла Project1.exe Сразу после этого без промедления открывается главное окно программы (см. рисунок 1)

Рисунок 1 - Главное окно приложения

В этом окне расположены  основные средства управления программой.

Непосредственно в работе с текстом участвует форма  «Справка», представленная на рисунке 2. Текст справки находиться в дочерней форме Form4 по отношению к главной (Form1).

Рисунок 2 – Вспомогательная  форма «Справка»

Из рисунка 1 видно, что  на нашей главной форме приложения можно непосредственно редактировать текст документа, оформляя его по своему желанию необходимым образом. В верхней части программы находятся две панели: панель инструментов Panel1 и панель редактирования Panel2, на которых располагаются кнопки типа SpeedButton, с функциями, соответствующими техническому заданию.

Аппаратно-системные  требования

Минимальные системные требования:

  • IBM PC: MS Windows 98 и выше;
  • процессор Pentium 2 – 400МГц;
  • 64 Мб ОЗУ;
  • SVGA – карта (800х600, 65536 цветов);
  • Клавиатура;
  • Мышь

Все файлы должны лежать в одной  папке и запускаться оттуда.

Руководство пользователя

Данная программа представляет собой текстовый редактор, предназначенный для набора, редактирования и форматирования текста. Сначала необходимо скопировать все файлы, входящие в программный пакет на жесткий диск (все файлы должны находиться в одной папке). Для начала работы с программой следует запустить файл Project1.exe, после чего появится сразу главная форма с полем для редактирования. Затем выбирайте нужные для вас действия, следуя всплывающим подсказкам, и подсказкам появляющимся в строке состояния.

Текст можно вводить как с  клавиатуры, так и из файла.

Для того, чтобы прочитать руководство  пользователя выберите пункт меню «? | Справка».

Для выхода из программы выберите пункт меню «Файл | Выход.

Для сохранности и успешной работы программы не рекомендуется вносить какие-либо изменения в файлы программного пакета, а также следует хранить эти файлы и запускать программу из одной папки.

 

Недостатки и достоинства  программы

У программы можно найти следующие  достоинства: низкие системные и аппаратные требования, имеет простой алгоритм, по размеру значительно мала, приличная скорость работы. Программа не представляет сложности для пользователя и имеет практически все возможности редактирования текста.

Недостатком программы является отсутствие настроек параметров страницы. Нет предварительного просмотра для отправки на печать.

Также недостатком можно считать  отсутствие выбора кодировки и отсутствие синтаксической подсветки.

Таким образом, у разработанной  программы есть несколько способов дальнейшего усовершенствования, после которого программа бы избавилась от вышеописанных недостатков.

 

 

 

 

 

 

 

 

 

 

 

 

 

Практическая часть

Для создания многооконного  приложения требуется следующее:

а) создать главную форму

б)  создать несколько дочерних форм.

1. Создадим новый проект:File->New->Application.

2. Появиться форма Form1, которая будет в нашем приложении основной. Для того,чтобы сделать её основной изменим свойство на вкладке Properties - FormStyle на fsMDIForm.

3. На основной форме приложения создадим меню, используя компонент на вкладке Standard – Main Menu. Для этого добавим его на форму и изменим его вид. Добавим пункты меню с названием будущих дочерних форм: «Текстовый редактор»,  «Календарь-часы». А также добавим пункт меню Выход, который будет осуществлять выход из приложения.

4. Добавим в пунктах  меню «Текстовый редактор», «Календарь-часы»  2 подпункта: «Открыть», для открытия каждой формы приложения.И пропишем для них код:

Application.CreateForm(TForm2,Form2);

Application.CreateForm(TForm3,Form3).

              5. Создадим фон главной формы. Для этого добавим компонент с вкладки Additional – Image на форму. Изменим свойство данного компонента – Picture, загрузим картинку для нашего фона соответствующую её размеру. Также добавим надпись для приветствия пользвователя, используя компонет Label.

             В результате всех вышеперечисленных  действий получиться основная  форма приложения:

6.    Далее создадим дочернюю формы: Form2(File->New->Form).

7.  На открывшейся форме Form2(«Текстовый редактор») создадим стандартные пункты меню: «Файл», «Правка», «Опции» и «О приложении».

8. Для пункта меню  «Файл» создадим подпункты: «Открыть», «Сохранить», «Печать», «Выход».

9. Для пункта меню  «Правка» создадим подпункты: «Очистить», «Отменить»,  «Копировать»,  «Вставить»,  «Вырезать».

10.  Для пункта меню  «Опции» создадим подпункты: «Шрифт», «Цвет», «Поиск».

11. Для пункта меню  «О приложении» создадим подпункты: «Об авторе», «Справка».

12. Поместим на форму Form2 компонент Richedit, который находиться на вкладке Win32.

13. Создадим панель инструментов. Для этого добавим «быстрые» кнопки – компонент SpeedButton с вкладки Additional.Для каждого такого компонента пропишем код для связи с некоторыми подпунктами меню. Например для подпункта меню «Открыть» :

procedure TForm2.SpeedButton1Click(Sender: TObject);

begin

N2Click(sender);

end;

Анологично пропишем коды для остальных подпунктов.

14. Для работы некоторых  подпунктов используем компоненты  со вкладки Dialogs – OpenDialog, SaveDialog, FontDialog, ColorDialog.

Рассмотрим каждый подпункт меню отдельно:

1) Открыть:

procedure TForm2.N2Click(Sender: TObject);

begin

if OpenDialog1.Execute then

RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);

end;

2) Сохранить:

procedure TForm2.N3Click(Sender: TObject);

begin

if SaveDialog1.Execute then

RichEdit1.Lines.SaveToFile(SaveDialog1.FileName);

end;

3) Печать:

procedure TForm2.N11Click(Sender: TObject);

begin

with printer do begin

begindoc;

CanvasFont:=RichEdit1.Font;

Canvas.TextOut(100,100,richedit1.text);

enddoc;

end;

4)Выход:

procedure TForm2.N4Click(Sender: TObject);

begin

Form2.Close();

end;

5) Очистить:

procedure TForm2.N7Click(Sender: TObject);

begin

RichEdit1.Lines.Clear;

           end;

           6) Отменить:

procedure TForm2.N10Click(Sender: TObject);

begin

Richedit1.Undo

end;

7) Копировать:

procedure TForm2.N12Click(Sender: TObject);

begin

Richedit1.CopyToClipboard;

end;

8) Вставить:

procedure TForm2.N13Click(Sender: TObject);

begin

Richedit1.PasteFromClipboard;

end;

9) Вырезать:

procedure TForm2.N14Click(Sender: TObject);

begin

Richedit1.CutToClipboard;

end;

10) Шрифт:

procedure TForm2.N6Click(Sender: TObject);

begin

if FontDialog1.Execute then

RichEdit1.SelAttributes.Assign(fontdialog1.font);

RichEdit1.SetFocus;

end;

11) Цвет:

procedure TForm2.N17Click(Sender: TObject);

begin

if ColorDialog1.Execute then

begin

RichEdit1.Font.Color:=ColorDialog1.Color;

end;

end;

12) Поиск:

procedure TForm2.N18Click(Sender: TObject);

var // Объявляем переменные

Find:string; // Искомая строка

i:integer; // Счетчик для  цикла

begin

find:=Edit1.Text; // Записываем в find текст из Edit

For i:=0 to RichEdit1.Lines.Count-1 do // Запускаем цикл поиска строки

If Pos(FIND, RichEdit1.Lines.Text)<>0

Then

Begin

RichEdit1.SetFocus();

RichEdit1.SelStart:=Pos(FIND,RichEdit1.Lines.Text)-1;

RichEdit1.SelLength:=Length(FIND);

End;

end;

13) Об авторе:

procedure TForm2.N9Click(Sender: TObject);

begin

ShowMessage('Автор данной  программы студент группы 10-ИСТ      Насретдинов А.И.');

end;

После перечисленных  действий в п.6-14 получиться следующая  форма:

15. Перейдём к созданию дочерней формы Form3(«Календарь-часы»):File->New->Form.

16.Добавим на форму  компонент Label с вкладки Standard.Изменим свойство Caption данного компонента на: 00:00:00.Также добавим компонент Timer c вкладки System на форму. Пропишем код для вывода времени на компоненте Label:

procedure TForm3.Timer1Timer(Sender: TObject);

begin

Label1.Caption:=timetostr(time)

end;

17.Для создания графического  календаря потребуются следующие  компоненты: DateTimePicker, MonthCalendar и ImageList со вкладки Win32, а также компонент Image с вкладки Additional.Также необходимо в рабочую папку программы переместить графические файлы формата .jpg для иллюстраций календаря.

18. Рассмотрим каждый из перечисленных выше компонентов в отдельности:

1) Добавим на форму Form3 компонент ImageList. Опишем для правильной работы компонента массив MontSt,который будет содержать в себе графические файлы формата .jpg:

const

MonthSt : array[0..11] of String = (

    '1', '2', '3', '4', '5', '6',

    '7', '8', '9', '10', '11', '12');

2) Добавим на форму компонент Image.Создадим  процедуру SetImage для загрузки картинок на компонент Image:

procedure TForm3.SetImage;

var

  St : String;

begin

  St := MonthSt[MonthOf(DTP.Date) - 1] + '.jpg';

  if FileExists(St) then

    Image1.Picture.LoadFromFile(St);

end;

procedure TForm3.FormCreate(Sender: TObject);

begin

SetImage;

end;

3) Добавим на форму Form3 компонент DateTimePicker.В событии компонента OnChange пропишем код:

procedure TForm3.DTPChange(Sender: TObject);

begin

Month.Date := DTP.Date;

  SetImage;

end;

4) Добавим на форму Form3 компонент MonthCalendat.Пропишем для него код в событии OnClick:

procedure TForm3.MonthClick(Sender: TObject);

begin

DTP.Date := Month.Date;

SetImage;

end;

После перечисленных  действий в п.15-18 получиться следующая форма:

Заключение

 

В результате выполнения курсового  проекта была разработана программа, демонстрирующая пример текстового редактора. В программе были использованы основные типы данных, структуры данных, а также программа строилась по модульному принципу.

В результате проделанной  работы был повторен и использован  при разработке программы пройденный материал по программированию в среде  разработки Borland Delphi 7.

Достаточно интересно было работать над самой поставленной задачей. Во время работы был прочитан материал, связанный непосредственно с языком программирования Delphi

 

 

Список использованной литературы

  1. Сван Т. Основы программирования в Delphi для Windows 95: Пер. с англ. - К: «Диалектика», 1996. -480 с.
  2. Федоров А. Г. Создание Windows-приложений в среде Delphi: - М.: ТОО фирма «КомпьютерПресс», 1995. -287 с., ил.

Учебный курс лекций – практик.

 

Листинг программы

unit Unit1;

 

interface

 

uses

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

  Dialogs, Menus, ComCtrls, StdCtrls, ExtCtrls, MPlayer, jpeg;

 

type

  TForm1 = class(TForm)

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N5: TMenuItem;

    N7: TMenuItem;

    Label1: TLabel;

    Image1: TImage;

    procedure N3Click(Sender: TObject);

    procedure N5Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure N7Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

uses Unit2,Unit3;

 

{$R *.dfm}

 

procedure TForm1.N3Click(Sender: TObject);

begin

Application.CreateForm(TForm2,Form2);

end;

 

procedure TForm1.N5Click(Sender: TObject);

begin

Application.CreateForm(TForm3,Form3);

end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

  

label1.Caption:=TimeToStr(GetTime);

end;

 

procedure TForm1.N7Click(Sender: TObject);

begin

Form1.Close();

end;

 

end.

unit Unit2;

 

interface

 

uses

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

  Dialogs, StdCtrls, Menus, ComCtrls, Buttons;

 

type

  TForm2 = class(TForm)

    RichEdit1: TRichEdit;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;