Конструкторы и деструкторы
Конструкторы ‑ специальные методы, создающие объекты. Они объявляются подобно процедурам, но в начале указывается слово Constructor. Обычно именем конструктора является слово Create. В качестве параметра (Owner) может использоваться владелец объекта. В реализации конструктора вначале обычно идет вызов наследуемого конструктора с помощью слова Inherited. В результате инициируются все наследуемые поля, а затем инициируются новые поля данного класса.
В базовом классе TObject имеется готовый конструктор Create, который и обычно используется для создания объектов.
Деструкторы ‑ методы, уничтожающие объекты. Они объявляются подобно процедурам, но в начале указывается слово Destructor. Обычно именем конструктора является слово Destroy. Реализация деструктора обычно завершается вызовом наследуемого деструктора с помощью слова Inherited. В базовом классе TObject имеется готовый деструктор Desrtoy.
Пример: Destructor Destroy; Override;
События
Событие ‑ это специальное свойство ‑ указатель функции типа TNotifyEventс одним параметром (обычно Self- данный объект) типа TObject. Подобный тип используется для всех событий с одним параметром Sender:TObject(например, OnClick -щелчок мышки).
Пример ввода события в класс: объявление поля и метода работы:
Private FMyEvent:TNotifyEvent; //объявление поля для свойства
Published Property MyEvent:TNotifyEvent Read FMyEvent Write FMyEvent;
Для вызова обработчика нужно указать в нашем примере:
If Assigned(FmyEvent) Then //проверка наличия обработчика пользователя
OnMyEvent(Self) //вызов обработчика MyEvent
Если в обработчик передаются другие параметры, кроме Self, то объявляется собственный тип:
Type TMyEvent=Procedure(Sender:TObject,Var DEvent: Boolean) Of Object;
T=Class(TObject);
Private FMyEvent:TmyEvent;
Published Property MyEvent:TMyEvent Read FMyEvent Write FMyEvent;
End;
Вопросы для самопроверки и контроля
Вопросы для самопроверки
1. Каковы свойства объектно‑ориентированного программирования?
2. Назначение метода‑конструктора объекта.
Контрольные вопросы
1. Каково назначение метода‑деструктора объекта?
2. Допускает ли Delphi традиционное и объектно‑ориентированное программирование?
3. Заменяет ли одноименный статический метод в потомке родительский?
Обработка исключительных ситуаций
Исключения
При работе программы могут возникать исключительные ситуации, связанные с различными ошибками в программе (деление на нуль, переполнения,...) или сбоями в работе устройств (ошибки при чтении или записи в файл, ...). В таких ситуациях генерируется временный специальный объект - исключение, который определяет и детализирует возникшую исключительную ситуацию. Если исключение в программе не перехватывается, то метод Tapplication.HandleException выдает в окне сообщения краткую информацию, и обычно программа заканчивает свою работу аварийно (системный обработчик). Исключения сгруппированы в иерархию классов различных уровней. Исключение родительского класса перехватывает исключения потомков (непосредственно нижестоящих классов).
Дата добавления: 2016-03-22; просмотров: 514;