Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

текстовый редактор содержащий следующие компоненты- меню; панель инструментов; окно документа;

Работа добавлена на сайт samzan.net:


2

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

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

- меню;

- панель инструментов;

- окно документа;

- окно-список открытых файлов;

- строка статуса.

Должны выполняться следующие функции:

- открытие, закрытие и сохранение файла;

- буфер обмена: вырезать, копировать, вставить текст;

- поиск и замена слов;

- изменение цвета шрифта, фона и начертания шрифта;

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

                   

 Общие положения

Для выполнения данной работы  использовать компоненты страниц:

- Standart (Panel, MainMenu, ListBox);

- Additional (SpeedButton, Splitter);

- Win32 (RichEdit, StatusBar);

- Dialog  (OpenDialog, SaveDialog, FontDialog, ColorDialog, FindDialog, ReplaceDialog).

Компоненты страницы Standart

 TPanel - панель

Компоненты TPanel (панель) представляет собой контейнер общего назначения. Компоненты этого класса часто помещаются для того, чтобы располагать вставленные в них дочерние компоненты вдоль одной из сторон окна независимо от изменения размеров этого окна. Компонент имеет развитые средства создания различных эффектов трехмерности за счет использующихся в нем двух кромок: внешней и внутренней.

Использованные свойства и методы:

BorderStyle: bsSingle

- компонент по периметру обводится линией толщиной в            1 пиксель

Caption: String

- отображается в виде текстовой строки и может использоваться для вывода сообщений

Align: alNone

- используется при выравнивании объекта внутри родителя.

 TListBox – список выбора

Компоненты класса TListBox представляет собой стандартный для Windows список выбора, с помощью которого пользователь может выбрать один или несколько элементов выбора. В компоненте предусмотрена возможность программной прорисовки элементов, поэтому список может содержать не только строки, но и произвольные изображения.


Использованные свойства и методы:

Items: TStrings

- содержит набор строк, показываемых в компоненте

ItemIntex: Integer

- содержит индекс сфокусированного элемента

MultiSelect: False

- в этом случае ItemIndex совпадает с индексом выделенного элемента. Определяет есть ли  возможность выбора нескольких строк ListBox.

Name: String

- имя компонента, используемое в программе

Align: alNone

- используется для выравнивания объекта внутри родителя

Add

- метод свойства Items, позволяющий создавать элементы (опции) списка компонента.

 Событие, связанное с этим компонентом OnDbClick.

 TMainMenu – главное меню формы (программы)

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

Создание опций

После установки компонента на форму необходимо создать его опции. Для этого следует дважды щелкнуть по компоненту левой клавишей мыши, либо нажать Designer в появившемся вспомогательном меню, либо щелкнуть по клавише в правой половине строки Items Инспектора Объектов.

В окне Инспектора Объектов вводится текст опции в строке Caption, после чего необходимо нажать Enter.

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

 

Создание подопций

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

Если надо вставить разделительную черту, определяющую группы подопций, необходимо назвать очередной элемент меню именем «—».

 Создание разветвленных меню

 Для создания разветвленных меню, т.е. таких, у которых подопции вызывают новые списки подопций,надо щелкнуть по подопции и нажать Ctrl+Вправо (клавиша смещения курсора). Такого результата можно добиться после щелчка правой клавиши мыши на подопции и выборе продолжения Create Submenu.

 Создание горячих и коротких клавиш:

- для создания коротких клавиш в названиях опции можно указать символ «» перед тем символом, который определит клавишу быстрого выбора опции (акселератора);

- для создания горячих клавиш существует свойство: ShortCut: TShortCut задает клавиши - акселераторы для быстрого выбора данной опции.

 Создание подсказок,  чтобы установить подсказку используем  свойства:

Hint: String

- содержит текст подсказки

ShowHint: Boolean

- необходимо установèть True, чтобы подсказки показывались

С каждым компонентом связано событие OnClick.

Компоненты страницы Additional

 TSpeedButton - кнопка для инструментальных панелей.

Кнопки TSpeedButton  отличаются от TBitBtn тремя обстоятельствами: во-первых, они могут фиксироваться в утопленном состоянии, во-вторых, они не могут закрыть модальное окно, в-третьих, они не могут быть умалчиваемыми.


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

GroupIntex: Integer

- относит кнопку к какой-либо группе кнопок (эта группа  может состоять из нее одной - вариант одиночной фиксируемой кнопки, в этом случае свойство Group Index: 0)

AllowAllUp: Boolean

- это свойство определяет поведение кнопки: если True, утопленная кнопка отпускается только при нажатии любой другой кнопки, входящей в эту группу. Если False - кнопку можно освободить повторным щелчком (в нашем случае)

Down: Boolean

- это логическое устройство служит индикатором состояния кнопки. Оно имеет  значение True, если кнопка утоплена. Свойство доступно для записи, что позволяет изменять состояние кнопки программно

Glyph: TBitmap

- определяет от 1 до 4 связанных с кнопкой растровых изображений

Name: String

- определяет имя, используемое в программе

Hint: String

- содержит текст подсказки

ShowHint: Boolean

- если True - подсказка показывается

Height: Integer

- определяет высоту объекта

Wigth: Integer

- определяет ширину объекта

Со всеми кнопками SpeedButton связано событие OnClick.

 TSplitter - компонент для изменения размеров.

 Компонент TSplitter предназначен для ручного (с помощью мыши) управления размерами контейнеров TPanel, TGroupBox или подобных им во время прогона программы. Визуально он представляет собой небольшую вертикальную или горизонтальную полосу, располагающуюся между двумя соседними контейнерами или на свободной стороне одного из них.

Непременным условием правильной работы компонента является выравнивание контейнера (контейнеров), размерами которого (которых) он управляет, вдоль одной из сторон окна или охватывающего контейнера.


Используемые свойства:

Align: alLeft

- выравнивание по левому краю

Beveled: Boolean

- управляет трехмерным изображением компонента. Если False компонент виден как узкая полоска фона между разделяемыми им компонентами

MinSize:NaturalNumber

- содержит минимальный размер любого из компонентов, которые разделяют TSplitter. В нашем случае минимальная ширина компонента слева (Align: alLeft)

Для компонента определено событие OnMoved, которое вызывается при любом перемещении компонента мышью.

Компоненты страницы Win 32

 TRichEdit - ввод и отображение RTF - текста.

Компонент RichEdit  представляет собой многострочный редактор, работающий с расширенным форматом RTF. Текст формата RTF хранит дополнительную служебную информацию, управляющую свойствами каждого абзаца и сменой шрифта по ходу текста.

Используемые свойства и методы:

DetAttributes: TText Attributes

- определяет шрифтовые атрибуты всего текста

SelAttributes: TtextAttributes

- определяет шрифтовые атрибуты выделенного текста (color, size, style)

Lines: Tstrings

- содержит набор строк текста

SelStart: Integer

- определяет номер первого символа выделенной части текста от начала текста (нумерация символов начинается с 0).  Если нет выделения указывает символ, перед которым располагается текстовый курсор

SelLength: Integer

- задает длину в символах выделенной части текста

SelText: String

- содержит выделенный текст. Установка нового значения SelText  заменяет выделенный текст на новый, а если нет выделения вставляет его в позицию курсора

Name: String

- содержит имя компонента, которое используется в программе

Procedure LoadFromFile

- метод свойства Lines, с помощью которого компонент может  читать текст из файла

Procedure SaveToFile

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

Procedure Clear

- удаляет весь текст

Function GetSelTextBuf(Buffer: PChar; BufSize: Integer): Integer

- копирует не более BufSize символов выделенного текста в буфер Buffer и возвращает количество скопированных символов

Function FindText (const SearchStr: String; StartPos, Length: Integer; Options; TSearchTypes): Integer

- поиск строки SearchStr в тексте

TStatusBar - информационная панель

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

С компонентом связывается объект класса TStatusPanels, который определяет панели компонента.

Использованные свойства

SimplePanel: Boolean

- запрещает, разрешает создание нескольких панелей. Если содержит true, компонент имеет единственную панель

SimpleText: String

- содержит текст панели для SimplePanel =True

Компоненты страницы Dialogs

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

Работа со стандартными диалоговыми окнами осуществляется в три этапа:

  1.  Вначале на форму помещается соответствующий компонент и осуществляется настройка его свойств (следует заметить, что собственно компонент-диалог не виден в момент работы программы, видно лишь создаваемое им стандартное окно). Настройка свойств может проходить как на этапе конструирования, так и в ходе прогона программы. Как и для любых других компонентов, программист не должен заботиться о вызове конструктора и деструктора диалога - эти вызовы реализуются автоматически в момент старта и завершения программы.
  2.  На втором этапе осуществляется вызов стандартного для диалогов метода Execute, который создает и показывает на экране диалоговое окно. Вызов этого метода обычно располагается внутри обработчика какого-либо события. Окно диалога является модальным окном, поэтому сразу после обращения к Execute дальнейшее выполнение программы приостанавливается до тех пор, пока пользователь не закроет окно. Поскольку Execute - логическая функция, она возвращает в программу True, если результат диалога с пользователем был успешным.
  3.  Проанализировав результат Execute, программа может выполнять третий этап - использование введенных с помощью диалогового окна данных - имени файла, настроек принтера, выбранного шрифта и т.д.

