Иллюстрированный самоучитель по Kylix
ac3ae3b5

Описание процедурных указателей



Листинг 2.3. Описание процедурных указателей

type
TIntegerFunction = function: Integer; TProcedure = procedure; TStrProc = procedure(const S: string);
TMathFunc = function (X: Double): Double; var
F: TIntegerFunction; / / F - это функция без параметров, которая
/ / возвращает целое число
Proc: TProcedure; / / Proc - это процедура без параметров SP: TStrProc; / / SP - это процедура, у которой есть один
/ / строковый параметр М: TMathFunc; / / М - это функция с действительным параметром
/ / данная функция возвращает действительное значение

Для описания данных процедурного типа используется конструкция of object. Например:

type

TMethod = procedure of object;

TNotifyEvent = procedure(Sender: TObject) of object;

Данные процедурного типа применяются, например, для назначения обработчиков события.

Вариантные типы данных

Иногда возникает необходимость работы с типами данных, которые не могут быть определены во время разработки приложения или тип которых изменяется. Для этого в язык Object Pascal были введены так называемые вариантные типы данных. Переменные вариантного типа могут содержать данные разных типов, кроме структурных типов данных, указателей и типа Int64. Для объявления переменной вариантного типа используется слово variant. Все типы являются совместимыми с типом variant, и компилятор делает необходимые преобразования типов автоматически.

Пример, приведенный на листинге 2.4, показывает применение вариантного типа данных.



Содержание раздела