Часто задаваемые вопросы по Borland Delphi 3.0


Delphi 3.0


Что нового в Delphi 3.0 по сравнения с Delphi 2.0?
Вопросы общего характера
  1. Какие существуют варианты поставки Delphi 3.0?
  2. Какие форматы скомпилированных модулей можно получить в Delphi 3.0?
  3. Какую модель данных использует Delphi?
Базы данных
Object Pascal и Windows API
  1. Каким образом реализована поддержка COM/DCOM?
  2. В Delphi 3.0 допускается множественное наследование классов?

Что нового в Delphi 3.0 по сравнения с Delphi 2.0?

Вопросы общего характера



1. Какие существуют варианты поставки Delphi 3.0?
Анонсировано три варианта поставки Delphi, каждый из которых предлагает комплект решений для разного уровня разработчиков и решаемых ими задач. Все версии Delphi 3.0 включают в себя высокопроизводительный 32-разрядный оптимизирующий компилятор, масштабируемые средства доступа к данным, расширяемую библиотеку компонентов, объединенные единой объектно-ориентированной средой разработки.

Состав версий.
Все версии Delphi 3.0 обладают окрытой архитектурой, полностью поддерживают технологии Microsoft OLE Automation, OCX, ODBC, ActiveX. Компонентная модель COM/DCOM поддерживается на уровне компилятора. Компилятор позволяет вам иметь доступ ко всем ресурсам операционных систем, реализующих Win 32 (Windows 95 и Windows NT) и использовать все имеющиеся технологические стандарты - Unicode, MAPI, ISAPI, NSAPI. Как в версии 2.0, в поставку включается 16-разрядная версия Delphi 1.02.

Delphi Standard 3.0
Delphi Standard 3.0 ориентирован на разработчиков в основном отдельных приложений с использованием настольных баз данных. Основные характеристики варианта Standard:

  • Профессиональная среда разработки, включающая в себя полностью интегрированный отладчик и редактор
  • Интегрированный в среду 32-разрядный оптимизирующий компилятор
  • Возможность создания DLL и отдельных исполняемых EXE-файлов
  • Возможность создания очень легких EXE с использованием настраиваемой технологии pakeges.
  • Полный доступ к Win32 API, поддержка ActiveX, OLE, OLEDB, COM, DCOM, MAPI, ISAPI, NSAPI
  • Создание и отладка многопоточных приложений под Windows 95 / Windows NT
  • Наличие Delphi 1.0 для создания 16-разрядных приложений под Windows 3.1
  • Объектно-ориентированная расширяемая компонентная архитектура
  • Наличия репозитария объектов для хранения и повторного использования форм, модулей данных
  • Поддержка визуального наследования и визуального связывания форм для уменьшения размера вводимого кода и более простого управления
  • Полный набор новейших управляющих элементов Windows 95
  • Визуальная библиотека компонентов (VCL) с более чем 100 компонентоами, доступными для повторного использования методом 'drag-and-drop'
  • Встроенный генератор отчетов, состоящий из компонентов, позволяющий создавать, просматривать и печатать отчеты без использования дополнительных внешних программ
  • Использование ActiveX
  • Поддержка COM и интерфейсов на уровне языка и компилятора
  • Полная поддержка серверов и контроллеров OLE Automation
  • Визуальное создание шаблонов для новых компонентов
  • Упрощение кодирование и завершение кода с помощью CodeTemplates wizard, CodeCompletion wizard и CodeParameter wizard
  • Быстрое вычисление выражений в ToolTip окошке для облегчения процесса отладки
  • Отладка DLL для сокращений времени на разработку и отладку DLL
  • Поддержка механизма многих источников данных для быстрого доступа к данным в любой СУБД
  • Высокопроизводительные родные драйвера для доступа к данным MS Access, FoxPro, Paradox, dBase
  • Компоненты для работы с данными для построения высокопроизводительных приложений, работающих с базами данных
  • Увеличение скорости обмена с сервером за счет поддержки Cashed Updates
  • Выделение бизнес логики в отдельный модуль данных
  • Визуальное упраление базами данных с помощью Database Explorer
Delphi Professional 3.0
Delphi Professional 3.0 предназначается для разработчиков многопользовательских приложений. Данная версия включает в себя все, что имеется в Delphi Standard плюс:
  • Исходный код VCL и печатные материалы для более качественного создания собственных компонентов
  • Компоненты для построения графиков и диаграмм на основании данных, хранящихся в таблицах баз данных
  • Визуальное создание элементов ActiveX для приложений, ориентированных на Web
  • Визуальное создание элементов ActiveX для повышения степени повторного использования кода
  • Полная поддержка доступа к данным через ODBC
  • Обеспечение целостности данных с помощью Data Dictionary
  • Возможность создавать и тестировать приложения, работающие с Local InterBase (одна пользовательская лицензия)
  • Internet Solutions Pack для создание приложений, использующих ресурсы Web
  • Install Shield Express для создания профессиональных инсталляторов
  • Open Tools API для интеграции с вашими дополнительными утилитами
Delphi Client/Server Suite 3.0
Delphi Client/Server Suite 3.0 ориентирован на организации, разрабатывающие корпоративные системы, предназначенные для работы с данными, находящимися в базах данных серверов DB/2, Informix, Interbase, MS SQL Server, Oracle, Sybase. Сочетает в себе высокопроизводительный клиентский инструментарий и широкий набор средств работы с серверами БД. По сравнению с версией Client/Server Suite имеет следующие расширения:
  • Набор компонентов DecisionCube для облегчения анализа данных, имеющих множество размерностей
  • Высокопроизводительные SQL Links с неограниченной лицензией для доступа к данным Oracle, Sybase, Informix, MS SQL Server, InterBase, DB/2
  • BDE Driver Development Kit для открытого доступа к любым механизмам баз данных через BDE
  • Визуальное управление метаданными SQL сервера, включая хранимые процедуры и триггеры, с помощью SQL Database Explorer
  • Тестирование, отладка и настройка производительности приложений, использующих средства SQL с помощью SQL Monitor
  • Автоматическое создание правильных SQL выражений с помощью Visual Query Builder
  • Возможность создавать и тестировать приложения, работающие с InterBase NT (четыре пользовательских лицензии)
  • Легкое деление приложений на отдельные части при помощи Remote DataBroker
  • Управление целостностью данных при помощи ConstraintBroker
  • Высокоскоростное представление данных через WebServer
  • Открытые решения для поддержки Netscape NSAPI и Microsoft ISAPI при помощи WebBridge
  • Централизованная обработка информации при помощи WebModule и обработка запросов при помощи WebDispatch
  • Распространение тонких клиентов, которым не требуется дополнительно ничего (даже BDE), использу WebDeploy
  • Встроенный менеджер версий Intersolve PVCS для групповой разработки
  • Эксперт для интеграции с CASE-средствами
  • Data Pump эксперт для быстрого масштабирования приложений

2. Какие форматы скомпилированных модулей можно получить в Delphi 3.0?
Delphi может создавать EXE и DLL для Win32. Естественно, вы может также создавать OCX, но для этого нужно знать соглашения по написанию DLL в формате OCX.

Delphi может также создавать 32-разрядные консольные приложения для работы под Win32.

Вы можете создать package - это тоже DLL, но с некоторыми особенностями.

Если вы создаете ActiveX, то у вас появится файл с расширением DLL, который вы можете при желании переименовать в ActiveX. Также у вас автоматически появится файл TLB - это библиотека типов (Type Library), необходимая для поддержки нестандартных типов данных. Кроме того, вы можете создать TLB файл отдельно.

3. Какую модель данных использует Delphi?
Delphi 2.0 использует так называемую плавающую модель памяти (FLOAT), которая принята в Win 32. Отличительной особенностью данной модели памяти является линейная 32-разрядная адресация всего адресного пространства, которое может иметь соответственно размер до 4 Гбайт. При этом все указатели, адреса процедур, указатели на VMT также адресуются через 32-разрядные регистры.

Базы данных


Object Pascal и Windows API



1. Каким образом реализована поддержка COM/DCOM?
В языке Object Pascal появилось понятие интерфейса (interface). Описание интерфейса похоже на описание обычного класса, в нем не может быть указан спецификатор видимости. Список членов ограничен методами и свойствами, для чтения/записи которых используются методы. Поля в интерфейсе недопустимы. Типы параметров и возвращаемых значений ограничены типами, допустимыми в COM/DCOM, их полный перечень можно найти в on-line help.

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

Все интерфейсы имеют в качестве базового класса интерфейсный тип IUnknown, объявленный в модуле System следующим образом:

    IUnknown = interface
      ['{00000000-0000-0000-C000-000000000046}']
      function QueryInterface(const IID: TGUID; out Obj): Integer; stdcall;
      function _AddRef: Integer; stdcall;
      function _Release: Integer; stdcall;
    end;
Для поддержки OLE Automation также в модуле System имеется интерфейс IDispatch:
    IDispatch = interface(IUnknown)
      ['{00020400-0000-0000-C000-000000000046}']
      function GetTypeInfoCount(out Count: Integer): Integer; stdcall;
      function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): Integer; stdcall;
      function GetIDsOfNames(const IID: TGUID; Names: Pointer;
        NameCount, LocaleID: Integer; DispIDs: Pointer): Integer; stdcall;
      function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
        Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): Integer; stdcall;
    end;
Для облегчения работы с COM имеется класс TInterfacedObject, который реализует методы, объявленные в интерфейсе IUnknown.

2. В Delphi 3.0 допускается множественное наследование классов?
Нет, нет и еще 1024 раза нет. Язык Object Pascal в Delphi 3.0 не позволяет вам наследовать класс от более чем одного класса. Строго говоря, вы всегда наследуете ваш новый класс ровно от одного уже имеющегося. Если вы явно не указываете базовый класс, то им становится TObject, стоящий таким образом в иерархии вообще всех классов.

Слухи о множественном наследовании идут из-за того, что в языке Object Pascal в Delphi 3.0 реализована поддержка интерфейсов для модели COM/DCOM. При этом новый класс может наследоваться от одного класса и реализовывать произвольное количество интефейсов. Соответствующее объявление нового типа:

    TNewObject = class(TBaseObject, ISomeInterface, IAnotherInterface, IDummyInterface)
вызывает некоторую путаницу и может быть похожа на множественное наследование. Здесь можно провести анологию с языком Java. Интерфейсы в Delphi 3.0 похожи на интерфейсы в Java с отличием в том, что Java допускает множественное наследование интерфейсов, а Delphi - нет.

Фактически объявление интефейса представляет из себя кусочек таблицы виртуальных методов (VMT), который присоединяется к основной VMT класса.

[Назад][Содержание]

Delphi32 Delphi32 - Всё о Дельфи. WWW.delphi32.narod.ru
Сайт управляется системой uCoz