TOpenDialog & TSaveDialog - диалоги открытия и сохранения файлов.

Эти компоненты имеют идентичные свойства и поэтому рассматриваются вместе.

Используемое свойство: FileName: String содержит маршрут поиска и выбранный файл при успешном завершении диалога. Программа может использовать это свойство для доступа к файлу с целью читать из него данные (TOpenDialog) или записывать в него (TSaveDialog). Пользователь может ввести произвольное имя и, следовательно, указать несуществующий файл. Для записи это не имеет значения, но при чтении отсутствие файла может привести к краху программы. Чтобы избежать этого, можно проверить существование файла глобальной функцией FileExists, или использовать механизм обработки исключительных ситуаций.

TFondDialog - диалог выбора шрифта.

Компонент TFondDialog создает и обслуживает стандартное окно выбора шрифта.

Используемое свойство:

Font: TFont  содержит результат выбора шрифта.

TColorDialog - диалог выбора цвета.

Компонент создает и обслуживает стандартное диалоговое окно выбора цвета.

Используемое свойство:

Color : TColor  содержит выбранный текст.

TFindDialog - диалог поиска.

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

Используемое свойство:

FindText: String - указывает образец для поиска.

Спецификой диалога является реализуемая им возможность просмотра найденного фрагмента и, при необходимости, продолжения поиска. С этой целью для компонента определено событие OnFind: TNotifyEvent, которое возникает всякий раз, когда пользователь нажимает кнопку «Найти далее».

TReplaceDialog - диалог поиска и замены.

Компонент TReplaceDialog  создает и обслуживает окно поиска и замены текстового фрагмента. Класс TReplaceDialog является прямым потомком класса TFindDialog и наследует от него большинство свойств.

Используемое свойство:

ReplaceText: String  содержит текст замены.

В компоненте определено событие OnReplace,  которое возникает при нажатии кнопки «Заменить» или «Заменить все».

Глобальные объекты

Application

Относится к классу TApplication, инкапсулируя важнейшие свойства и методы программы как таковой. Он создаётся автоматически и доступен любой программе .

Использованное событие OnHint.

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


Индивидуальное задание

Вариант 10

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

   

Для реализации алгоритма использовались:

Класс TStrings

Свойства:

Count: Integer

- текущее количество строк в наборе

Strings [Index: Integer]: String  

- открывает доступ к строке с индексом Intex

Методы:

LoadFromFile - с помощью этого метода компонент может читать текст из файла.

Работа с файлами

- процедура AssignFile (<файловая переменная>,  <имя файла>) - связывает файловую переменную с именем файла;

- процедура Reset (<файловая переменная>) - открытие файла для чтения и записи;

- процедура CloseFile (<файловая переменная>) - закрытие файла;

- процедура Rewrite  (<файловая переменная>) - открытие файла для записи;

- функция FileSize(varF): LongInt     -возвращает количество компонентов файла. Чтобы поместить указатель в конец типизированного файла, было использовано Seek(FileVar, FileSize(FileVar));

- процедура Seek (varF; N:LongInt)  - смещает указатель файла F к  требуемому компоненту с номером N.

Работа со строками

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




1. Лабораторная работа Оценка активности супероксиддисмутазы КФ
2. Выживание в естественных условиях
3. Философия на казахском
4. Как избавить себя от лишней работы и заодно замотивировать подчиненных
5. МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ИНДУСТРИИ ТУРИЗМА имени Ю
6. контрольная работа по дисциплинеАдминистративное право Фамилия
7. Курсовая работа- Жак Неккер
8. задание ’ 4 С 3 В НГДУ Х.html
9. Порядок складання позовної заяви та касаційної скарги.html
10. вступает в деловые супружеские родительские родственные и любовные отношения.
11. 1 Історикотеоретичні аспекти проблеми моральноестетичного розвитку особистості
12. Проект организации работ по анализу затра
13. Сегодня ситуация на рынке резко изменилась
14. АРНОЛЬД АРНОЛЬД
15. Виконавча влада
16. Концептуальні основи формування системи управління ресурсами сільськогосподарських підприємств.html
17. ЗВЕЗДЫ НОВОГО ВЕКА 2223 февраля 2014 г
18. Традиции и новаторство в творчестве В
19. 0701112007 П~н бойынша білімін іскерлігін ж~не да~дыларын ~орытынды ба~алау ~шін ба~ылаушы~лшег
20. Автомобильное хозяйство и Двигатели ТЕХНОЛОГИЧЕСКИЙ ПРОЦЕСС РЕМОНТА детали; КОЛЕНЧАТ