ChangeAnyProc, процедура

Синтаксис


Syntax
var ChangeAnyProc: Pointer;
procedure ChangeAny(var V: Variant);

Описание

Процедура ChangeAnyProc преобразует вариантное значение varAny к типу Variant, используемому в Delphi. Значение varAny представляет собой скрытый тип, который в Delphi может применяться только для присваивания и передачи в качестве аргумента подпрограммы.
Значение ChangeAnyProc по умолчанию - это процедура, которая вызывает ошибку времени выполнения 15 (EVariantError).

Ошибки

Советы и приемы

Модуль CorbaObj устанавливает значение переменной на процедуру, поддерживающую тип Any из CORBA. Если вы не работаете с CORBA, то можете использовать значение varAny для собственных целей.

Пример


Предположим, требуется использовать в приложении вариантные переменные и хранить в них значения 
типа Int64. Тип Variant в Delphi не поддерживает тип Int64, но для хранения значений этого типа 
подходит varAny. Когда Delphi требуется конкретное значение, процедура ChangeAnyProc преобразует 
Int64 в строку, с которой Delphi может работать. Поле VAny - это указатель, и процедура SetVerInt64
выделяет динамическую память для записи значения типа Int64 и сохраняет этот указатель в вариантной 
переменной. Процедура ClearAnyProc освобождает эту память, когда Delphi закончит использование 
вариантного значения
// Изменяет значение Int64, записанное как varAny, к допустимому для
// Variant значению, строке.
procedure ChangeVarInt64(var V: Variant); var Value: Int64; begin if TVarData(V).VType = varAny then begin Value := PInt64(TVarData(V).VAny)^; V := IntToStr(Value); end; end;
... ChangeAnyProc := @ChangeVarInt64;

Смотрите также

    Учебник по языку Pascal          Лабораторные работы по программированию          Справочник



2018-02-13 10:28:47

efeiuhfeihghiurhrqfjhihfihfrifrfrhfrrfhirhfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh




Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: