Delphi-Help

VarTypeMask

Печать
Рейтинг пользователей: / 0
ХудшийЛучший 

VarTypeMask

Описание

const VarTypeMask = $0FFF;

Константа VarTypeMask обеспечивает маску для использования с функцией VarType. Это позволяет части мета типа Variant быть исключенным при проверке основного типа данных Variant.
Этот 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

Пример кода

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

Примечание

Авторизация



Счетчики