![]() |
Geeignetes (professionelles) Plugin-system?
Hi
ich bin grad so am überlegen, weil ich für ne zukünftige Version meines Netzwerkchats (TBX-Client auf ![]() Was wäre dazu ideal? Was sollte nach meinen bisherigen Überlegungen so alles möglich sein:
Jetzt ist halt die Frage, womit/wie man sowas am besten macht. Mir fallen da spontan nämlich recht wenig Möglichkeiten ein. Eine wäre, einfach eine DLL zu schreiben, die dann bestimmte Funktionen hat, die von dem Programm zu bestimmten Augenblicken (User geht online,...) aufgerufen werden. Vorteil: es können beliebige Parameter übergeben werden. Alles andere muss die DLL dann selbst machen. An das TApplication-Objekt kommt man ja mit [jetzt weiß ichs nimmer auswenig] ran. Dort kann man dann auch auf die einzelnen Forms zugreifen und alle Komponenten ansteuern (mit FindComponent) und deren Methoden aufrufen (GetMethodAdress, etc.). Wie das mit der Authorisierung ist, weiß ich nicht so recht, weil sobald ich eine DLL-Funktion aufrufe, hat diese vollen Zugriff auf die TApplication und das wär zuviel... Was nicht geht, ist meines Wissens nach, Prozeduren und Funktionen aufzurufen, die keiner Form zugeordnet sind und das finde ich äußerst schlecht, da fast das gesamte Protokoll so aufgebaut ist, auf der anderen Seite könnte man so Prozeduren vor Plugins verstecken... Nachteil:
Eine weitere Möglichkeit, die mir bekannt ist, ist der TJvPluginManager:
------------------------------------- Beide haben den Nachteil, dass sie relativ große DLLs produzieren würden (wegen der VCL). Jetzt, warum erzähl ich euch das??? Ich erhoffe mir, dass vllcht
Bis dann beste Grüße alias5000 |
Re: Geeignetes (professionelles) Plugin-system?
Hi,
Du könntest eine Typenbibliothek (ActiveX DLL) erstellen, wo Du Interfaces für den Zugriff auf Deine Anwendungsfeatures definierst. Die Klassen Deiner Anwendung implementieren diese Features und das Plugin bräuchte dann nur dann sehr wenige, wenn nicht sogar nur eine Export-Funktion, an die Du von Deinem Programm aus die Interfaces übergibst. Du kannst Dir bei Interesse ja meinen HTML/PHP Editor "AlphaCode Studio" anschauen, die Pluginschnitstelle ist dort auch so realisiert. mfG mirage228 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz