Справочник функций и процедур Delphi: VarTypeMask

  Навигация по первой букве:

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

  Навигация по категории:

Compiler directives, Directives, Keywords / Types, Variables, Constants / Functions, Procedures

VarTypeMask
Константа
Маска для части мета типа переменной Variant Variants unit
  const VarTypeMask = $0FFF;

Delphi Sources

Описание
Константа 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
Похожие команды
Variant  Тип переменной, который может держать изменяющиеся типы данных

VarType  Возвращает текущий тип Variant переменной

 
Пример кода : Иллюстрация нескольких Variant типов, используя VarTypeMask
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
 


Последние добавленные на сайт исходники

TDictionary Custom Sort

Fast Watermark Sources

3D Designer

Sik Screen Capture

Patch Maker

Айболит (remote control)

 

ListBox Drag & Drop

Доска для игры Реверси

Графические эффекты

Рисование по маске

Перетаскивание изображений

Canvas Drawing

 

Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software (источник – "DelphiBasics")

Группа ВКонтакте