Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lekcii_po_informatike_delphi+++++++.pdf
Скачиваний:
31
Добавлен:
29.02.2016
Размер:
872.19 Кб
Скачать

54

4. БАЗОВЫЕ КЛАССЫ DELPHI

4.1 TObject

Класс TObject является исходным предком для всех объектов и компонентов Delphi. Данный класс используется в качестве предка при объявления классов простых объектов, не использующих возможности копирования свойств и операции с потоками, а также по умолчанию, если при объявлении класса не указан никакой предок.

Класс TObject включает описание фундаментального поведения, присущего всем объектам Delphi, необходимого для создания интерфейса методов, которые обеспечивают:

возможность создания, обслуживания и разрушения объектов путем выделения, инициализации и освобождения памяти, необходимой для работы объекта (например, методы Create, Destroy, Free);

получение информации о классе объекта, а также информации о опубликованных свойствах объекта, доступной во время выполнения программы (на-

пример, методы ClassInfo, ClassName, ClassNameIs, ClassType, ClassParent, FieldAddress);

обработку сообщений.

Некоторые методы класса TObject используются непосредственно Delphi, и не могут быть вызваны пользователем. Другие же методы, наоборот требуют перекрытия в объектах и компонентах – наследниках TObject, имеющих более сложное поведение.

Хотя класс TObject и не является абстрактным классом, обычно объекты этого класса не создаются.

4.2 Exception

Класс Exception является наследником TObject и предком всех классов обработки исключительных ситуаций.

Исключительные ситуации генерируются при возникновении ошибок в программе, например при делении на ноль, ошибке при переводе строки в число и т.д. При этом производится вывод диалогового окна с описанием ошибки. Прекращение работы программы при этом не производится, прерывается лишь выполнение текущего блока программы.

По умолчанию, при возникновении исключительной ситуации, начинает работать блок обработки исключительных ситуаций Delphi. Однако пользователь может включать в программу свои блоки обработки, используя конструкции:

try…except – для анализа исключительной ситуации и описания поведения при ней;

Программа пытается обратиться к не принадлежащей ей области памяти или использует недействительный указатель Ошибка при работе с массивами
Ошибка конвертации StrToInt и т.д. Целочисленное деление на ноль Любая ошибка в файловых операциях
Любая ошибка при целочисленных вычислениях Целочисленное переполнение Неверные действия со списками
Любая ошибка при операциях с плавающей точкой Вещественное переполнение Слишком маленькое вещественное значение Вещественное деление на ноль

55

try…finally – для создания обязательно выполняемых блоков, независимо от наличия исключительной ситуации.

Некоторые свойства и методы класса Exception:

property Message: string; – строка, описывающая исключительную ситуацию;

constructor Create (const Msg: string); – простейший конструктор для созда-

ния исключительной ситуации.

Генерацию исключительной ситуации можно произвести с помощью оператора raise.

В Delphi определено множество классов исключений (EConvertError, EMathError, EZeroDivide и т.д.). Возможно создание собственных классов исключений.

EAccessViolation

EArrayError

EConvertError

EDivByZero

EInOutError

EIntError

EIntOverflow

EListError

EMatchError

EOverflow

EUnderfow

EZeroDivide

4.3 TList

Класс TList является наследником TObject и служит для создания списка объектов и обеспечивает:

добавление или удаление объектов в листе;

поиск и доступ к объекту в листе;

сортировку объектов.

Некоторые свойства и методы класса TList:

property Capacity: Integer; – определяет максимальное количество элементов списка, на которые выделена память. Если при добавление нового элемента количество элементов превысит Capacity, то его значение будет автоматически увеличено;

property Count: Integer; – определяет текущее количество элементов в списке;

property Items[Index: Integer]: Pointer; – позволяет получать доступ к задан-

ному элементу листа;

56

function Add(Item: Pointer): Integer; – добавляет новый элемент в конец спи-

ска;

procedure Insert(Index: Integer; Item: Pointer); – добавляет новый элемент в заданное место списка;

