- •Введение
- •1. Проектирование прикладных программ на языке высокого уровня
- •1.1. Особенности разработки программного обеспечения на языке высокого уровня
- •1.1.1. Функциональные принципы работы компьютера
- •1.1.2. Понятие о низкоуровневом программировании
- •1.1.3. Основные языки программирования высокого уровня
- •1.1.4. Процедурное и событийное программирование
- •1.1.5. Технология быстрой разработки приложений
- •1.1.6. Классификация программных средств
- •1.2. Основные фазы проектирования программных продуктов
- •1.2.1. Определение проекта и анализ процесса проектирования с позиций теории управления
- •1.2.2. Классификация проектов
- •1.2.3. Основные фазы проектирования
- •2. Жизненный цикл программных продуктов, методология и технология разработки
- •2.1. Процессы жизненного цикла
- •2.1.1. Структура жизненного цикла по стандарту iso/iec 12207
- •2.1.2. Основные процессы
- •2.1.3. Вспомогательные и организационные процессы
- •2.2. Модели жизненного цикла
- •2.2.1. Каскадная модель
- •2.2.2. Спиральная модель
- •2.3. Методология, технология и инструментальные средства разработки прикладного программного обеспечения
- •3. Объектно-ориентированное программирование в рамках языка object pascal
- •3.1. Элементарная грамматика языка Object Pascal
- •3.2. Основные структурные единицы
- •3.2.1. Структуры главного файла программы и модулей
- •3.2.2. Общая характеристика объявляемых элементов
- •3.3. Типы данных и операции над ними
- •3.3.1. Порядковые типы
- •3.3.2. Действительные типы
- •3.3.3. Строки
- •3.3.4. Массивы
- •3.3.5. Множества
- •3.3.6. Записи
- •3.3.7. Файлы
- •3.3.8. Указательные типы
- •3.3.9. Вариантные типы
- •3.3.10. Объекты, классы и интерфейсы
- •3.4. Операторы языка Object Pascal
- •3.4.1. Оператор присваивания
- •3.4.2. Оператор безусловного перехода
- •3.4.3. Оператор if
- •3.4.4. Оператор case
- •3.4.5. Организация цикла с помощью оператора for
- •3.4.6. Цикл repeat … until
- •3.4.7. Цикл while … do
- •3.4.8. Дополнительные операторы организации циклов
- •3.4.9. Оператор with...Do
- •3.5. Обработка исключительных ситуаций
- •3.6. Процедуры и функции
- •4. Интегрированная среда delphi
- •4.1. Общий внешний вид и основные возможности
- •4.2. Главное меню
- •4.2.1. Меню File
- •4 .2.2. Депозитарий – хранилище объектов
- •4.2.3. Меню Edit и команды контекстного меню визуального редактора форм
- •4.2.4. Меню Search
- •4.2.5. Меню View
- •4.2.6. Меню Project
- •4.2.7. Меню Run
- •4.2.8. Меню Component и палитра компонентов
- •4.2.9. Меню Database, Tools, Windows, Help
- •4.3. Инспектор объектов
- •4.4. Редактор кода и его настройка
- •4.5. Общие настройки среды проектирования
- •4.6. Некоторые дополнительные настройки
- •5. Основные элементы построения интерактивного интерфейса прикладных программ
- •5.1. Формы и фреймы – основа визуализации интерфейсных элементов
- •5.2. Наиболее общие свойства, методы и события компонентов
- •5.3. Типы пользовательского интерфейса
- •5.3.3. Форма со вкладками
- •5.4. Основные стандартные компоненты
- •5.4.1. Надписи
- •5.4.2. Текстовое поле ввода
- •5.4.3. Класс tCheckBox
- •5.4.4. Списки
- •5.4.5. Радиокнопки
- •5.4.6. Кнопки
- •5.4.7. Панели
- •5.4.8. Меню
- •5.4.9. Таймер
- •5.4.10. Визуализация больших текстовых фрагментов
- •5.4.11. Визуализация структурированных данных
- •5.4.12. Компоненты построения баз данных
- •5.5. Компоненты организации диалога
- •5.5.1. Окна сообщений
- •5.5.2. OpenDialog, SaveDialog и другие компоненты стандартных диалоговых окон
- •5.6. Средства управления конфигурацией
- •5.7. Работа с графикой
- •Заключение
- •Библиографический список
- •Оглавление
5.4.10. Визуализация больших текстовых фрагментов
Для визуализации больших текстовых фрагментов используются компоненты Memo ( , страница Standard, компонент визуализирует только текст) и RichEdit ( , страница Win32, визуализируется текст в обогащенном формате rtf).
Memo – многострочный текстовый редактор, позволяющий редактировать текст окна, в которое можно вводить множество строк. Формат всего текста одинаков и определяется свойством Font. Свойство Lines, доступное как во время проектирования, так и во время выполнения, имеет множество свойств и методов типа TStrings, которые обычно используются для формирования и редактирования текста. Весь текст содержится в свойстве Text.
Окно редактирования снабжено многими функциями, свойственными большинству редакторов. Например, в нем предусмотрены типичные комбинации "горячих" клавиш: Ctrl+C – копирование выделенного текста в буфер обмена Clipboard (команда Copy), Ctrl+X – вырезание выделенного текста в буфер Clipboard (команда Cut), Ctrl+V – вставка текста из буфера обмена в позицию курсора (команда Paste), Ctrl+Z – отмена последней команды редактирования.
Компонент RichEdit представляет собой многофункциональное средство редактирования текстов, позволяющее работать с обогащенным rtf-форматом, т.е. выбирать различные атрибуты форматирования для разных фрагментов текста. В этом основное отличие RichEdit от подобного, но более простого компонента Memo.
Для изменения атрибутов вновь вводимого фрагмента текста задается свойство SelAttributes, которое в свою очередь имеет подсвойства: Color (цвет), Name (имя шрифта), Size (размер), Style (стиль) и ряд других. Например, если приложение имеет компонент RichEdit1 и диалог выбора шрифта FontDialog1, то следующий код позволит менять атрибуты вновь вводимого или выделенного текста:
if FontDialog1.Execute then
with RichEdit1.SelAttributes do begin
Color:=FontDialog1.Font.Color;
Name :=FontDialog1.Font.Name;
Size :=FontDialog1.Font.Size;
Style:=FontDialog1.Font.Style;
end;
RichEdit1.SetFocus;
Приведенный код можно сократить, воспользовавшись тем, что объекты SelAttributes и Font совместимы по типу.
if FontDialog1.Execute then
RichEdit1.SelAttributes.Assign(FontDialog1.Font);
RichEdit1.SetFocus;
В компоненте имеется также свойство DefAttributes, содержащее атрибуты по умолчанию.
За выравнивание, отступы и т.д. в пределах текущего абзаца отвечает свойство Paragraph типа TParaAttributes. Этот тип в свою очередь имеет ряд свойств:
Alignment – определяет выравнивание текста;
FirstIndent – число пикселей отступа красной строки;
Numbering – управляет вставкой маркеров, как в списках;
LeftIndent – отступ в пикселях от левого поля;
RightIndent – отступ в пикселях от правого поля;
TabCount – количество позиций табуляции;
Tab – значения позиций табуляции в пикселях.
Значения подсвойств свойства Paragraph можно задавать только в процессе выполнения приложения. Значения подсвойств свойства Paragraph относятся к тому абзацу, в котором находится курсор. Например, каждый из следующих операторов осуществит соответственное выравнивание:
RichEdit1.Paragraph.Alignment:=taLeftJustify; // влево
RichEdit1.Paragraph.Alignment:=taCenter; // по центру
RichEdit1.Paragraph.Alignment:=taRightJustify;// вправо
Следующий оператор приведет к тому, что текущий абзац будет отображаться как список, т.е. с маркерами:
RichEdit1.Paragraph.Numbering:=nsBullet;
Уничтожение списка в текущем абзаце осуществляется оператором
RichEdit1.Paragraph.Numbering:=nsNone;
Отметим, что компонент RichEdit также позволяет работать с графикой и OLE-объектами.