Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

5.6. Основные отличия новых версий Delphi

Приведем основные отличия новых версий Delphi. Пункт 5.6 подготовлен Е. Виноградовой.

Версия Delphi 6

  • Наличие нового окна «Обозреватель дерева объектов (ObjectTreeView)», которое позволяет просматривать иерархию объектов. Данное нововведение позволяет осуществлять быстрый переход от одного объекта формы к другому. Это удобно в том случае, если, например, компонент имеет небольшой размер.

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

  • Введена панель инструментовInternet, которая облегчает разработку приложений дляWeb-серверов.

  • Введена новая страница WebSnap, компоненты которой также служат для создания приложенийWeb-серверов.

  • Обеспечивается поддержка программирования с использованием документовXML.

  • Введены новые компоненты, позволяющие использовать XML при разработке приложений баз данных.

  • Большинство функций по управлению сервером InterBaseпереданы программеIBConsole, которая используется вместо программыInterBase Windows Interactive SQL(рис. 5.3.1).

Рис. 5.3.1. Окно IBConsole

  • Введен новый механизм доступа к данным - dbexpress, обес­пе­чи­ва­ющий быстрый доступ к серверам баз данныхSQL.

  • Впалитру компонентов добавлена новая страницаInterBase Admin, компоненты которой служат для доступа к базе данныхInterBase.

  • Добавлен ряд новых компонентов с целью упрощения работы с клиентскими наборами данных.

  • Компоненты, осуществляющие доступ к данным с помощью Borland Da­ta­base Engine, перенесены на страницуBDEпалитры.

В результате стал более удобным доступ к компонентам для работы с базами данных BDE.

  • Обновлены компоненты InterBase Express, включая расширенную поддержку событий и поддержку генераторовInterbase, авто­мати­чес­ки устанавливающих значения полей.

  • Добавлены новые компоненты на странице Additional, предназ­на­чен­ные для синхронизации управляющих элементов, а также новые компонентыTLabeleEdit,TvalueListEditor,TcomboBoxEx,TcolorBox, предназ­на­чен­ные для управления элементами интерфейса.

  • Улучшены и введены новые свойства ряда элементов управления.

  • Отсортированы системные цвета, что облегчает их поиск; к стандар­тным шестнадцати цветам добавлены еще четыре.

  • Ряд функций перемещен в модуль System, и в то же время много функций из этого модуля перемещены в новый модульVariants.

  • Добавлена коллекция функций для работы с датой и временем в модуле DateUtils.

  • Введены новые константы и функции в модуле Math.

  • Разрешено определять пользовательские типы данных Variant.

  • Введена новая библиотека CLX(межплатформенный вариант биб­лиотекиVCL), позволяющая разрабатывать приложения, функциони­ру­ющие под управлениемWindowsиLinux.

Версия Delphi 7

  • Улучшенная поддержка создания кроссплатформенных прило­жений.

  • Введение поддержки использования технологии CASE и языка UML.

  • Язык Object Pascal переименован в Delphi, полностью идентичный по синтаксису и семантике.

  • Введена инструментальная поддержка CASE-технологий -ModelMaker.

  • Изменены технологии создания приложений для сети Интернет.

С помощью набора компонентов IntraWeb можно разрабатывать приложения, которые не будут требовать обязательного посредничества Web-сервера между созданными приложениями и браузером пользователя (только для режима Stand Alone Application). Введена поддержка промышленного сервера Apache 2.

  • Устранены любые отличия в версиях языка Delphiдля самого Delphi и Kylix 3, что значительно упрощает процесс создания кроссплатформенных приложений. Эта попытка унификации VCL и CLX привела к тому, что в стандартную версиюDelphi7 не были включены наборы компонентовQuickReportиFastNet. Эти наборы были заменены компонентами Rave Reports и Indy, хотя для полной совместимости Borland оставила возможность внедрения Quick Report в среду разработки путем подключения специальной библиотеки, которая поставляется вместе с Delphi (только для версииDelphi7).

Версия Delphi 2005

  • Среда разработки теперь имеет интерфейс MDI; модифицировалось также окно «что нового» - теперь это полноценная приветственная страничка.

  • Перевести интерфейс в традиционный SDIвид можно следующим образом: Tools/Options/Environment Options/Delphi Options/VCL Designer/ Options/Embedded designer.

  • Палитра компонентов теперь размещена внизу справа, при переключении между формой и редактором кода палитра автоматически меняется.

  • В Project Manager теперь встроены закладки Model View и Data Explorer.

  • Можно вырезать кусок кода и автоматически оформить его как метод или процедуру.

  • Можно объявлять переменные или поля класса на ходу (напишите в любом месте кода имя переменной, затем выбрать команду Refactoring/Declare variable из контекстного меню).

  • Возможность поиска локальных и глобальных ссылок на объект, поиск объявления объекта.

  • Автокомментирование строки клавишами «Ctrl+/».

  • Можно свернуть любой блок кода секции Unit, описания класса, текста процедур, функций и т.д.

  • Изменена справочная система. Теперь она имеет интерфейс, схожий с интерфейсом справочной системы Windows XP.

  • У компилятора Delphiпоявилась возможность использоватьInline‑кода. Теперь, если процедура или функция имеют директиву Inline, это заставит компилятор попытаться вставить в место, где эта процедура используется, не вызов, а код тела процедуры.

  • Для компилятора Delphi for .Net добавлена возможность включения потенциально небезопасного кода в приложения .Net.

  • Появилась возможность использовать в именах типов и переменных символы Unicode.

  • Изменилась работа с точками останова. Появилась возможность, не удаляя саму точку, отключить ее, пометив Disable.

  • В среду интегрирован новый DataExplorer, который содержит как средства просмотра БД, так и ряд инструментов для редактирования.

