Массивы типа Variant
Переменной типа Variant, как указывалось в п. 3.3.10 , нельзя присвоить значение обычного статического массива. Это можно сделать только с помощью специальных функций VarArrayCreate и VarArrayOf.
Функция VarArrayCreate определена следующим образом:
Function VarArrayCreate(Const Bounds: Array Of Integer;
VarType: Integer);
Здесь параметр Bounds является массивом, содержащим четное количество целых чисел, каждая пара которых определяет диапазон индекса, соответствующего паре. Параметр VarType определяет тип элементов массива. Он может принимать такие значения, как, например, varInteger, varDouble или varString - соответствие таких значений и определяемых ими типов приводится в пособиях по Object Pascal. Например, для создания вектора V1 из девяти элементов целого типа и матрицы V2 типа Double (размерности 4´6), можно воспользоваться следующими операторами:
Var V1, V2: Variant;
. . .
V1:= VarArrayCreate([2, 10], varInteger);
V2:= VarArrayCreate([0,3, 0,5], varDouble);
Пример создания и использования массива типа Variant дают следующие строки:
Var A: Variant;
. . .
A:= VarArrayCreate([0, 2], varVariant);
A[0]:= 12e-6;
A[1]:= 20;
A[2]:= 'Количество = ' + IntToStr(A[1]);
ShowMessage(A[1]); ShowMessage(A[2]);
Label1.Caption:= A[2];
Функция VarArrayOf возвращает одномерный массив элементов, задаваемый параметром Values, и имеет следующий интерфейс:
Function VarArrayOf(Const Values: Array Of Variant): Variant;
Например, можно «превратить» элемент A[2] из вышеприведенного примера в вектор с помощью операторов:
A[2]:= VarArrayOf([-1.5, ’Параметр = ’, 20]);
ShowMessage(A[2][1] + IntToStr(A[2][2]));
Дата добавления: 2015-08-21; просмотров: 645;