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


1 Введение

Delphi (Дельфи) — Среда программирования, использующая  язык Object Pascal, разработанный фирмой Borland и изначально реализованный  в её пакете Borland Delphi, от которого  и получил в 2003 году своё  нынешнее название. По сути, является наследником языка Pascal с объектно-ориентированными расширениями. Свою историю язык Object Pascal ведет с первых Turbo Pascal `ей разработанных Николасом Виртом.

Язык Pascal, полностью процедурный язык, был  разработанН. Виртом в конце 70-х годов  в Швейцарской высшей технической  школе вг. Цюрихе,как хорошо структурированный  учебный язык. Расширения, привнесенные в язык компанией Borland, преследовали две основные цели:

- упрощение  обработки в языке структур, представляющих  наиболее распространенные типы  данных строки и файлы (например, в язык был внесен новый  тип данных string);

- реализация  в языке основных возможностей  объектно-ориентированных языков  программирования.

Последнее нововведение потребовало серьезной  доработки синтаксиса языка. В него были внесены новые ключевые слова, синтаксические конструкции и типы данных. Однако предложенный вариант  языка нельзя признать удачным, хотя бы потому, что в нем не полностью  реализованы все механизмы объектно-ориентированного программирования. Например: отсутствуют  такие мощные средства, как исключения и шаблоны. Есть и другие сложности  в использовании языка.

Pascal был  уникальным в своём роде - он  имел самый быстрый компилятор  в мире, да и в нем впервые  была разработана технология  создания платформенно независимых  программ, которая нашла широкое  применение в таком языке, как  Java. Своё имя он получил в  честь великого французкого физика  Блеза  Паскаля. Позднее, разработкой Pascal  занялась компания Borland, с помощью которой Pascal встал на серийное производство. Надо заметить, что кроме Turbo Pascal компанией выпускался Borland Pascal, который выходил в свет несколько позднее чем Turbo Pascal, но в отличие от него обладал большими способностями, как то различные режимы компиляции программы, более расширенный набор функций. Так, версия за версией было выпущено семь Turbo и Borland 

Pascal.

С появлением Windows у Pascal  появилась новая разновидность - Turbo & Borland Pascal for Windows. Данная программа была не чуть не лучше обыкновенного блокнота, разве что только цифры отображала синим. Но время шло, требования к качеству оформления программ росли, а языки программирования оставались всё теми же - Dos`овскими.

И вот, наконец, компанией Microsoft был совершен переворот  в области прикладного программирования - ими впервые была создана визуальная система разработки прикладных программ, которую они реализовали в Visual Basic. К новому стандарту стали  приобщать все языки программирования, не избежал своей участи и Pascal. В  тот момент, когда разработчики Pascal  в компании Borland, наконец,  добрались до него - находился он довольно в запущенном состоянии. Было пересмотрено и переработано множество функций, добавлено, а вернее сказать создано, многое. И в итоге внесения оказались столь колоссальными, что разработчики создали, можно сказать, новый язык программирования. Своё имя новая система (Delphi) получила в честь древнегреческого города Дельфы. Название было выбрано не спроста: город Дельфы связан с именем бога мудрости и покровителем искусств Аполлона. Согласно легенде главное святилище Аполлона находилось именно в этом городе. Его жрицы-сивиллы изрекали пророчества желающим узнать свою судьбу. Вот что отметил руководитель исследовательной группы по разработке системы Delphi  Чак Язджевски: «Имя Delphi было предложено Денни Торпом во время одной мозговой атаки. Мы хотели, чтобы в имени системы отразились уникальные способности продукта к работе с базами данных, и Delphi как нельзя лучше перекликается с таким заслуженным именем в этой области, как Oracle, по крайней мере для тех, кому сочетание "Дельфийский Оракл" о чем-то говорит».

Так каждый год появлялась новая версия Delphi, но после пятой что-то случилось и новая версия не появилась в срок. Оказалось, что

параллельно с разработкой новой версии Delphi, велась разработка нового, Delphi-подобного  языка программирования для Linux. Новый  продукт получил название Kylix.

Delphi оказал  огромное влияние на создание  концепции языка C# для 

 платформы  .NET. Многие его элементы и концептуальные  решения вошли в состав  С#. Одной из причин называют переход  Андерса Хейлсберга, одного из ведущих разработчиков Delphi, из компании Borland Ltd. в Microsoft Corp.

Версия 1 была предназначена для разработки под 16-ти разрядную платформу Win16; Версии со второй компилируют программы  под 32-х разрядную платформу Win32; Вместе с 6-й версией Delphi вышла совместимая  с ним по языку и библиотекам  среда Kylix, предназначенная для компиляции программ под операционную систему Linux; Версия 8 способна генерировать байт-код  исключительно для платформы .NET.Это  первая среда, ориентированная на разработку мульти язычных приложений (лишь для  платформы .NET); Последующие версии (обозначаемые годами выхода, а не порядковыми  номерами, как это было ранее) могут  создавать как приложения Win32, так  и байт-код для платформы .NET; Delphi for .NET — среда разработки Delphi, а  так же язык Delphi (Object Pascal), ориентированные  на разработку приложений для .NET. Первая версия полноценной среды разработки Delphi для .NET — Delphi 8. Она позволяла  писать приложения только для .NET.

В настоящее  время, в Delphi 2006, можно писать приложения для .NET используя стандартную библиотеку классов .NET, VCL для .NET. Среда также  позволяет писать NET-приложения на C# и Win32-приложения на C++. Delphi 2006 содержит функции для написания обычных  приложений с использованием библиотек VCL и CLX. Delphi 2006 поддерживает технологию MDA с помощью ECO (Enterprise Core Objects) версии 3.0. В марте 2006 года компания Borland приняла решение о прекращении дальнейшего совершенствования интегрированных сред разработки JBuilder, Delphi и C++Builder по причине убыточности этого направления. Планируется продажа IDE-сектора компании. Группа сторонников свободного программного обеспечения организовала сбор средств для покупки у Borland прав на среду разработки и компилятор.  Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой IDE продуктов теперь будет заниматься новая компания — CodeGear, которая будет финансово полностью подконтрольна Borland. Borland продолжил развитие IDE систем под именем Turbo: Turbo Delphi, Turbo Delphi for 

.NET, Turbo C#, Turbo C++. А в марте 2007 года CodeGear порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP.

В России Borland Delphi появляется в конце 1993 г. и  сразу же завоевывает широкую  популярность. Новые версии выходят  практически каждый год. В них  реализуются все новые мастера, компоненты и технологии программирования. Действительно, процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию

интерфейса, на который уходит 80% времени разработки программы. Вы просто помещаете нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настраиваете их свойства с помощью специального инструмента (Object Inspector). С его помощью  можно связать события этих компонентов (нажатие на кнопку, выбор мышью  элемента в списке и т.д.) с кодом  его обработки - и вот простое  приложение готово. Причем разработчик  получает в свое распоряжение мощные средства отладки (вплоть до пошагового выполнения команд процессора), удобную  контекстную справочную систему (в  том числе и по Microsoft API), средства коллективной работы над проектом, всего просто не перечислить. Вы можете создавать компоненты ActiveX без использования Microsoft IDL, расширять возможности web-сервера (скрипты на стороне сервера), практически  ничего не зная об HTML, XML или ASP. Можно  создавать распределенные приложения на базе СОМ и CORBA, Интернет- и internet-приложения, используя для доступа к данным Borland DataBase Engine, ODBC-драйверы или Microsoft ADO. Появившаяся, начиная с Delphi 3, поддержка многозвенной технологии (multi-tiered) доступа к данным позволяет создавать масштабируемые приложения (относительно слабо зависящие от сервера БД) за счет

 перенесения  методов обработки информации (бизнес-правил) на среднее звено.

Как уже  говорилось ранее, в Delphi используется язык Object Pascal, который постоянно расширяется и дополняется Borland. Язык в полной мере поддерживает все требования, предъявляемые к объектно-ориентированному языку программирования. Как и положено строго типизированному языку, классы поддерживают только простое наследование, но зато интерфейсы могут иметь сразу несколько предков. 

К числу  особенностей языка следует отнести  поддержку обработки исключительных ситуаций (exceptions), а также перегрузку методов и подпрограмм (overload) в  стиле C++.

К числу  удачных, на взгляд автора, относится  также поддержка длинных строк  в формате WideChar и AnsiChar. Последний  тип (AnsiString) позволяет использовать все прелести динамического размещения информации в памяти без всяких забот  о ее выделении и сборке мусора Delphi делает это автоматически. Для  поклонников свободного стиля программирования имеются открытые массивы, варианты и вариантные массивы, позволяющие  размещать в памяти все, что душе угодно и смешивать типы данных. Вы можете создавать свои собственные  компоненты, импортировать ОСХ-компоненты, создавать 

<шаблоны>  проектов и <мастеров>, создающих  <заготовки> проектов. Мало того, Delphi предоставляет разработчику  интерфейс для связи ваших  приложений (или внешних программ) с интегрированной оболочкой  Delphi (IDE). Таким образом, вы можете  использовать Delphi для создания как  самых простых приложений, на  разработку которых требуется  2-3 часа, так и серьезных корпоративных  проектов, предназначенных для работы  десятков и сотен пользователей.  Причем для этого можно использовать  самые последние веяния в мире  компьютерных технологий с минимальными  затратами времени и сил.

Так же одна из самых последних новостей от Inprise обещает, что в ближайшем будущем вы сможете переносить приложения, разработанные в Delphi, на платформу Linux.

 

2 АКТУАЛЬНОСТЬ  ЗАДАЧИ, СУТЬ ВЫПОЛНЕНИЯ ЗАДАЧИ

2.1 Постановка задачи

Целью курсовой работы является разработка текстового редактора. Текстовый редактор должен вводить текст, копировать, вставлять, вырезать и удалять текст, а так  же сохранять и открывать текст  в формате «TXT» и менять шрифт. Программа должна предоставлять пользователю удобный интерфейс. Интуитивно понятный и простой интерфейс должен стать визитной карточкой разрабатываемой программы.

Эта курсовая работа создавалась с  целью лёгкой и быстрой работы с текстом.

 

2.2 Формулировка задачи

Реализовать средствами языка программирования Delphi программу «Текстовый редактор». 

3 Компоненты Delphi используемые в программе

Memo 
MainMenu 
FontDialog 
OpenDialog 
SaveDialog 
ListBox 
WebBrowser

 

4 Описание компонентов

4.1 MainMenu  

Компонент Delphi MainMenu предназначен для добавления к программе главного меню, элемента, без которого не обходится ни одно из приложений для Windows.

Чтобы добавить к программе Delphi главное меню, нужно  разместить на Форме в произвольном месте компонент MainMenu. Компонент MainMemu не визуальный, то есть, хотя и отображается на прототипе Формы как небольшой квадрат, в работающей программе не будет виден. Опции главного меню создаются с помощью специального редактора. Редактор меню вызывается с помощью двойного щелчка по компоненту MainMenu. Первоначально меню пустое, но имеет один выделенный элемент.Для создания первой опции (как правило, опция главного меню программы File) нужно перейти вИнспектор объектов и свойству Caption присвоить нужное название. В Windows опции меню, как правило, имеют возможность выбора при помощи сочетания клавиш ALT+<Key>, где Key - первая буква в названии данной опции должна иметь подчеркивание. Для создания такого подчеркивания перед этой буквой ставится символ &. После нажатия Enter созданный пункт меню появляется на Форме. Обратите внимание на то, что автоматически Delphi создаёт следующий пустой пункт меню верхнего уровня. А щёлкнув в редакторе меню по синему прямоугольнику File, мы сразу получим пустой пункт меню второго уровня. Они не выделены, и отображаются белыми прямоугольниками. Щелкнув по одному из них, мы получим возможность редактировать его совершенно аналогично. Пока их свойства не заданы, в работающей программе на Форме они не появятся, и удалять в редакторе их не нужно.

