Разместите нашу кнопку!

Новые статьи:

Programming articles

Создание сайтов на шаблонах

Множество вариантов работы с графикой на канве

Шифруем файл с помощью другого файла

Перехват API функций - Основы

Как сделать действительно хороший сайт

Создание почтового клиента в Delphi 7

Применение паскаля для решения геометрических задач

Управление windows с помощью Delphi

Создание wap сайта

Операционная система unix, термины и понятия

SQL враг или друг

Возникновение и первая редакция ОС UNIX

Оптимизация проекта в Delphi

Ресурсы, зачем нужны ресурсы

Термины программистов 20 века

Советы по созданию собственного сайта с нуля

Шифруем файл с помощью пароля

Фракталы - геометрия природы

Crypt - Delphi программа для шифрования

Рассылка, зачем она нужна и как ее организовать?

Учебник по C++ для начинающих программистов

Уроки для изучения ассемблера

Загадочный тип PCHAR

Средства по созданию сайтов

Операторы преобразования классов is и as

Borland Developer studio 2006. Всё в одном

Создание базы данных в Delphi, без сторонних БД


Software engineering articles



VarType

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

Описание:

    Процедура VarType возвращает целое число, отображающее текущий тип данных для переменной VariantVariable с типом 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

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

Пример кода:

var
   myVar : Variant;

begin
   // Assign various values to a Variant
   // and then show the resulting Variant type
   ShowMessage('Variant value = not yet set');
   ShowBasicVariantType(myVar);

   // Simple value
   myVar := 123;
   ShowMessage('Variant value = 123');
   ShowBasicVariantType(myVar);

   // Calculated value using a Variant and a constant
   myVar := myVar + 456;
   ShowMessage('Variant value = 123 + 456');
   ShowBasicVariantType(myVar);

   myVar := 'String '+IntToStr(myVar);
   ShowMessage('Variant value = String 579');
   ShowBasicVariantType(myVar);
end;

// Show the type of a variant
procedure TForm1.ShowBasicVariantType(varVar: Variant);
var
   typeString : string;
   basicType : Integer;

begin
   // Get the Variant basic type :
   // this means excluding array or indirection modifiers
   basicType := VarType(varVar) and VarTypeMask;

   // Set a string to match the type
   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;

   // Show the Variant type
   ShowMessage('Variant type is '+typeString);
end;

Результат выполнения:

Variant value = not yet set
Variant type = varEmpty
Variant value = 123
Variant type = varByte
Variant value = 123 + 456
Variant type = varInt64
Variant value = String 579
Variant type = varString