Навигация
Оглавление
Значения переменных с типом 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.

 

Сайт создан в системе uCoz