Обзор Delphi 4


Андрей Матвеев, andreim@chat.ru (Окончание. Начало - "КИ", 16-17)


Поддержка 2000 года
Когда наступит 2000 год, немало проблем принесут даты, в которых год указан двумя цифрами. Программы не смогут понять, к какому тысячелетию принадлежит год. Глобальным решением данной проблемы является ввод года полностью, четырьмя цифрами. Временное решение проблемы существует в Delphi 4 для функций StrToDate и StrToDateTime. Для этого введена новая переменная TwoDigitYearCenturyWindow типа word. В первую очередь определяется CenturyBase путем вычитания значения этой переменной из значения текущего года. Далее определяется столетие, к которому относится CenturyBase, и к значению года, введенному двумя цифрами, добавляется это значение. Полученный результат сравнивается со значением начала CenturyBase, и, если он меньше, то к этому результату добавляется еще 100 лет.

Вот отрывок из исходного кода RTL, описывающего эти действия (в Y находятся два знака года даты):

Таким образом, значение TwoDigit YearCenturyWindow, равное 0, по умолчанию определяет, что год принадлежит к текущему тысячелетию.


Изменения и дополнения визуальных компонент
У каждого пункта меню появилось свойство Bitmap, с помощь которого можно разместить рядом с наименованием небольшое изображение - файл в формате .BMP.

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

У множества компонент появились новые свойства для взаимодействия с новыми компонентами.


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

ControlBar на странице Additional позволяет сделать в вашей программе такую же панель, как в Microsoft Office 97, и разместить на ней различные компоненты, которые пользователь сможет сам перемещать в пределах панели по своему усмотрению. На странице Win32 появились две новых компоненты: MonthCalendar, представляющий собой открытый календарь, в котором пользователь может выбрать дату или диапазон дат, и PageScroller, предназначенный для прокрутки узких окон, таких, как панель инструментов.

На странице Internet произошло немало изменений. Клиентские Internet компоненты NetMasters теперь носят префикс NM. В связи с этим компоненты FTP, HTTP, NNTP, POP3, SMTP, UDP переименованы соответственно на NMFTP, NMHTTP, NMNNTP, NMPOP3, NMSMTP, NMUDP. Появился и большой ряд новых компонент. DataSetPageProducer собирает последовательность HTML команд для просмотра записей из базы данных в табличном формате. NMDayTime и NMTime получают дату и время с серверов. NMEcho посылает сообщения и ответ от эхо серверов. NMFinger получает информацию о пользователях с finger сервера. NMMsg посылает текстовые сообщения. NMMsgSrv принимает сообщения, посланные с помощью NMMsg. NMUUPro-cessor кодирует и декодирует MIME и UUE файлы. NMStrm посылает поток к NMStrmServ. NMStrmServ принимает поток от NMStrm. PowerSock является базовым классом и помогает создавать новые протоколы. NMGeneralServer - базовый класс для построения серверов. HTML реализует просмотрщик HTML кода. NMURL осуществляет перевод между форматом данных URL и стандартными строками.

Со страницы DataAccess исчезли компоненты ClientDataSet, RemoteServer, MidasConnection (они перенесены на новую страницу Midas) и появился новый компонент NestedTable, предназначенный для поддержки вложенных таблиц.

Новая страница Midas (Multi-tiered Distributed Application Services) содержит все необходимое для построения корпоративных систем и клиент-серверных баз данных. DCOMConnection устанавливает DCOM соединение с удаленным сервером, CorbaConnection устанавливает Corba соединение, SocketConnection устанавливает TCP/IP соединение, OLEnterpriseConnection OLEnterprice соединение, DataSetProvider и Provider обеспечивают информацией из базы данных клиентскую программу и принимают изменения от нее, SimpleObjectBroker сохраняет список доступных для соединения серверов.

Страница QReport содержит QuickReport версии 3.0. Он практически совместим с QuickReport 2.0, но содержит также ряд дополнительных компонент. QRTextFilter, QRCSVFilter и QRHTMLFilter предназначены для фильтрации соответствующей информации, QRExprMemo позволяет вводить многострочные выражения и тексты, QRStringBand связывает строки.

На новой странице ActiveX вы найдете поддержку интерфейсов Visual Basic, которые позволяют получить полезные возможности: построение объемных и плоских графиков и диаграмм, проверку правописания, окно для редактирования таблиц.


Новые мастера
Com Object помогает быстрее создавать разнообразные .COM объекты. DB Web Application Wizard позволяет создавать WEB приложения для доступа к базам данных. Service и Service Application включают шаблоны приложений для Windows NT, которые могут стартовать как сервисы. На новой странице Multitier появилось несколько мастеров для создания multi-tiered приложений, что удачно дополняет гамму новых мастеров.


Новые клавиатурные сокращения
CTRL+F11 - открытие проекта; ALT+F11 - использовать модуль в проекте; ALT+G - перейти к строке по номеру; CTRL+ALT+F11 - менеджер проектов; SHIFT+F11 - добавить модуль к проекту; CTRL+SHIFT+F11 - установки проекта; CTRL+ALT+B - точки останова; CTRL+SLT +S - стек вызовов; CTRL+ALT+W - наблюдение за переменными; CTRL+ALT+T - нити, CTRL+ALT+M - модули; CTRL+ALT +C - окно CPU; CTRL+ALT+E - журнал событий.