Глава 6.C++Builder

С++Builder ‑ это Delphi, в котором Delphi (Паскаль) заменен на C++ [6]. Язык С [3] был разработан в 1972 г. сотрудником фирмы AT&T Bell Labo­ratories Деннисом Ритчи в рамках проекта создания опе­ра­цион­ной сис­темы Unix. В настоящее время он является универсальным язы­ком прог­рам­мирования общесистемных программных средств (опе­рационных и сетевых систем, СУБД, текстовых, таб­личных и графических редакторов и др.) и прикладных задач. Современной версией языка С является C++ (автор - Б. Страуструп) [6]. Язык С является подмножеством C++.

Допускается создание консольного приложения (командой File/ New/Console Wizard). Это приложение выполняется под управлением DOS и поз­во­ляет использовать функции непосредственного ввода (scanf) и вывода (printf) данных на консоль, не используя визуальные средства. Это поз­во­ляет в десятки раз уменьшить размер исполняемого Exe-файла и использовать в С++ Builder программы, написанные ранее на языке С или C++, которые выполнялись под DOS.

Для консольного приложения обычно требуются дирек­тивы:

#include <stdio.h> // подключение модуля стандартного ввод-вывода

#include <conio.h> // подключение модуля ввод-вывода на консоль

#include <stdlib.h> // стандартная библиотека общего назначения

#include <fstream.h>// стандартная библиотека ввода-вывода потоков в С++

Большинство приведенных в этой главе примеров оформлены в ви­де кон­сольных приложений. Их можно легко изменить и перевести в обыч­ные приложения (например, оформить в виде функции обработки события Click нажатия кнопки Button), заменив вывод функцией printf на вывод в метку Label или в массив строк объекта Memo (Memo1->Lines->Add(str)), фун­к­цию ввода scanf ‑ на ввод из полей Edit и удалить фун­к­цию задержки работы программы getch.

Внимание! В консольных приложениях используется кодировка сим­­­волов, принятая в DOS. Это не позволяет выводить без допол­нитель­ной перекодировки текст, набранный при создании консольного прило­же­ния в С++ Builder.

Для быстрого освоения и перехода из Delphi в C++ Builder и обратно приведем основные общие черты и различия между ними.

Основные общие черты C++ Builder и Delphi

  • Единая библиотека визуальных компонентов (VCL) с одинаковым набором и обозначениями компонентов, их свойств, методов и событий.

  • Практически одинаковая технология и единая визуальная среда быстрой раз­­ра­ботки приложений.

  • много одинаковых функций (например, преобразования данных).

Основные отличия C++ Builder от Delphi

  • Используются различные языки C++ и Delphi соответственно.

  • Прописные и строчные буквы в С++ различаются, что требует от пользова­теля соблюдения регистров при написании иден­ти­фи­ка­торов.

  • Для функций без параметром указываются круглые скобки.

  • Свойствам Caption и Text можно присваивать текстовые, числовые и датные значения, а не обязательно только тек­сто­вые, как в Delphi.

  • Операторы прис­­ваивания и сравнения на равенство записываются в виде одного и двух знаков равенства, соответственно, вместо «:=« и «=«.

  • Символьные константы заключаются в кавычки (fam=«Иванов»).

  • Директивы компиляции задаются в виде #pragma <значение>.

  • Для ссылки на объект, созданный из компонента VCL используется не точка, а косвенная ссылка в виде стрелочки из двух символов («->«) или прямая ссылка в виде (*<имя объекта>).

Пример: Button1->Caption=«Выход» или (*Button1).Caption=«Выход»

  • Для включения в приложение модуля требуется выполнение коман­ды File/Include Unit ....

  • Условные выражения в командах if, while, switch заключаются в круг­лые скобки и логические операции имеют меньший приоритет, чем опе­рации сравнения.

  • Оператор присоединения With отсутствует.

  • Можно использовать библиотеку фундаментальных классов MFC.

  • Используя ключевое слово as, в Delphi можно написать:

procedure TForm1.Button1Click(Sender: TObject);

begin with Sender as TButton do Caption:='Выход'; end.

  • Слова as нет в C++ Builder, но есть оператор динамического преоб­ра­зо­­вания типа dynamic_cast, который не связан с исключениями. Ис­поль­зуя его, можно записать последний пример в C++ Builder в виде:

void __fastcall TForm1::Button1Click(TObject *Sender) // знак :: см. в п. 6.6.1

{ TButton* Button=dynamic_cast <TButton*> (Sender);

if (Button) Button1->Caption=«Выход»; }