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

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

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

  Реклама:

 

Variant
Тип
Тип переменной, который может держать изменяющиеся типы данных System unit
  type Variant;

Google  
 
Описание
Тип данных Variant обеспечивает гибкий универсальный тип данных.

Он может содержать все: и структурированные данные и указатели. Но используйте с осторожностью, так как при использовании Variant код приобретает неясность и приобретает потенциальные ошибки при выполнении программы.

Используйте VarType вместе с VarTypeMask, чтобы определить текущий типы данных, в который установлен Variant.

Тип Variant полезен в очень определенных обстоятельствах, где типы данных и их содержание определяются во время выполнения, а не во времени компиляции.
Примечания
Строки Variant не могут быть индексированы.
Похожие команды
Null  Переменная, которая не имеет никакого значения

PVariant  Указатель на значение 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
 


Copyright © 2004-2016 Delphi Sources (источник – "DelphiBasics.ru")
 


Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook