Советы по Delphi


         

определено несколько новых типов


Новые возможности языка в Delphi 2.0 (32-бит). В Delphi 2. 0 определено несколько новых типов данных, использующих возможности, доступные в Windows 95. В Delphi 2.0 также были изменены несколько типов данных для того, чтобы воспользоваться преимуществами 32-битной среды.

Новые типы данных включают в себя:

Character type (символьный тип) String type (строковый тип) Variant type (вариантный тип) Currency type (денежный тип) Измененные типы данных:

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

секция модуля finalization

Новые типы данных

Character type (символьный тип)

Delphi 2.0 вводит новый, "широкий" тип символов для поддержки Unicode. Delphi 1.0 рассматривал символы в виде 8-битных величин типа Char.

Вот стандартные типы, представляющие символы в Delphi 2.0:

ANSIChar - Стандартный 8-битный ANSI-символ, эквивалент типа Char в предшествующих версиях Delphi. WideChar - 16-битный символ, представляющий символ Unicode. Если старший байт является нулем, младший байт содержит символ ANSI. Char - тип по умолчанию, Char является эквивалентом ANSIChar. Char работает также, как и зависящий от реализации целочисленный тир Integer, который эквивалентен SmallInt в 16-битной версии Delphi и LongInt в 32-битной версии Delphi. В Delphi 2.0 Char по умолчанию является 8-битной величиной. Символьные типы-указатели:

Тип-указатель Символьный тип ------------- -------------- PANSIChar ANSIChar PWideChar WideChar PChar Char Семантика всех символьных типов-указателей идентична. Единственная изменяющаяся вещь - размер символа, на который ссылается указатель.

String Type (строковый тип)

Delphi 2.0 поддерживает строки практически неограниченной длины, в отличие от строк длиной в 255 символов, поддерживаемой ранее. Новая директива компилятора, $H, позволяет задать для ключевого слова "string" новую, или старую длину строки. Состояние по умолчанию $H, т.е. $H+, используется строка неограниченной длины. Все компоненты Delphi 2.0 используют новый тип строки с неограниченной длиной.

Вот новые строковые типы:

ShortString - Нумерованная строка с максимальной длиной 255 символов. Эквивалент типа String в Delphi 1.0. Каждый элемент имееет тип ANSIChar. AnsiString - Строка нового стиля с переменной длиной, также называемая "длинной строкой." Каждый элемент имееет тип ANSIChar. string - Или короткая строка, или строка ANSI, в зависимости от значения директивы компилятора $H. WideString - Длинная строка, каждый элемент имеет тип WideChar. Вот вопросы совместимости.

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

Операции с Эквивалент для короткой строкой длинной строки Пояснение ---------------- -------------- --------- PString type string Все длинные строки распределяются динамически, поэтому PString излишен и требует более трудного программирования. S[0] := L SetLength(S,L) Поскольку длинные строки распределяются динамически, SetString(S,P,L) то для распределения необходимого количества памяти вы должны вызывать процедуру SetLength. StrPCopy StrPCopy(Buffer, (Buffer, S) PChar(S)) Вы можете осуществить приведение типа длинной строки к строке с терминирующим нулем. Адрес длинной строки совпадает с адресом ее первого символа, а ее длина рассчитывается до терминирующего нуля. S := StrPas(P) S := P Длинные строки могут автоматически копироваться из строк с терминирующим нулем. Длинные строки не могут передаваться в качестве параметров типа "открытых строк" или переменных параметров короткой строки (var-параметры).

Вариантный тип


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