Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
4
Постановка задачи.
Разработать приложение - текстовый редактор, содержащий следующие компоненты:
- меню; - панель инструментов; - окно документа; - окно-список ткрытых - строка статуса.
Должны выполняться следующие функции:
- открытие, закрытие и сохранение файла;- буфер обмена: вырезать, копировать, вставить текст;- поиск и замена слов;- изменение цвета шрифта, фона и начертания шрифта; - отображение содержимого файла в редакторе, имя которого выбрано в списке.
Вид созданной формы:
Общие положения
Для выполнения данной работы мы использовали компоненты страниц:
- 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 реализованы классы, объекты которых дают программисту удобные способы создания и использования таких окон.
Работа со стандартными диалоговыми окнами осуществляется в три этапа:
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 для диспетчеризации сообщений, реализации контексно-чувствительной справочной службы.
Задание:создать текстовый файл каждый ряд которого содержит разные слова. Найти самые длинные слова в каждом рядке файла переписать их в новый текстовый файл записать последним рядком файла количество слов в файле.
В данной работе помимо основных описаных в протоколе компонентов мы используем кроме этого:ТBitBtn - графическую кнопку;булевские функции выбора ISDigit,Istring;циклы for,while.
Пиктографическая кнопка BitBtn представляет собой популярную разновидность стандартной кнопки TBitBtn.