Далее, в  редакторе меню щёлкнув по пункту меню правой клавишей мыши, мы получим  контекстное меню, в котором есть пункты Insert (вставить) и Delete (удалить). Пункт Insert добавляет новый пункт меню над выделенным, а Delete - удаляет выбранный пункт.

То, что  мы пользуемся Инспектором объектов, говорит о том, что опция меню для Delphi - это объект, со своими свойствами и методами. И без их настройки  будет пассивной структурой надписей. Для того чтобы  

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

Выделим нижний элемент меню, в Инспекторе объектов изменим свойство Caption на Exit (ну или по-русски тоже можно - Выход). Затем перейдём на вкладку Инспектора объектов Events и щелкнем дважды мышкой по обработчику OnClick. В созданной процедуре напишем просто - Close; Всё, скомпилируем программу (нажмите F9). В работающей программе наше меню функционирует - при нажатии мышкой Exit программа закрывается. И при нажатии на клавиатуре ALT появляется подчеркивание первой буквы пунктов меню верхнего уровня - File, и далее можно выбрать нужный пункт, работая кнопками управления курсором.

Во всплывающем  меню выделенного элемента есть также  пункт Create SubMenu, нажав на который мы создадим подменю выбранного элемента, а к его названию прибавится изображение треугольника - стрелки, указывающей на его наличие. Работа с подменю осуществляется также совершенно аналогично.

Кстати, описывать обработчик OnClick пунктов меню верхнего уровня не обязательно, раскрывание меню при щелчку мышкой происходит автоматически. Но в случае необходимости произвести какие-либо действия при раскрытии меню этот обработчик позволит это сделать.

Наш компонент MainMenu обладает также возможностью сопровождать названия опций меню пиктограммами. Для этого нужно из редактора меню перейти к самому компоненту, и в Инспекторе объектов его свойству Image присвоить значение одного из компонентов ImageList, который необходимо предварительно поместить на Форму, и наполнить нужными пиктограммами (компонент ImageList описывается на странице Win32). Далее, выбрав нужный пункт меню в редакторе меню, его свойству ImageIndex нужно присвоить номер пиктограммы, который она

имеет в компоненте ImageList. Для удобства выбора свойство ImageIndex имеет раскрывающийся список, содержащий пиктограммы, находящиеся в компоненте ImageList. Значение -1 означает отсутствие пиктограммы.

Есть  более простой альтернативный способ задать пиктограмму для

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

пиктограмму.

Стандартный набор пиктограмм поставляется в  дистрибутиве Delphi и находится в  папке Buttons по адресу C:\Program Files\Common Files\Borland Shared\Images. Правда, пиктограммы представлены в сдвоенном формате - для активного  и неактивного состояния кнопки или пункта меню. Удобство применения компонента ImageList состоит в том, что он умеет разделять стандартные пиктограммы на две. Ненужную затем можно удалить, а оставшуюся сохранить для использования в других программах. Обычно это цветная пиктограмма для активного состояния, так как неактивная кнопка или меню умеют отображать свои пиктограммы в оттенках серого.

 

 

4.2 Memo  

В некоторых случаях для ввода  массива можно использовать компонент Memo. Компонент Memo позволяет вводить  текст, состоящий из достаточно большого количества строк, поэтому его удобно использовать для ввода символьного  массива. Компонент Memo добавляется в форму обычным образом. Значок компонента находится на вкладке Standard.

Свойства компонента Memo

Свойство

Определяет

Name

Имя компонента. Используется в программе  для доступа к свойствам компонента

Text

Текст, находящийся в поле Memo. Рассматривается  как единое целое

Lines

Текст, находящийся в поле Memo. Рассматривается  как совокупность строк. Доступ к  строке осуществляется по номеру

Lines .Count

Количество строк текста в поле Memo

Left

Расстояние от левой границы поля до левой границы формы

Top

Расстояние от верхней границы  поля до верхней границы формы

Height

Высоту поля

Width

