Часто задаваемые вопросы по 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:

Delphi Professional 3.0
Delphi Professional 3.0 предназначается для разработчиков многопользовательских приложений. Данная версия включает в себя все, что имеется в Delphi Standard плюс:
Delphi Client/Server Suite 3.0
Delphi Client/Server Suite 3.0 ориентирован на организации, разрабатывающие корпоративные системы, предназначенные для работы с данными, находящимися в базах данных серверов DB/2, Informix, Interbase, MS SQL Server, Oracle, Sybase. Сочетает в себе высокопроизводительный клиентский инструментарий и широкий набор средств работы с серверами БД. По сравнению с версией Client/Server Suite имеет следующие расширения:

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 следующим образом:

Для поддержки OLE Automation также в модуле System имеется интерфейс IDispatch: Для облегчения работы с COM имеется класс TInterfacedObject, который реализует методы, объявленные в интерфейсе IUnknown.

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

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

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

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

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

 

Hosted by uCoz