Alexey_Gawrilow
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Cryogen2003 Цитата: Если делать через интерфейсы, то как это сделать? | Что такое интерфейс? - "узаконенный" контракт - определение типа. - бинарный СТАНДАРТ, модуль, написанный на С, PowerBasic, Modula, FreePascal - будет работать как "родной". Ключевое здесь - стандарт. Извините за повторение, но это "ключ от всех дверей". А в Delphi он еще и на VMT замечтательно ложиться, что делает Delphi самым крутым инструментом разработки расширений для Windows и [d]COM[+]-based решений. Интерфейсы желательно описать в IDL - для портируемости. Тогда другой инструмент, если он умеет с этим(IDL) работать - сгенерирует корректный хидер. Но это опционально. Если описывать в другом языке/инструменте интерфейс корректно - совместимо по типам - то можно и руками. Использование интерфейса дает "типизированный", объектно-ориентированный API. Иначе будет нагромождение процедур, функций и структур. А если автор упорный, то спустя некоторое время рождается "велосипед". Так или иначе. Хорошо, если придет к процедурно-структурно-соообщательному API как в Windows. Вполне себе вариант, только многословный очень - букв будет много. И даже вполне себе в духе ООП, до изобретения интерфейсов. Вариантов построения гетерогенных систем на самом деле два: 1) процедурно-структурное API - процедуры, структурыб сообщений. 2) OO API, на компонентных технологиях COM(MS)/SOM(IBM)/CORBA(группа товарищей)/XPCOM(Mozilla) Оба можно подсмотреть в Windows. Для построения расширяемых программ, можно следует добавить скриптование, но это следующий этап. Цитата: Я так, "чик-чик и в продакшен", Я использовал первоисточники. Смотрел как устроены Windows и ее компоненты. Смотрел как устроены программы, которые считал годными. Смотрел как устроена Delphi и ее компоненты. Поддержка DesignTime - вполне себе образец. .\source\ToolsAPI\ Есть и хосты, и сервисы, etc. Книга "Delphi и технология COM" - must have Эту книжку собирались писать на четверых, но Акжан и я "слились" под рутиной. А вот Толик молодец... из свежака, почитайте серии от GunSmoker Очччень рекомендую, все правильно написал. Вот содержимое моей сокровищницы (.\wh.dev\D.common\PlugIns\): .\!_GunSmoker\ Создаём систему плагинов Разработка системы плагинов в Delphi .\_4ideas\ EMS_<RDBMS>_Manager_Plugins IBExpert $dsPluginSystem AthraSoft-SmartPlugin .\_comp-dll\ <не интересно> .\_comp-package\ PACKS.ZIP example of dynamically calling and using packages throughout your own application. http://www.global.co.za/~ahm PACKVIEW.ZIP PackView - shows Package required libraries and contained units. Generates package source code Alex G.Fedorov, 1997 PKGDEMO.ZIP Dynamically loaded package demo (Created 10/29/97, Size 13,217 bytes) This application and associated package demonstrates how you can use the packages feature in Delphi 3 to partition your applications. The example illustrates loading a package and instantiating a form class from the package. Additionally, it provides tips onsuccessfully unloading packages. Demonstration of the following features of packages: - Dynamically loading a package - Registering classes from a package - Instantiating classes registered from a package http://www.inprise.com/devsupport/delphi/download_files/pkgdemo.zip packages.zip This application is a simple demonstration of the following features of packages: - Dynamically loading a package - Registering classes from a package - Instantiating classes registered from a package forminbpl.zip http://delphi.about.com/compute/delphi/library/forminbpl.zip liweipackage.zip http://www.inprises.com/control/liweipackage.zip dle.zip Dynamic Library Element v.1.0 (03.03.2002) is used to dynamically load packages and use the components from the packages. This allows to add functionality to software dynamically, without recompiling. http://sodev.webzdarma.cz/download/dle.zip .\_comp-plugin\ $SmartPlugIn\ $TmsPluginFramework\ names.mx\ http://torry.net/vcl/vcltools/plugins/mxpluginloader170.zip names.psv\ search by PSV-Delphi beacon-Serhiy Perevoznyk part.LMD\ part.Orcka\ SP(Shell&PlugIn)\ uil - now part TMS\ WFZ\ DelphiPlugins.zip A little tool to use plugins for Delphi programms FWS D3-6 http://delphi.icm.edu.pl/ftp/d30free/DelphiPlugins.zip dplugger.zip http://delphi.icm.edu.pl/ftp/d20free/dplugger.zip dtPlugins.zip plugin.zip This sample program shows how to make a plugin for your own applications. www.torry.ru/samples.htm PlugIns.rar ss_000300.zip Code Examples from "Developing Application Plug-ins" at POSK, March 2000. http://www.richplum.first-web.com/bug/ss_000300.zip tplugin.zip TPlugin v1.0 FWS D3D4D5 By Haran Shivanan. TPlugin is a native delphi component that makes it easy to make your application accept pluginsPlugins can be written in any language, and a single dll can hold multiple plugin procedures. You can load bitmaps from the plugin dll into your main app for use in toolbars etc... as well as create menu items and other User Interface objects easily.A plugin source code generator has also been provided. http://www.torry.ru/vcl/vcltools/tplugin.zip <блин, устала рука, извините, надо подробнее - пишите> .\_Package\ Advanced Dynamic Packages\ Application_MainForm in a bpl\ Datamodule in Package Revised\ Designing and Using Dynamic Packages\ Dynamic Packages and COM\ Dynamic packages in Delphi\ Dynamic World of Packages\ Inside D3 Package\ Instancing Package components inside package\ Loading forms from Bpl\ Object Packages Enable Highly Modular App\ PackageDemo\ Run-time packages\ Runtime-Packages Dynamic Menus Sample\ Runtime Packages Adding Functionality and Flexibility to Your Apps\ Runtime_Designtime what_ Delphi Packages.Robs Technology Corner\ The dockside of loading Packages\ Модульная архитектура - Исп-е модулей в D - ORASOURCE.RU\ 23096 BPL Plugin with Interfaces and TLS.htm 23096_bpl_plugin_with_interfaces_and_tls.zip Dynamically Load Cmpnts From Packages at Run-Time.htm Packages-Retreiving a list of required packages.txt packages.theDelphiMagazine.46.zip Something missing about packages.doc .\_themes\ d2\ d5\ d6\ dc\ DllExamp\ DLLloaders\ ibExpert\ MIDE\ MYDRIVERS.c15\ nsis\ part.Jedi\ plSQLdev\ PlugIn\ PlugIns\ SP\ TPlugin\ UILPL\ WfZ\ XMLSpyPlugIn\ names.MW.MIDE.zip names.RA.zip part.AdrenalinX.zip part.Marathon.sf.zip part.Py.zip .\ActionDLL.zip .\Adding Plug-ins To Your Application.COM.C .\An Automation Server.COM .\Creating Extensible App.COM .\Creating Well-Designed Plug-In's .\D-Plugin через ActiveX .\D Plug-Ins .\Delphi plugin by example .\DPF (Delphi Plugin Framework).sf .\Impl a Plug-in Fw.COM.techvanguards .\Impl Plug-ins .\Modularizing D App.COM .\Nitrogen - Plugin DLL Demo - Project Information .\Omniplugin system .\Open Applications.VirtualMethods .\Open4business(APPServicesDLL) .\Pascal Scripting Plugin Architecture Source Code For dXE8.FMXExpress .\Plug-In fw using DLL.C .\Plugins in D .\Run-time ActiveX.COM .\The Builder Pattern.DP .\Using interfaces and actions to create dynamic app .\Working in the object factory.DP .\Исп-е DLL в качестве PlugIn-ов .\Плагины на основе COM интерфейсов.C .\Пример из D6 и технология COM.book .\проблема проектирования плагинов доступ к информации об объ.rsdn .\Программа из кирпичиков, или плагины, плагины и еще раз плагины .\Создание подключаемой инфраструктуры.NET .\20021227testplugin.zip .\MenuPlugin.zip .\MetaBPL.zip .\Object-Oriented DLL Interface.txt .\plugins.html .\Как работать с плагинами.txt .\Плагины в Delphi приложениях (com, dll).VALID INFO.html .\Принцип создания плагинов в D.html .\seealso.txt Это все пробовалось, тестировалось, было "взвешено, обмерено и признано" негодным или годным. Все это в какой-нибудь <awesome> реестр надо, но пока так.
---------- C уважением, Алексей. ----------------------------------------------- Хороших %s не бывает — бывает не худший вариант. |
|