Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  

форум программистов

Основы Delphi
VarType
Функция
Возвращает текущий тип 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.
Похожие команды
Variant  Тип переменной, который может держать изменяющиеся типы данных

VarTypeMask  Маска для части мета типа переменной 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
 


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика



Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки? Slurm подготовили для вас особенный продукт!





форум программистов


© Форум Delphi  |  Форум Pascal   |  Блог программистов   |  Исходники Delphi   |  Автор сайта  |  Ссылки   |  Английская версия