Если вы объявляете переменную интерфейсного типа, она может ссылаться на экземпляр любого класса, поддерживающего этот интерфейс.
Следует ожидать переводов разделов справочной системы Delphi, компиляций из учебников, переводы статей, "путевые заметки" и прочие интересности. Блог прежде всего ориентирован на студентов, но опытных людей я тоже буду рад видеть;-)
пятница, 30 августа 2013 г.
Реализация интерфейсов
Для того, чтобы начать использовать объявленный интерфейс, необходимо реализовать его поддержку в классе. Интерфейсы, поддерживаемые классом, указываются в его объявлении после указания класса-предка.
Интерфейсы объектов
Интерфейс объекта (или просто интерфейс) определяет методы, которые могут быть реализованы классом. Объявление интерфейсов схоже с объявлением классов, но их отличие в том, что вы не можете создавать экземпляры интерфейса и, кроме того, они не могут иметь собственных объявлений методов. Реализация методов интерфейса – это скорее ответственность класса, который поддерживает интерфейс. Переменная типа интерфейс может хранить ссылку на объект, класс которого реализует этот интерфейс. Но через эту переменную вы сможете обратиться только к методам, которые объявлены в интерфейсе.
пятница, 12 апреля 2013 г.
Кросс-платформенные библиотеки
Совместное использование библиотек в приложениях Mac OS X
При разработке кросс-платформенных библиотек в Delphi, необходимо изучить некоторые требования, налагаемые платформами. В особенности это касается функций в библиотеках для OS X, которые необходимо вызывать и загружать динамически. Необходимо помнить, что:
- Имена динамически загружаемых функций должны начинаться с нижнего подчеркивания ('_').
- Инструкции exports должны быть перемещены из файлов .dpr в файлы .pas.
Эти два правила разъясняются далее.
Пакеты
Пакеты обычно являются наиболее предпочтительным способом для экспорта, когда речь идет о чем-то более сложном, нежели функции и процедуры. Библиотеки следует использовать только в тех случаях, когда требуется обеспечить совместимость на уровне приложений.
Разработка динамически загружаемых библиотек
Для экспорта всего, что не является процедурой или функцией, рекомендуется применять пакеты. Библиотеки следует рассматривать только в том случае, если необходима совместимость с другими программами.
Библиотеки и пакеты
Динамически загружаемые библиотеки – это библиотеки динамического связывания (dynamic-link library (DLL)) под Windows или DYLIB на Mac. Они представляют собой подборку подпрограмм, которые могут вызываться приложениями или другими библиотеками. Как и модули, динамически загружаемые библиотеки содержат программный код или ресурсы, предназначенные для совместного использования. Однако этот тип библиотеки компилируется отдельно и связывается с использующей его программой во время ее выполнения.
Программы, написанные на Delphi, могут вызывать DLL и сборки, написанные на других языках, и приложения, написанные на других языках, могут вызывать DLL или сборки, разработанные в Delphi.