Ширину поля

Font

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

ParentFont

Признак наследования свойств шрифта родительской формы


 

4.3 SaveDialog и OpenDialog  

На вкладке палитры компонентов Dialogs находятся компонент Delphi OpenDialog и компонент Delphi SaveDialog. Все Delphi диалоги, находящиеся на этой вкладке, в том числе и Delphi диалоги выбора файла, не визуальные, т.е. при переносе их на Форму в работающей программе их не видно, они видны только на этапе конструирования. Компонент Delphi OpenDialog позволяет открыть в нашей программе стандартное Windows-окно диалога открытия файла, компонент Delphi SaveDialog - окно диалога сохранения.

 

 

Delphi диалоги  выбора файла сами по себе  ничего не делают, а только  предоставляют настройки, сделанные  пользователем при выборе файла.  Самый важный метод Delphi диалогов - Execute. Он срабатывает в момент нажатия кнопки "открыть" или "сохранить" в окне выбора файла.

 

4.4 FontDialog  

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

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

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

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

 

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

Свойство

Описание

fdAnsiOnly

Отображать только множество шрифтов  символов Windows, не отображать шрифтов  со специальными символами

fdApplyButton

Отображать в диалоге кнопку "Применить" независимо от того, предусмотрен ли обработчик события OnApply

fdEffects

Отображать в диалоге индикаторы специальных эффектов (подчеркивание  и др.) и список "Цвет"

fdFixedPitchOnly

Отображать только шрифты с постоянной шириной символов

fdForceFontExist

Позволять пользователю выбирать шрифты только из списка, запрещать ему  вводить другие имена

fdLimitSize

Разрешить использовать свойства MaxFontSize и MinFontSize, ограничивающие размеры шрифта

fdNoFaceSel

Открывать диалоговое окно без предварительно установленного имени шрифта

fdNoOEMFonts

Удалять из списка шрифтов шрифты OEM

fdScalableOnly

Отображать только масштабируемые шрифты, удалять из списка не масштабируемые (шрифты bitmap)

fdNoSimulations

Отображать только шрифты и их начертания, напрямую поддерживаемые файлами, не отображая  шрифты, в которых жирный стиль  и курсив синтезируется

fdNoStyleSel

Открывать диалоговое окно без предварительно установленного начертания шрифта


 

fdNoVectorFonts

Удалять из списка векторные шрифты (типа Roman или Script для Windows 1.0)

fdShowHelp

Отображать в диалоговом окне кнопку "Справка"

fdTrueTypeOnly

Предлагать в списке только шрифты TrueType

fdWysiwyg

Предлагать в списке только шрифты, доступные и для экрана, и для  принтера, удаляя из него аппаратно  зависимые шрифты


По умолчанию  все эти опции, кроме fdEffects, отключены.

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

 

4.5 ListBox  

Компонент ListBox это компонент, служащий для хранения и обработки текстовой информации. Каждая строкаListBox хранит строку данных в формате String.

Компонент ListBox - это массив строк. ListBox может загружать данные с диска, и сохранять информацию в файл. Также ListBox может сортировать строки. Доступ к строкам предоставляет свойство Items этого компонента.

Методы добавления строк в компонентListBox:

  • Считывание из файла;
  • Добавление строки в конец списка;
  • Добавление строки перед строкой с номером i;
  • Добавление строк на этапе конструирования.

Пользователь  может выделить строку, щёлкнув по ней мышкой. Номер выделенной строки возвращает свойство компонента ListBox.ItemIndex.

К сожалению, компонент не обладает возможностью добавлять только уникальные данные. Один и тот же текст запишется  несколько раз. Для реализации этой возможности приходится дополнительно  применять не визуальный аналог компонента ListBox - объект StringList, обладающий такой возможностью.

Компонент ListBox автоматически добавит полосу прокрутки, если количество строк не помещается по высоте компонента. Высота каждой строки равна ItemHeight. Если нужно чтобы при добавлении новой

 

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

 

6 Заключение

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

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

