Значения переменных с типом Variant
Переменные с непостоянным типом содержат целые, вещественные, строковые,
булевские значения, дату и время, массивы и др. Кроме того, переменные
с типом Variant принимают два специальных значения: Unassigned и Null.
Значение Unassigned показывает, что переменная является нетронутой,
т.е. переменной еще не присвоено значение. Оно автоматически устанавливается
в качестве начального значения любой переменной с типом Variant.
Значение Null показывает, что переменная имеет неопределенное значение.
Если в выражении участвует переменная со значением Null, то результат
всего выражения тоже равен Null.
Переменная с типом Variant занимает в памяти 16 байт. В них хранятся
текущее значение переменной (или адрес значения в динамической памяти)
и тип этого значения.
Тип значения выясняется с помощью функции
VarType(const V: Variant): Integer;
Возвращаемый результат формируется из констант, перечисленных в таблице
2.10. Например, следующий условный оператор проверяет, содержит ли переменная
строку (массив строк):
if VarType(V) and varTypeMask = varString then ...
Код типа Значение Описание
varEmpty $0000 Переменная содержит значение Unassigned.
varNull $0001 Переменная содержит значение Null.
varSmallint $0002 Переменная содержит значение типа Smallint.
varInteger $0003 Переменная содержит значение типа Integer.
varSingle $0004 Переменная содержит значение типа Single.
varDouble $0005 Переменная содержит значение типа Double.
varCurrency $0006 Переменная содержит значение типа Currency.
varDate $0007 Переменная содержит значение типа TDateTime.
varOleStr $0008 Переменная содержит ссылку на строку формата Unicode
в динамической памяти.
varDispatch $0009 Переменная содержит ссылку на интерфейс IDispatch
(интерфейсы рассмотрены в главе 6).
varError $000A Переменная содержит системный код ошибки.
varBoolean $000B Переменная содержит значение типа WordBool.
varVariant $000C Элемент варьируемого массива содержит значение типа
Variant (код varVariant используется только в сочетании с флагом varArray).
varUnknown $000D Переменная содержит ссылку на интерфейс IUnknown (интерфейсы
рассмотрены в главе 6).
varShortint $0010 Переменная содержит значение типа Shortint
varByte $0011 Переменная содержит значение типа Byte.
varWord $0012 Переменная содержит значение типа Word
varLongword $0013 Переменная содрежит значение типа Longword
varInt64 $0014 Переменная содержит значение типа Int64
varStrArg $0048 Переменная содержит строку, совместимую со стандартом
COM, принятым в операционной системе Windows.
varString $0100 Переменная содержит ссылку на длинную строку.
varAny $0101 Переменная содержит значение любого типа данных технологии
CORBA
Флаги
varTypeMask $0FFF Маска для выяснения типа значения.
varArray $2000 Переменная содержит массив значений.
varByRef $4000 Переменная содержит ссылку на значение.
Таблица 2.10. Коды и флаги варьируемых переменных
Функция
VarAsType(const V: Variant; VarType: Integer): Variant;
позволяет вам преобразовать значение варьируемой переменной к нужному
типу, например:
V1 := '100';
V2 := VarAsType(V1, varInteger);
Пока это все, что нужно знать о типе Variant, но мы к нему еще вернемся
при обсуждении технологии COM Automation.
|