Delphi. Учимся на примерах
Шрифт:
По умолчанию, первому элементу соответствует число 0, второму — 1 и т.д. Для того чтобы сопоставить с каким-либо элементом другое значение, следует использовать запись вида элемент = число.
Для извлечения числа, соответствующего некоторому элементу, используется функция Ord.
Пример:
Подтипы
Подтип определяет некоторый диапазон целочисленных или символьных значений. Для его объявления используют запись вида:
Переменные этого типа не могут принимать значений вне указанного диапазона. Пример:
Записи
Запись – это структурированный набор разнотипных элементов. Отдельные элементы записи называются полями. Для объявления записи используется следующая конструкция:
Запись можно объявлять как в разделе type, так и в разделе var:
или непосредственно
Обращение к полям записи реализуется следующим образом:
Классы
Класс —
это структура, предназначенная для хранения данных (полей и свойств), а также кода, обрабатывающего эти данные (методы). Поля, методы и свойства называют членами класса.Класс может быть создан на основе другого класса — в этом случае он называется производным, а базовый класс — родительским. Производный класс наследует все свойства и методы родительского класса, а также может содержать собственные уникальные свойства и методы. Для объявления класса используют конструкцию вида:
Определение членов класса
Все члены класса по характеру доступа к ним делятся на четыре категории: закрытые (private), защищенные (protected), открытые (public) и опубликованные (published).
Элементы класса, определенные в разделе public, без каких-либо ограничений открыты для доступа извне программного модуля. Без ограничений доступны также и элементы, определенные в разделе published, однако они отличаются тем, что для них генерируется информация о типах времени выполнения (RTTI — Run Time Type Information). Информация RTTI используется для различных целей: например, для организации отображения значений свойств в инспекторе объектов.
Элементы, определенные в разделе private, недоступны за пределами программного модуля, в котором объявлен класс. Другими словами, закрытые члены класса нельзя вызвать из другого модуля.
Элементы, определенные в разделе protected, доступны в модуле, в котором объявлен класс, а также доступны всем членам классов, производных от данного класса.
По умолчанию при создании программных модулей Object Pascal раздел protected не создается, а раздел published не указывается явно. Все члены класса, которые не определены в разделах private и public, по умолчанию относятся к категории published.
Рассмотрим, к примеру, фрагмент объявления класса TForm (модуль Forms.pas), базового для форм в приложениях Delphi:
В данном случае видно, что класс TForm является производным от класса TCustomForm (реализован в том же модуле Forms.pas) и содержит открытые методы ArrangeIcons, Cascade и т.д., а также опубликованные свойства Action, ActiveControl и т.д.