Описание |
Тип данных Variant обеспечивает гибкий универсальный тип данных.
Он может содержать всё, но структурированные данные и указатели.
Но используйте с осторожностью, так как при использовании Variant код приобретает неясность и приобретает потенциальные ошибки при выполнении программы.
Используйте VarType вместе с VarTypeMask, чтобы определить текущий типы данных, в который установлен Variant.
Тип Variant полезен в очень определенных обстоятельствах, где типы данных и их содержание определяются во время выполнения, а не во времени компиляции.
|
|
Примечания |
Строки Variant не могут быть индексированы.
|
|
Похожие команды |
Null Переменная, которая не имеет никакого значения
PVariant Указатель на значение Variant
| |
|
Пример кода : Иллюстрирование нескольких Variant назначений и результирующих типов данных |
var
myVar : Variant;
begin // Назначение различных значений
Variant // и затем показ
результирующего типа Variant
ShowMessage('Variant значение = not yet set');
ShowBasicVariantType(myVar);
// Простое значений
myVar := 123;
ShowMessage('Variant значение = 123');
ShowBasicVariantType(myVar);
// Вычисленное значение, используя
Variant и константу
myVar := myVar + 456;
ShowMessage('Variant значение = 123 + 456');
ShowBasicVariantType(myVar);
myVar := 'String '+IntToStr(myVar);
ShowMessage('Variant значение = String 579');
ShowBasicVariantType(myVar);
end;
// Показ тип variant
procedure TForm1.ShowBasicVariantType(varVar: Variant);
var
typeString : string;
basicType : Integer;
begin // Получение основного типа
Variant : // это означает,
исключение массива или косвенных модификаторов
basicType := VarType(varVar) and VarTypeMask;
// Установка строки для согласования
типа
case basicType of
varEmpty : typeString := 'varEmpty';
varNull : typeString := 'varNull';
varSmallInt : typeString := 'varSmallInt';
varInteger : typeString := 'varInteger';
varSingle : typeString := 'varSingle';
varDouble : typeString := 'varDouble';
varCurrency : typeString := 'varCurrency';
varDate : typeString := 'varDate';
varOleStr : typeString := 'varOleStr';
varDispatch : typeString := 'varDispatch';
varError : typeString := 'varError';
varBoolean : typeString := 'varBoolean';
varVariant : typeString := 'varVariant';
varUnknown : typeString := 'varUnknown';
varByte : typeString := 'varByte';
varWord : typeString := 'varWord';
varLongWord : typeString := 'varLongWord';
varInt64 : typeString := 'varInt64';
varStrArg : typeString := 'varStrArg';
varString : typeString := 'varString';
varAny : typeString := 'varAny';
varTypeMask : typeString := 'varTypeMask';
end;
// Показ типа Variant
ShowMessage('Variant тип = '+typeString);
end;
|
Variant значение = ещё не установлено
Variant тип = varEmpty
Variant значение = 123
Variant тип = varByte
Variant значение = 123 + 456
Variant тип = varInt64
Variant значение = String 579
Variant тип = varString
|
|