Советы по Delphi


         

вводит понятие вариантного типа


Delphi 2. 0 вводит понятие вариантного типа (variant type), дающее вам мощный и гибкий инструмент для динамического изменения типа переменной. Это может оказаться полезным при работе с OLE-автоматизацией или определенных типах операциях с базой данных, где тип параметра, передаваемого сервером приложению Delphi, заранее неизвестен.

Вариантный тип является 16-битной структурой, хранящей информацию о типе вместе с самой величиной, которая, в свою очередь, может представлять из себя строку, целое или значение с плавающей точкой. Компилятор признает стандартный идентификатор типа Variant как объявление variant.

В случае, если вариантный тип несовместим с типом, с которым необходимо завершить действие, вариантный тип, если возможно, автоматически преобразует свою величину к совместимому значению. К примеру, если вариантный тип содержит целое и вы присваиваете это строке, вариантный тип преобразует свое значение в строку, содержащую номер целочисленного значения, которая, впоследствие, присваивается строке.

Вы также можете присвоить вариантное выражение переменной стандартного типа или передавать значение вариантного типа в качества параметра программе, ожидающей в качестве параметра стандартный тип. Delphi, при возможности, преобразует значение вариантного типа к необходимому типу, а если это невозможно, то она возбудит исключение.

Денежный (Currency) тип

Delphi 2.0 вводит понятие нового, денежного (Currency) типа, являющегося типом с плавающей точкой и разработанного специально для работы с большими значениями, имеющими большую точностью. Данный тип для присвоения совместим со всеми типами, поддерживающими плавающую точку (и вариантным типом), но в действительности он хранится в виде 64-битного целого значения, очень похожего на тип Comp.

Значения денежного типа имеют точность до четырех десятичных знаков после запятой. Другими словами, значение с плавающей точкой хранится в целочисленном формате, где в четырех младших разрядах хранится значение денежного типа после запятой.

Измененные типы данных

Зависимые от реализации типы Integer и Cardinal в Delphi 2.0 представлены 32-битными величинами, в Delphi 1.0 они были 16-битными. Если вам необходимо объявить данные 16-битного целого типа, используйте типы SmallInt и Word.

Дополнительный синтаксис

Вы можете включить в модуль дополнительную секцию finalization. Finalization - аналог initialization (инициализация), и срабатывает при завершении приложения. Вы можете думать о секции finalization как об "коде выхода" из модуля ("код покидания модуля"). Секция finalization перекрывает соответствующие вызовы ExitProc и AddExitProc в Delphi 1.0.

Секция finalization начинается с зарезервированного ключевого слова finalization. Секция finalization должна располагаться после секции initialization, но до конечного end.

После выполнения кода секции initialization, соответствующая секция initialization гарантированно будет выполнена при завершении приложения. Секция Finalization должна корректно обрабатывать частично инициализированные данные, по аналогии с деструктором класса.

Секции Finalization выполняются в порядке, обратном секциям initialized. Например, если ваше приложение инициализирует модули в порядке A, B, и C, то при завершении приложения порядок выполнения секций finalization таков: модуль C, B, и A.

Схема модуля может быть похожей на эту:

unit UnitName;
interface
{ список uses; опция }
...
implementation

{ список uses; опция }
...
initialization
{ опция }
...
finalization
{ опция }
...
end
.
[000856]


Содержание  Назад  Вперед