- •Основы программирования
- •Введение
- •Основы delphi
- •Общая технология программирования
- •Язык программирования
- •Объектно-ориентированное программирование
- •Визуальное программирование
- •Событийно управляемое программирование
- •Windows-приложение
- •Среда программирования
- •Первоначальные сведения о проекте приложения
- •Встроенный отладчик
- •Использование встроенных классов
- •Иерархия классов
- •Использование палитры компонентов и инспектора объектов
- •Использование графики
- •Основные инструменты
- •Основные характеристики шрифтов
- •Графические данные и палитра
- •Некоторые общие свойства компонентов
- •Сохранение проекта
- •Построение простейшего проекта
- •Понятие исключительной ситуации
- •Введение в object pascal
- •Структура приложения
- •Структура программы-проекта
- •Структура модуля
- •Пример 1
- •Описания программных элементов
- •Программные элементы и адреса памяти
- •Области видимости
- •Правила записи имен
- •Время жизни идентификаторов
- •Использование локальных переменных в примере 1
- •Использование глобальных переменных в примере 1
- •Простые типы
- •Целые типы
- •Целые типы
- •Некоторые операции с целым типом
- •Символьные типы
- •Логические типы
- •Тип перечень
- •Интервальный тип
- •Вещественный тип
- •Вещественные типы
- •Некоторые операции с вещественным типом
- •Тип дата-время
- •Выражения
- •Константы
- •Типизированные константы.
- •Переменные
- •Операции
- •Унарная операция not (отрицание)
- •Логические операции and, or, xor
- •Функции
- •Порядок вычисления выражений
- •Виды операторов
- •Простые операторы
- •Составной оператор
- •Операторы условного перехода
- •Оператор if
- •Пример 2
- •Оператор case
- •Пример 3
- •Использование enter в примере 3
- •Операторы цикла
- •Оператор цикла for
- •Пример 4
- •Оператор цикла while
- •Пример 5
- •Оператор цикла repeat
- •Пример 6
- •Использование процедур break и continue
- •Пример 7
- •Массивы
- •Статические массивы
- •Динамические массивы
- •Пример 8
- •Пример 9
- •Записи (объединения)
- •Оператор with
- •Пример 10
- •Совместимость и преобразование типов данных
- •Идентичность типов
- •Совместимость типов
- •Совместимость по присваиванию
- •Преобразование типов
- •Операторы обработки исключительных ситуаций
- •Пример 11
- •Множества
- •Операции над множествами
- •Пример 12
- •Вариантный тип данных
- •Процедуры и функции
- •Процедура
- •Функция
- •Рекурсия
- •Формальные и фактические параметры
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Параметры без типа
- •Массивы открытого типа
- •Парамеры по умолчанию
- •Процедура exit
- •Директивы подпрограммы
- •Соглашения по передаче данных
- •Директива forward
- •Директива external
- •Директива assembler
- •Перегруженные подпрограммы
- •Пример 13
- •Инкапсуляция
- •Класс как объектный тип
- •Наследование
- •Области видимости
- •Операции is и as
- •Виды методов
- •Методы virtual и полиморфизм
- •Методы dynamic
- •Методы message
- •Методы abstract
- •Методы override
- •Методы class
- •Пример 14
- •Динамическое создание компонентов
- •Использование класса со счетчиком объектов
- •Отслеживание разрушения объектов
- •События
- •Указатели на методы
- •Пример 15
- •Типы ссылки на класс
- •Свойства
- •Свойства simple
- •Свойства enumerated
- •Свойства set
- •Свойства object
- •Свойства array
- •Задание начальных значений свойствам
- •Пример 16
- •Файловые типы
- •Текстовые файлы
- •Типизированные файлы
- •Файлы без типа
- •Дополнительные процедуры и функции
- •Пример 17
- •Компонент tmainmenu
- •Указатели
- •Пример 18
- •Динамические структуры данных
- •Однонаправленные списки
- •Двунаправленные списки
- •Стеки, очереди
- •Бинарные деревья
- •Пример 19
- •Процедурный тип
- •Программные единицы dll
- •Пример 20
- •Технологии программирования
- •Потоки данных
- •Пример 21
- •Пример 22
- •Интерфейс drag and drop
- •Пример 23
- •Технология drag and dock
- •Пример 24
- •Использование функций windows api при работе с файлами
- •Пример 25
- •Использование отображаемых файлов
- •Пример 26
- •Программные потоки
- •Приоритеты потоков
- •Класс tthread
- •Пример 27
- •Использование блокировки в примере 27
- •Многопоточное приложение в примере 28
- •Проблемы синхронизации потоков
- •Список используемых в примерах компонентов
- •Список используемых компонентов и других классов
- •Библиографический список
- •Оглавление
Использование палитры компонентов и инспектора объектов
Палитра компонентов – это средство, которое используется для добавления компонентов в форму. Размещаются компоненты с помощью мыши – вначале щелчок левой кнопкой на нужном компоненте палитры, а затем – на форме.
Палитра компонентов группирует компоненты в соответствии с выполняемыми функциями и отображает каждую из этих групп на отдельной странице (рис. 9).
Рис. 9.Страница Standard палитры компонентов.
Инспектор объектов – важнейший инструмент для работы с размещенными на форме компонентами (рис.10). Вначале выбирается на форме интерфейсный элемент, требующий редактирования. Далее с помощью страницы свойств (Properties) изменяется его внешний вид и некоторые доступные внутренние характеристики или с помощью страницы событий (Events) выбираются нужные свойства.
К
Рис. 10. Страница событий в инспекторе
объектов.
Использование графики
Программисты стараются придать внешнему виду своих приложений максимум привлекательности, так как 80% информации мозг человека получает по зрительному каналу. Поэтому в Delphi имеются развитые средства для работы с графическими возможностями Windows.
Основные инструменты
В стандартном графическом интерфейсе MicroSoft Windows GDI (Graphics Device Interface - включает набор программ, воспроизводящих графику) основой для рисования служит HDC (Handle Device context) - дескриптор контекста устройства - и связанные с ним шрифт, перо и кисть (контекст в данном случае - это стек плюс регистры процессора). В состав библиотеки компонентов (VCL) Delphi входят графические надстройки, назначением которых является обеспечить удобный доступ ко всем свойствам указанных выше инструментов: шрифт (Font), перо (Pen), кисть (Brush).
Шрифт Windows определяется классом TFont. В Delphi допускаются только горизонтально расположенные шрифты. Шрифты имеют множество характеристик, основные из которых приводятся в табл. 1.
Таблица 1
Основные характеристики шрифтов
Свойство |
Описание |
Имя (Name) |
Например, Arial |
Стиль (Style) |
Особенности начертания: жирный, курсив, подчеркнутый, перечеркнутый |
Цвет (Color) |
Цвет шрифта |
Вариант набора символов (Charset) |
Например, кириллица Russian_Charset или по умолчанию Default_Charset |
Способ установки ширины шрифта (Pitch) |
Например, с переменной шириной символа, моноширинный, по умолчанию (определён именем) |
Высота (Height) |
В пикселах |
Размер (Size) |
В пунктах |
Класс TPen инкапсулирует свойства пера GDI. Перо имеет следующие основные характеристики:
стиль (Style) линии (сплошная, пунктирная и т. д.);
толщина (Width) пера в пикселах;
цвет (Color) пера;
идентификатор растровой операции (Mode), определяющей взаимодействие пера с поверхностью изображения.
В Windows существуют ограничения на стили линий - пунктирные и штрихпунктирные (psDash, psDot, psDashDot, psDashDotDot) могут быть установлены только для линий единичной толщины. Более толстые линии должны быть сплошными. В Delphi это ограничение также сохраняется.
Класс TBrush инкапсулирует свойства кисти – инструмента для заливки областей. Кисть имеет такие характеристики как цвет (Color) и стиль (Style). Последний определяет фактуру закраски, например сплошную.
Шрифт, перо и кисть не могут использоваться самостоятельно. Они являются составными частями класса TCanvas. Этот класс объединяет в себе “холст”, рабочие инструменты (перо, кисть, шрифт), а также набор функций по рисованию геометрических фигур. Свойство типа TCanvas называют канвой. Канва входит в качестве свойства во многие компоненты, в частности, TImage. Изображение на канву компонента TImage можно переносить из файла с помощью свойства Picture. При этом можно загружать растровые изображения (битовые карты, BMP), пиктограммы в виде иконок (файлы ICO), из метафайлов (стандартный формат WMF и расширенный EMF) и из сжатых в формате JPEG изображений (файлы JPG и JPEG).