OpenHelp
Для простого и быстрого конфигурирования файлов помощи Windows (.HLP) в Delphi 4 включен OpenHelp. Он вызывается из Help|Customize и позволяет создавать и конфигурировать проекты файлов помощи и, в первую очередь, справку по Delphi.


Delphi Direct
Добавление Delphi Direct к интегрированной среде использует соединение Интернет и браузер для нахождения и информирования вас о новостях в продуктах серии Delphi, обновлениях и исправлениях, технических советах и хитростях. Теперь разработчики, чтобы узнать последнюю интересующую их информацию, не заблудятся где-нибудь в дебрях www.inprise.com. Достаточно скачать direct40.bpl, скопировать его в директорию DELPHI4\BIN и это небольшое, но приятное дополнение, которое вызывается с помощью Help|Delphi Direct, само приведет вас к цели в считанные секунды.


Совместимость и перенос проектов из Delphi 3
Немного изменился формат файлов с пакетами (DPK) в части Contains. Delphi 4 понимает старый формат и предложит перевести его в новый при открытии. Также изменилось и расширение откомпилированных пакетов с .DPL на .BPL. Ситуация по сравнению с переходом Delphi 2-Delphi 3 намного лучше, множество проектов могут быть просто перенесены с Delphi 3. Обеспечена высокая совместимость QuickReport 3.0 с версией 2.0, поэтому серьезно переделывать отчеты не придется.


Быстродействие и размеры исполняемых файлов
Параметры быстродействия приложений и скорости компиляции сохранились, Delphi по-прежнему является самым быстрым 32-разрядным компилятором. Увеличилась продолжительность начальной загрузки Delphi (примерно на 50%) при достаточном количестве оперативной памяти. Код приложений, использующих VCL, и соответственно все возможности Delphi, каких большинство, заметно возрос. Будьте готовы к тому, что размер исполняемого файла увеличится как минимум на 20%, а в среднем - на 35%. Простой проект из пары форм увеличивается примерно на 100 КБ. Особенно большое увеличение размера вызывает использование компонент для работы с базами данных, Quick Report и компонент Internet. Консольные и не использующие VCL приложения увеличиваются на 4 КБ по сравнению с Delphi 3. Если ваша программа будет выполняться на компьютерах с 8 МБ оперативной памяти, стоит глубоко задуматься о компиляции ее Delphi 4. Хотя она будет работать, быстродействие будет снижено из-за использования файла подкачки. При переносе приложений для работы с базами данных, не стоит забывать, что версия BDE 5.0 более требовательна к оперативной памяти, чем предыдущие. Так что, прежде чем переводить всех ваших пользователей на приложения, откомпилированные Delphi 4, оцените ресурсы их компьютеров, в первую очередь объем оперативной памяти, который должен быть не менее 16 МБ.


Обновления и исправления
На www.qusoft.com можно найти бесплатное обновление QuickReport. Познакомиться с обнаруженными проблемами и ошибками, а их в Delphi 4 уже немало, можно на www.inprise.com/devsupport/delphi/fixes/delphi4.12 августа 1998 года вышел Update Pack #1, для его установки вам потребуются ключ и серийный номер. Он содержит немало исправлений, в том числе библиотеки визуальных компонент и интегрированной среды. Update Pack #1 доступен на www.inprise.com/devsupport/delphi/downloads. Обновленные файлы справки delphi4.hlp, del4vcl.hlp и измененный файл deploy.txt можно найти на www.inprise.com/techpubs/delphi.

22 июля 1998 года вышла новая версия популярной библиотеки RxLib 2.50. Она полностью совместима с Delphi 4, содержит несколько новых компонент и в ней исправлен ряд ошибок. Доступна на http://rx.demo.ru.


Delphi уже в продаже
5 августа 1998 года начались поставки Delphi 4, и теперь вы можете приобрести продукт в региональных представительствах. Вариант Client/Server Suite стоит $2.499, Professional $799, а Standard продается по рекламной цене в $99.95. Для тех, у кого есть более ранние версии, существует программа обновления на новые версии по сниженным ценам.


Заключение
За последнее время Inprise не только заключила ряд стратегических союзов, но и несколько изменила стратегию. Хоть Delphi, C++ Builder, JBuilder все время соревнуются в возможностях, очень заметно, что Inprise все больше и больше их интегрирует. Может случиться, что в один прекрасный момент, который станет поистине революционным, будет образован единый продукт, понимающий все три языка. Это и откроет новую страницу в области инструментов программирования.

Что касается нынешних заказчиков Inprise, в их список входят такие крупные компании, как Motorola, Hitachi, BMW, Reuters, Mersedes Benz, Bank of America. Это говорит о том, что фирме есть откуда получать свою прибыль и есть на что развиваться. В любом случае очевидно, что Delphi в данный момент стал стандартом в некоторых областях и успешно развивается.


КОМПЬЮТЕР ИНФОРМ