Обзор Delphi 4


Андрей Матвеев, andreim@chat.ru



Минимальные требования и установка
Хотя Delphi 4 запустится и на 486 DX/66 с 16 МБ, реально работать можно как минимум на Pentium 75 с 32 МБ. Для больших проектов потребуется 64 МБ оперативной памяти или более. Как и свой предшественник, Delphi 4 поставляется в трех вариантах Standard (ориентированный на начинающих пользователей), Professional (для профессиональных разработчиков без доступа к серверам баз данных) и Client/Server Suite (профессиональный вариант с доступом к серверам баз данных). Вариант Standard требует 42 МБ на диске для минимальной установки и 95 МБ для полной, вариант Professional 50 МБ и 123 МБ, вариант Client/Server Suite 60 МБ и 180 МБ соответственно. Эти данные являются приблизительными. Теперь, благодаря новой возможности УRegistry settings onlyФ в программе инсталляции, вы можете создать только основные установки в реестре, не осуществляя копирования файлов. Продолжительность установки любого из вариантов не превышает 15 минут, в зависимости от быстродействия компьютера и жесткого диска. Мы рассмотрим все новые свойства Delphi Client/Server Suite, некоторые из них недоступны в Delphi Standard и Delphi Professional.


Новые возможности в области интерфейса IDE
Новые черты интерфейса Delphi 4 удивят даже тех, кто переходит на него с Delphi 3, не говоря уже о тех, кто впервые его увидел. Все начинается с мелочей: привлекательная заставка, подсветка названия, на которое указывает курсор мыши, наличие в текстовом меню графического представления команд, подсказывание координат объекта в дизайнере форм...

РИСУНОК 1

Окна утилит могут соединяться, образуя одно окно, если в их свойствах установлен флажок Dockable. Теперь каждый может создать свою среду, включив в нее самые необходимые и удобно расположенные окна утилит, просто взяв их мышью и перетащив в нужное место. Полностью настраиваемые панели инструментов удобны и просты в настройке. Это особенно полезно при использовании высокого разрешения экрана. Так что теперь придешь на другой компьютер и не узнаешь Delphi! Code Explorer Сразу после загрузки вы увидите присоединенное к редактору кода окно, это и есть

Code Explorer.

Он показывает структуру модуля и помогает быстро находить объекты и любое их содержимое. Найти нужный элемент можно, просто набрав его имя или указав мышью. Теперь достаточно щелкнуть на нем, и в окне редактора кода сразу появится его описание. Переключаться между Code Explorer и редактором кода можно с помощью CTRL+SHIFT+E. Пользуясь контекстным меню, вызываемом правой кнопкой мыши, вы можете создавать новые и переименовывать имеющиеся элементы, переключаться в окно редактора кода. Все это быстро, четко, удобно и привлекательно. Теперь вы избавлены от рутинной работы по поиску позабытого элемента проекта. Полностью настроить Code Explorer на свой вкус вы можете в Tools|Environment Options|Explorer.

Новые расширения редактора кода Code Insight

Расширения Code Insight представляют собой всплывающие окна и меню в окне редактора кода и настраиваются в Tools|Environment Options|Code Insight.

Code Completion, вызываемый автоматически после окончания ввода класса и точки или по CTRL+SPACE, поможет вспомнить название того или иного метода, свойства или поля.

Если вы забыли аргументы и их типы для процедуры, функции или метода, вспомнив сначала саму процедуру с помощью Code Completion, откройте скобку и нажмите CTRL+SHIFT+SPACE. В ту же секунду Code Parameters будет подсказывать до тех пор, пока вы не закроете скобку.