procedure Clear; dynamic; – удаляет все элементы из списка, но не разрушает их;

procedure Delete(Index: Integer); – удаляет заданный элемент из списка по номеру;

function Remove(Item: Pointer): Integer; – удаляет заданный элемент из списка

по адресу; Следует помнить, что при работе со списком требуется осуществлять

операции приведения типов.

Первый элемент списка имеет индекс 0, второй - 1 и т.д.

4.4 TPersistent

Класс TPersistent является наследником TObject и предком всех объектов, не являющихся компонентами, использующих возможности копирования свойств и операции с потоками. Он обеспечивает:

чтение и сохранение неопубликованных данных в потоке;

средства для присвоения значений свойствам;

средства для копирования содержимого одного объекта в другой. Некоторыми методами для реализации этих задач являются:

procedure DefineProperties(Filer: TFiler); virtual; – обеспечивает чтение и за-

пись неопубликованных данных из потока, например файла. По умолчанию при записи записываются в поток значения всех опубликованных свойств, а при чтении происходит присваивание считанных значений опубликованным свойствам;

procedure Assign(Source: TPersistent); (Destination.Assign(Source) - обраще-

ние) – копирует в Destination свойства из Source. Если в Destination метод Assign не перекрыт и Destination не знает, как копировать свойства из Source, то вызывается метод AssignTo объекта Source;

procedure AssignTo(Dest: TPersistent); virtual; (Sourse.AssignTo(Destination)) –

копирует в Destination свойства из Source.

Объекты класса TPersistent обычно не создаются.

4.5TCollection

Класс TCollection является наследником TPersistent и служит для создания коллекции из объектов, наследуемых от TCollectionItem. Класс TCollection похож на TList, однако использование определенного класса объектов в качестве элемента дает ряд преимуществ.

Некоторые свойства и методы класса TCollection:

57

property Count: Integer; – определяет число элементов в коллекции;

property ItemClass: TCollectionItemClass; – определяет класс элементов по умолчанию;

property Items[Index: Integer]: TCollectionItem; – обеспечивает возможность доступа к элементу коллекции по его индексу;

procedure Clear; – удаляет все элементы из коллекции и разрушает их;

constructor Create(ItemClass: TCollectionItemClass); – создание коллекции,

требующее указание класса элемента коллекции;

function FindItemID(ID: Integer): TCollectionItem; – обеспечивает возможность

доступа к элементу коллекции по его идентификатору.

Несмотря на задание класса элемента при создании коллекции, в нее можно добавлять любой элемент – наследник от TCollectionItem. Однако в этом случае требуется проверка класса элемента перед извлечением.

Первый элемент коллекции имеет индекс 0, второй - 1 и т.д.

4.6 TCollectionItem

Класс TCollectionItem является наследником TPersistent и служит для создания объектов, которые размещаются в коллекции.

Некоторые свойства и методы класса TCollectionItem:

property Collection: Tcollection; – указывает на коллекцию, в которой находится элемент, и позволяет переносить элемент из одной коллекции в другую;

property ID: Integer; – идентификатор элемента в коллекции. Присваивается при добавлении элемента в коллекцию и является уникальным для данной коллекции. Если элемент удаляется из коллекции, то его идентификатор не может быть больше никому присвоен;

property Index: Integer; – индекс элемента в коллекции, показывающий его текущее положение;

constructor Create(Collection: TCollection); virtual; – создание элемента кол-

лекции, с указанием коллекции, в которую он помещается. Каждый объект, наследуемый от TCollectionItem, может располагаться в одной и только одной коллекции.

За счет наличия у элемента коллекции свойства ID, слежение за элементов коллекции значительно проще, чем за элементом списка.

4.7 TStrings

Абстрактный класс TStrings является наследником TPersistent и служит основой для всех объектов, представляющих собой список строк. Он позволяет:

добавлять и удалять элементы с указанием конкретных позиций;

находить строки и получать к ним доступ;

читать и записывать строки в потоки и файлы;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]