Использование Variant в выражениях. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Использование Variant в выражениях.



К типу Variant можно применять все операции, за исключением ^, is и in. Операции над операндами типа Variant возвращают и значение типа Variant. Они возвращают Null, если такое значение имеет один или оба операнда. Если хотя бы один операнд имеет значение Unassigned, возникает ошибка.

Если один из операндов (для бинарных операций) является Variant, второй преобразуется к типу Variant.

В основном при выполнении операций над вариантами действуют те же правила, что и для "обычных" операндов. Например, если V1 и V2 являются вариантами, один из которых содержит вещественное значение, а другой – целочисленное, результат будет вещественным.

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

Можно создавать и обрабатывать массивы вариантов, но можно также создать и вариантный массив. Вариантные массивы не описываются, а создаются с помощью стандартных функций VarArrayCreate и VarArrayOf. Например,

var V: Variant;

...

V:= VarArrayCreate([ - 1, 9], varInteger);

Теперь переменная V может быть индексирована, однако ее нельзя передавать подпрограмме как параметр-переменную. Вариантные массивы всегда индексируются целочисленным индексом.

Функция VarArrayOf создает и заполняет вариантный массив. Значения элементов массива передаются функции в качестве параметров, например

V:= VarArrayOf([1, 10, 100, 1000]);

После выполнения этого оператора V[1] = 10. Вариантные массивы могут быть многомерными, чего можно добиться таким образом:

V[i]:= VarArrayOf([1, 10, 100, 1000]);

Теперь V – двухмерный массив.

В модуле System определен также ряд других подпрограмм, которые предназначены для выполнения различных действий над вариантными массивами (получение границ индексов, изменение числа элементов массива и т.д.).

Пример из Help Delphi 6.0:

var A: Variant;

begin

A:= VarArrayCreate([0, 4], varVariant);

A[0]:= 1;

A[1]:= 1234.5678;

A[2]:= 'Hello world';

A[3]:= True;

A[4]:= VarArrayOf([1, 10, 100, 1000]);

WriteLn(A[2]); { Hello world }

WriteLn(A[4][2]); { 100 }

end;

Тип OleVariant представляет собой такой вариант, который содержит только COM-совместимые типы. Когда Variant присваивается OleVarian t, несовместимые типы преобразуются в совместимые аналоги.

Рассмотрим следующий программный код. var

V1,V2,V3: variant; begin
VI: ='1';
V2:='5';
V3:=10;
V1:=V1+V2+V3; end;
Как вы думаете, какой результат будет в переменной На первый взгляд, должно быть число 16, если программа попытается сложить все как числа, или строка "1510", если сложит как строку. А реально будет 25, потому что сначала будет сложение строк "1" и "5", в результате чего получиться 15, а
потом произойдет сложение чисел 15 и 10.

Активно используется в БД в таких методах,как LookUp и тд…

Подпрограммы Delphi. Виды параметров. Локальные переменные, вложенные подпрограммы.

Подпрограммы

Ранее уже рассказывалось о стандартных подпрограммах: процедурах и функциях, —

во множестве входящих в поставку Delphi 7. Далее описывается технология созда-

ния собственных подпрограмм.

Структура подпрограммы

Описание подпрограммы состоит из трех частей: заголовка подпрограммы, локаль-

ного описания и тела подпрограммы. Заголовок используется, чтобы явно ввести в

Подпрограммы 55

программу новую подпрограмму и обозначить начало ее описания. Локальные опи-

сания представляют собой набор описаний типов, переменных, констант и других

подпрограмм, которые действуют только в рамках данной подпрограммы. Тело под-

программы — это логический блок begin/end, содержащий операторы и команды

Паскаля и реализующий нужную логику работы.

J ВНИМАНИЕ Описание подпрограммы —этотолько описание, которое никогда

не выполняется само по себе и может располагаться в любом месте

исходного текста (но обязательно до первого вызова подпрограм-

мы). Вызывается процедура или функция только внутри логического

блока begin/end с указанием конкретных значений для каждого из

ее параметров.

Заголовок

Заголовок подпрограммы состоит из трех частей: ключевого слова, характеризую-

щего тип подпрограммы (процедура — procedure, или функция — function), списка

параметров, перечисленных через точку с запятой и взятых в круглые скобки, и

(только для функций) типа возвращаемого значения, указываемого вслед за двоеточием.

Список параметров содержит параметры, каждый из которых представляет собой про-

извольное имя переменной и соответствующий ей тип через двоеточие. Если не-

сколько параметров имеют одинаковый тип, то их можно перечислить через запятую.

procedure ComputefX: Integer; S: String);

function Compare(Al, A2: Byte; Stroka: String): Real;

procedure ShowMap;.

function GameOver: Boolean;

Список параметров может быть опущен. Для некоторых параметров могут быть

заданы значения по умолчанию (все параметры с такими значениями должны

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

чанию).

procedure MyProc

(I: integer; il: integer = 1; 12: integer = 2);

В подобных случаях заключительные параметры при вызове процедуры можно

опускать — они получат значения по умолчанию.

МуРгос(1, 2 ];

Реально процедура вызывается с тремя параметрами, как если бы использовался

следующий оператор.

МуРгос(1, 2, 2);



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 170; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.6.75 (0.007 с.)