Если вы начинающий и делаете первые шаги, Tooltip Symbol Insight будет коротко рассказывать обо всем в окне редактора кода, на что вы наведете курсор мыши. Хотите, чтобы при отладке программы, при наведении курсор на переменную, стало известно ее текущее значение? Смело пользуйтесь Tooltip Expression Evaluation. Вы устали вводить очень похожие фрагменты кода, а процедура копирования совсем не по душе? Помогут Code Templates. Один раз введите новый шаблон, а в дальнейшем смело нажимайте CTRL+J и выбирайте его. Нужный фрагмент будет автоматически вставлен, а курсор установлен в наиболее удобное место для дальнейшего ввода.

Другие новые расширения редактора кода

Наверное, каждый, кто создал больше одного класса, всегда раздражался, что нужно писать одно и тоже. Нажимая CTRL+SHIFT+C, находясь в области декларирования класса, можно автоматически создавать скелет класса на основе уже введенной информации. Безусловно, для многих эта функция автоматизации полезна и к ней быстро привыкаешь.

Хотите быстро перейти к телу процедуры из ее описания в классе или из ее тела к самому описанию? Воспользуйтесь Module Navigation, нажимая CTRL+SHIFT+UP и CTRL+SHIFT+DOWN. Эта возможность помогает быстро перемещаться между секциями interface и implementation в модуле.

Часто у вас появляется желание отредактировать или посмотреть метод, функцию, свойство или любой другой идентификатор. Как его найти, где он упоминается в большом проекте? Удерживайте Contol и наведите на него курсор мыши, после чего идентификатор окажется подчеркнутым, а курсор мыши изменится на УрукуФ. Теперь достаточно нажать на нем один раз и вскоре в редакторе кода откроется модуль, где он описывается. Эта эффективная и удобная возможность носит название Code Browser.


Интегрированный отладчик

РИСУНОК 2

Все функции отладчика сосредоточены в меню View|Debug Windows, а его настройка производится в Tools|Debugger Options. Возможность удаленной отладки через сеть (вызывается через Run|Parameters|Remote) позволит отлаживать приложения и библиотеки .DLL на удаленном компьютере. Теперь вы можете отлаживать многопользовательские и мультипроцессорные приложения. В Modules View добавилось еще два окна: для исходных файлов и для точек входа. Ведение журнала событий, куда записываются сообщения о точках останова, исключительных ситуациях и другие полезные сообщения, поможет глубже проанализировать поведение программы и принять правильное направление при поиске ошибок. Инспектор объектов, запускаемый в Run|Inpsect, позволяет просматривать и изменять поля, методы и свойства объектов. Локальные переменные можно посмотреть в отдельном окне Local Variables. Профессионалам будет очень интересно и полезно обнаружить окно CPU, позволяющее отлаживать приложения на уровне команд процессора. Оно практически копирует по внешнему виду известный отладчик Turbo Debugger, но связано еще и с исходным текстом. Многие знают, что в Delphi 3 можно было включить это окно с помощью создания ключа в реестре HKEY_CURRENT_USER\Software\ Borland\Delphi\3.0\Debugging\EnableCPU=1. Однако в Delphi 3 в нем не работали практически никакие функции, кроме просмотра и шагания по коду, поэтому по умолчанию оно и было отключено. Теперь это окно полнофункционально и позволяет наблюдать за поведением программ на уровне команд процессора, что часто полезно не только при поиске ошибок и отладке программы, но и при изучении самого компилятора Delphi и поиске ошибок в RTL и VCL. Этого очень ждали профессионалы, привыкшие полностью контролировать поведение своих программ и, естественно, теперь дождались!


Менеджер проектов
Группой проектов называются несколько проектов, описанных в файле с расширением .BPG, а проекты по-прежнему описываются в файлах с расширением .DPR. Менеджер проектов вызывается через View|Project Manager или нажатием CTRL+ALT+F11. Он позволяет объединять проекты в группы. Вы сможете организовать работу над независимыми проектами в одной группе проектов. Например, в группу могут входить библиотека .DLL и исполняемый файл, работающие вместе, или серверный и клиентский модули, дополняющие друг друга. Наверняка, кому-нибудь вспомнились проекты, которые использовали одинаковые модули, и как бы было удобно разместить их в одной группе. Хотя эта возможность и пришла в Delphi из C++ Builder 3.0, его файлы с таким же расширением в Delphi 4 работать не будут.


