Функція VarType в Delphi повертає поточний тип Variant змінної.
Variants unit
function VarType ( const VariantVariable : Variant ) : Integer;
Функція VarTypeповертає ціле число, що представляє поточний тип даних дляVariant змінної VariantVariable.
Цей 16 бітний тип даних, розбитий на біти старшого розряду (4 біти) та молодшого розряду (12 біт). Біти старшого розряду дають тип мета даних:
- varArray: Якщо Variant містить масив даних
- varByRef: Якщо Variant опосередковано звертається до даних
Біти молодшого розряду містять одне з таких значень:
- varEmpty
- varNull
- varSmallint
- varInteger
- varSingle
- varDouble
- varCurrency
- varDate
- varOleStr
- varDispatch
- varError
- varBoolean
- varVariant
- varUnknown
- varShortInt
- varByte
- varWord
- varLongWord
- varInt64
- varStrArg
- varString
- varAny
Використовуйте VarTypeMask,щоб відфільтрувати мета частина при пошуку основного типу данихVariant.
Функція VarType: Приклад коду
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
Схожі функції та команди
Variant — Тип змінної, який може тримати типи даних, що змінюються.
VarTypeMask — Маска для частини мета типу змінноїVariant.
