Delphi тип Variant містить типи даних, що змінюються.
System unit
type Variant;
Тип даних Variant забезпечує гнучкий універсальний тип даних.
Він може містити що завгодно, крім структурованих даних і покажчиків. Але використовуйте з обережністю, тому що при використанні Variant код набуває неясності і набуває потенційних помилок при виконанні програми.
Використовуйте VarType разом з VarTypeMask, щоб визначити поточний тип даних, в який встановлено Variant.
Тип Variant корисний в дуже особливих обставинах, коли типи даних і їх вміст визначаються під час виконання, а не під час компіляції.
Примітка.
Рядки Variant не можуть бути індексованими.
Тип Variant в Delphi: Ілюстрування декількох 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
Подібні функції, процедури та команди
Null — змінна, яка не має жодного значення.
PVariant — покажчик на значення Variant.