Расширения языка программирования
Для поддержки 64-разрядных целых чисел введен новый тип int64. Данные этого типа могут находиться в диапазоне от -2^63 до 2^63-1. Соответственно поля в базах данных тоже могут иметь значения этого типа.

Динамические массивы (объявляются как array of type) не фиксированы по размеру, поэтому при их декларировании указывается только тип информации и не фиксируется пямять, которая должна быть выделена в дальнейшем с помощью SetLength. Такие массивы могут быть многомерными (array of array of type) и индексируются, начиная с 0.

Перегрузка методов (объявляется как Procedure Name (Parameter:Type); overload;) позволяет объекту иметь более одного метода с одинаковым именем или иметь в программе несколько глобальных процедур или функций с одним именем. Ограничения находятся в области количества и типов аргументов - должны быть различия в списке параметров.

Параметры по умолчанию для процедур и функций (определяются как Name:Type = значение по умолчанию) позволяют заранее определить значение и при вызове просто не указывать его. Это позволяет не тратить время на написание лишних нулей, пустых строк и тому подобного. Однако параметры, следующие за определенным по умолчанию, тоже должны быть определены по умолчанию.

Появление типа Longword, определяющего 32-разрядные целые числа без знака, явилось продолжением появления LongInt, что создает логическую завершенность. К тому же тип Cardinal теперь эквивалентен Longword. Тип Real теперь 64-разрядный, что позволяет оперировать в диапазоне от 5.0x10^-324 до 1.7x10^308 и увеличивает производительность. Свойства этого типа теперь могут находиться в секции published. Старый (48-разрядный) тип переименован в Real48.

Новая директива implements позволяет передать полномочия на реализацию интерфейса свойству (property MyInterface: IMyInterface read FMyInterface implements IMyInterface).

Как видно, ряд новых возможностей заимствован из C++. Хорошо это или приводит к загромождению языка, однозначно сказать нельзя, но теперь поклонники Delphi смогут чувствовать себя увереннее, отстаивая свой любимый язык в спорах с почитателями C++. Мнения, как всегда, противоположны, но мне не приходится слышать, что это очень необходимо. Существует в основном два направления во мнениях: одно - зачем загромождать язык идеями из C++, к тому же они могут создавать труднонаходимые ошибки в программах, другое - дополнительные возможности в языке не помешают, а пользоваться ими или нет, каждый решит для себя сам и в рамках определенной задачи.


В области баз данных
Появилась встроенная поддержка Access Т97, Oracle 8, Microsoft Transaction Server. При использовании Oracle 8 поддерживаются динамические массивы, абстрактные типы данных, вложенные таблицы, ссылки на объекты. Для этого появились новые типы TADTField, TReferenceField, TDataSetField и TArrayField, а также расширен компонент DBGrid. BDE теперь поддерживает Access Т97 и Oracle 8 благодаря новому механизму доступа к базам данных.

В табличных компонентах появилась возможность в режиме проектирования создавать, переименовывать и удалять файлы с таблицами. Структура таблицы описывается в FieldDefs, а индексные файлы в IndexDefs. Теперь, если вы потеряли таблицы, не надо больше лазить по исходному коду и воссоздавать их структуру, всего лишь щелкните правой кнопкой мыши и выберите Create Table.

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


Поддержка COM и CORBA
Поддержка стандарта взаимодействия между объектами COM (Component Object Model), разработанного Microsoft, позволяет облегчить написание компонентных приложений и упростить их взаимодействие. Нереализованная в Delphi 3 поддержка протокола CORBA (Common Object Request Broker Architecture), которая теперь имеется, поможет взаимодействовать с не Windows платформами.

Продолжение следует


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