пятница, 30 августа 2013 г.

Объекты автоматизации

Перевод раздела Automation Objects (Win32 Only) из справочной системы Delphi

Объект, класс которого поддерживает интерфейс IDispatch (объявлен в модуле System), является объектом автоматизации (Automation object).

Для обращения к объектам автоматизации следует использовать переменные типа вариант. Когда переменная типа вариант ссылается на объект автоматизации, с ее помощью вы можете вызывать методы этого объекта, читать и записывать значения его свойств. Для того чтобы сделать это, подключите модуль ComObj в раздел uses вашей программы или библиотеки.

Обращение к интерфейсам

Перевод раздела Interface References из справочной системы Delphi

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

Реализация интерфейсов

Перевод раздела Implementing Interfaces из справочной системы Delphi

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

Интерфейсы объектов

Перевод раздела Object Interfaces (Delphi) из справочной системы Delphi

Интерфейс объекта (или просто интерфейс) определяет методы, которые могут быть реализованы классом. Объявление интерфейсов схоже с объявлением классов, но их отличие в том, что вы не можете создавать экземпляры интерфейса и, кроме того, они не могут иметь собственных объявлений методов. Реализация методов интерфейса – это скорее ответственность класса, который поддерживает интерфейс. Переменная типа интерфейс может хранить ссылку на объект, класс которого реализует этот интерфейс. Но через эту переменную вы сможете обратиться только к методам, которые объявлены в интерфейсе.

пятница, 12 апреля 2013 г.

Кросс-платформенные библиотеки

Перевод раздела Cross-Platform Shared Libraries из справочной системы Delphi

Совместное использование библиотек в приложениях Mac OS X

При разработке кросс-платформенных библиотек в Delphi, необходимо изучить некоторые требования, налагаемые платформами. В особенности это касается функций в библиотеках для OS X, которые необходимо вызывать и загружать динамически. Необходимо помнить, что:

  • Имена динамически загружаемых функций должны начинаться с нижнего подчеркивания ('_').
  • Инструкции exports должны быть перемещены из файлов .dpr в файлы .pas.

Эти два правила разъясняются далее.

Пакеты

Перевод раздела Packages (Delphi) из справочной системы Delphi

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

Разработка динамически загружаемых библиотек

Перевод раздела Writing Dynamically Loaded Libraries из справочной системы Delphi

Замечание: Библиотеки в части экспорта ограничены значительно больше, чем пакеты. Библиотеки не могут экспортировать константы типы и обычные переменные. То есть класс, объявленный в библиотеке, не может быть виден в программе, которая ее использует.

Для экспорта всего, что не является процедурой или функцией, рекомендуется применять пакеты. Библиотеки следует рассматривать только в том случае, если необходима совместимость с другими программами.