Процедуры обработки вариантных массивов
В табл. 1.9 перечислены стандартные процедуры и функции обработки вариантных массивов, определенные в модуле System.
Таблица 1.9. Процедуры и функции обработки вариантных массивов
| Процедура/функция | Описание |
| VarArrayCreate | Создает вариантный массив с заданными пределами и типом |
| VarArrayDimCount | Возвращает число измерений данного вариантного массива |
| VarArrayHighBound | Возвращает верхний предел измерения вариантного массива |
| VarArrayLock | Фиксирует вариантный массив |
| VarArrayLowBound | Возвращает нижний предел измерения вариантного массива |
| VarArrayOf | Возвращает вариантный массив с указанными элементами |
| VarArrayRedim | Изменяет верхний предел вариантного массива |
| VarArrayUnlock | Отменяет фиксацию вариантного массива |
| VarAsType | Преобразует вариантную переменную в указанный тип |
| VarCast | Преобразует вариантную переменную в указанный тип и записывает значение |
| VarClear | Сбрасывает значение вариантной переменной |
| VarCopy | Копирует одну вариантную переменную в другую |
| VarFromDateTime | Возвращает вариантную переменную, содержащую переменную даты/времени |
| VarIsArray | Возвращает True, если вариантная переменная является массивом |
| VarIsEmpty | Возвращает True, если вариантная переменная содержит Unassigned |
| VarIsNull | Возвращает True, если вариантная переменная содержит Null |
| VarToDateTime | Преобразует вариантную переменную в значение даты/времени |
| VarType | Преобразует вариантную переменную в указанный тип и записывает значение |
В табл. 1.10 перечислены типы значении, которые можно присваивать вариантным переменным, и вариантные типы результата.
Таблица 1.10. Вариантные типы
| Тип выражения | Вариантный тип |
| Целый | varlnteger |
| Действительный, кроме Currency | varDouble |
| Currency | varCurrency |
| Строковый и символьный | varString |
| Булев | varBoolean |
Вариантные переменные в отношении операции присвоения совместимы с элементарными типами данных Object Pascal (Integer, Real, String и Boolean). Все нужные преобразования Delphi выполняет автоматически. При необходимости конкретно указать, что вариантное значение надо интерпретировать как целое, действительное, строковое или булево, следует задать тип в форме TypeName (V), где TypeName — идентификатор соответствующего типа, V— выражение Variant. Задание типа изменяет только способ считывания значения из вариантной переменной, а не само значение внутри ее. Внутреннее же представление изменяется с помощью процедур VarAsType и VarCast.