Программа написана для удобной  и быстройработы с текстом  и его редактированием. Обеспечивает удобный интерфейс.

 

 

7 список используемой литературы

  • А. Н. Вальвачев, К. А. Сурков, Д. А. Сурков, Ю. М. Четырько. Программирование на языке Delphi. Учебное пособие. — 2005.
  • Борис Карпов «Delphi Специальный справочник» Издательский дом «Питер», 2002г.
  • В. Гофман, А. Хомоненко «Delphi 5 в подлиннике» «БХВ –  
    Санкт-Петербург», 1999г.
  • Нил Дж. Рубенкинг. Язык программирования Delphi для «чайников». Введениев Borland Delphi 2006 = Delphi for Dummies. — М.: Диалектика, 2007. — 336 с.
  • Хавьер Пашеку. Программированиев Borland Delphi 2006 дляпрофессионалов = Delphi for .NET Developer’s Guide. — М.: Вильямс, 2006. — 944 с.

 

 

8 Приложение

Приложение А

unit Unit1;

interface

uses

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

  Dialogs, StdCtrls, ComCtrls, Menus, Unit2;

type

  TForm1 = class(TForm)

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

    N7: TMenuItem;

    N8: TMenuItem;

    N11: TMenuItem;

    N12: TMenuItem;

    N13: TMenuItem;

    N14: TMenuItem;

    N15: TMenuItem;

    N16: TMenuItem;

    N18: TMenuItem;

    N19: TMenuItem;

    Memo1: TMemo;

    FontDialog1: TFontDialog;

    OpenDialog1: TOpenDialog;

    SaveDialog1: TSaveDialog;

    N4: TMenuItem;

    N3: TMenuItem;

    N9: TMenuItem;

    N10: TMenuItem;

    N17: TMenuItem;

    N20: TMenuItem;

    N21: TMenuItem;

 

procedureN6Click(Sender: TObject);

procedureN11Click(Sender: TObject);

procedureN19Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedureN14Click(Sender: TObject);

procedureN15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedureN7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N20Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const

  Title: string = 'Текстовыйредактор';

NewFileName: string = 'Безымянныйдокумент.txt';

var

  Form1: TForm1;

FileName: string;

implementation

uses Unit3, Unit4;

{$R *.dfm}

procedure TForm1.N6Click(Sender: TObject);

begin

if ( FontDialog1.Execute ) then

begin

Memo1.Font.Size := FontDialog1.Font.Size;

Memo1.Font.Style := FontDialog1.Font.Style;

Memo1.Font.Name := FontDialog1.Font.Name;

end;

 

end;

procedure TForm1.N11Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.N19Click(Sender: TObject);

begin

Memo1.SelectAll;

end;

procedure TForm1.N12Click(Sender: TObject);

begin

Memo1.Undo;

end;

procedure TForm1.N14Click(Sender: TObject);

begin

Memo1.CutToClipboard;

end;

procedure TForm1.N15Click(Sender: TObject);

begin

Memo1.CopyToClipboard;

end;

procedure TForm1.N16Click(Sender: TObject);

begin

Memo1.PasteFromClipboard;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

if ( OpenDialog1.Execute ) then

begin

Memo1.Lines.LoadFromFile( OpenDialog1.FileName );

FileName := OpenDialog1.FileName;

Form1.Caption := FileName + ' :: ' + Title;

SaveDialog1.FileName := FileName;

end;

end; 

procedure TForm1.N8Click(Sender: TObject);

begin

if ( SaveDialog1.Execute ) then

begin

Memo1.Lines.SaveToFile( SaveDialog1.FileName );

FileName := SaveDialog1.FileName;

Form1.Caption := FileName + ' :: ' + Title;

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Form1.Caption := NewFileName + ' :: ' + Title;

SaveDialog1.FileName := NewFileName;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

Form2.ShowModal;

end;

procedure TForm1.N17Click(Sender: TObject);

begin

form3.show;

end;

procedure TForm1.N20Click(Sender: TObject);

begin

Form4.show;

end;

end.

 

Окно «Справка»

unit Unit3;

interface

uses

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