Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Pascal и Delphi / Иллюстрированный самоучитель по Delphi 6 / Часть II . Язык Object Pascal /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Варианты - Программирование от RIN.RU
Варианты



Преобразование вариантов к данным других типов


При участии вариантов в выражениях, а также при присваивании их значений переменным других типов тип размещенных в варианте данных преобразуется по следующим правилам:


Здесь


  • К целым Отнесены varByte, varSmallInt, varlnteger/ varError;

  • К вещественным - varSingle, varDouble/ varCurrency;

  • К строковым -var String, varOleStr.




Подпрограммы для работы с вариантами


Для работы с вариантами можно использовать такие подпрограммы:


Таблица 10.2. Подпрограммы для работы с вариантами
function VarAsType(const V: Variant; VarType: Integer): Variant; Преобразует данные варианта V к типу, определяемому параметром VarType
procedure VarCast(var Dest: Variant; const Source: Variant; Var Type: Integer) ; Преобразует данные варианта Source к типу,определяемому параметром VarType, и помещает результат в переменную Dest
procedure VarClear(var V: Variant) ;Освобождает динамическую память, если она была связана с вариантом, и дает ему тип varEmpty
procedure VarCopy(var Dest: Variant; const Source: Variants; Копирует параметр Source в вариант Dest
function VarFrom-DateTime(DateTime: TDateTime):Variant; Возвращает вариант, содержащий данные DateTime типа дата-время
function VarIsEmpty(const V: Variant): Boolean; Возвращает True, если вариант V не содержит данных
function VarIsNull(const V: Variant) : Boolean; Возвращает True, если вариант V содержит данные неопределенного типа (varNull) ',
function VarToDateTime(const V:Variant): TDateTime) ; Преобразует данные варианта V к типу дата-время
function VarToStr(const V: Vari ant) : String; Преобразует данные варианта V к строке ;
function VarType(const V: Variant) : Integer; Возвращает тип хранящихся в варианте данных i



Вариантные массивы


Значением варианта может быть массив данных, такие варианты называются вариантными массивами. (Не путайте с обычным или динамическим массивом, элементами которого являются варианты!) Значениями элементов вариантного массива могут быть любые допустимые для варианта значения, кроме строк varstring. Значениями элементов вариантного массива могут быть и варианты, а это значит, что в таком массиве могут одновременно храниться данные разных типов (и в том числе строки). Например:


var
V: Variant;
begin
// Создаем одномерный вариантный массив с 5 элементами:
V := VarArrayCreate([0, 4], varVariant);
// Наполняем его:
V[0] := 1; //Тип целый
V[1] := 1234.5678; //Тип вещественный
V[2] := 'Hello world'; //Строковый тип
V[3] := True; //Логический тип
//Пятым элементом исходного массива сделаем еще один массив:
V[4] := VarArrayOf([1, 10, 100, 1000]);
Caption := V[2]; //Hello world
IbOutput.Caption := IntToStr(V[4][2]); //200
end;


Все действия с вариантными массивами осуществляются с помощью следующих процедур и функций:


Таблица 10.3. Подпрограммы для работы с вариантными массивами
function VarArrayCreate(const Bounds: array of Integer; VarType: Integer): Variant; Создает вариантный массив из элементов типа VarType с количеством и границами измерений, указываемых параметром Bounds
function VarArrayDimCount(const A: Variant): Integers; Возвращает количество измерений вариантного массива А или 0, если А не массив
function VarArrayHighBound(const A: Variant; Dim: Integer): Integer; Возвращает верхнюю границу индекса вариантного массива А по измерению Dim
function VarArrayLock(var A: Variant): Pointer;Блокирует массив (предотвращает его возможные изменения размеров) и возвращает указатель на связанные с ним данные
function VarArrayLowBound(const A: Variant; Dim: Integer): Integers; Возвращает нижнюю границу индекса вариантного массива А по измерению Dim
function VarArrayOf(const Values: array of Variant): Variants;Создает одномерный вариантный массив по перечню значений, содержащихся в открытом массиве Values. Нижняя граница индексов вариантного массива в этом случае равна 0
procedure VarArrayRedim(var A: Variant; HighBound: Integer) ;Изменяет верхнюю границу индекса вариантного массива А на величину HighBound. Вызов процедуры игнорируется, если массив был заблокирован функцией VarArrayLock
function VarArrayRef(const A:Variant): Variants; Возвращает ссылку на вариантный массив. Используется при обращении к API-функциям
procedure VarArrayUnlock(var A: Variant) Отменяет действие функции VarArrayLock



<<<  НазадВперед  >>>
 1  2  3 


 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь