Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Modul-System / Plugin-Programmierung


KyroxX - Fr 16.05.03 12:36
Titel: Modul-System / Plugin-Programmierung
Hi,

Ich bin dabei ein umfassenden Warcraft3 editor zu programmieren.
Nun ist es so das viele der Nutzer nur einige funktionen des Programms nutzen wollen.

Damit die aber nich nen riesen Programm runterladen müssen wo die dann eh nur 2% von nutzen hab ich mir gedacht programmier ich eine Art Modul system.

Soll heissen, ein system das dann "plugins" erkennt die sich bei aktivierung in das Programm einbinden.

Wie macht man sowas und gibt es da evtl. Komponenten für? 8)

Thx @ vorraus
KyroxX


ase - Fr 16.05.03 13:53

ts... komponenten hier komponenten da...


ich habe einige zeit lang an sowas gearbeitet und mir damit die birne weichgedröselt. ich bin da zu dem entschluss gekommen, dass man wirklich echtes modulbasiertes programmieren nur mit COM realisieren kann. des begründe ich auch gerne. stell dir vor, du hast nen plug in welches sich nicht wie sonst im hauptmenü unter 'Plugins' registrieren soll, sondern woanders bei 'Datei' oder so. wenn dein hauptprogramm des nicht unterstützt ist der zug weg. mit com und konsorten ist sowas kein problem.

aber wenn du unbedingt willst, dann geb ich dir den tip und programmier als plugins keine DLLs, sondern packages (BPL). dann kannst du auch formulare oder andere objekte in deinen schnittstellen benutzen.

musst du mal googeln. einfaches plugging in ist auf jeder halbwegs guten D-Seite beschrieben.


ase


Klabautermann - Fr 16.05.03 13:56

Hallo,
ase hat folgendes geschrieben:
ich habe einige zeit lang an sowas gearbeitet und mir damit die birne weichgedröselt. ich bin da zu dem entschluss gekommen, dass man wirklich echtes modulbasiertes programmieren nur mit COM realisieren kann.

wie steht es denn da um die Performance? Müsste doch wesentlich langsamer sein als BPLs oder?

Gruß
Klabautermann


ase - Fr 16.05.03 14:00

nein. nimm directX. alles inproc server - also DLLs. DLLs, die als inproc laufen sind exakt genauso schnell wie "normale BPLs". externe server (wie: Mein Programm steuert Word) sind langsamer wegen RPC und zeugs.

da gibt es aber eine einschränkung. wenn man sich nicht an die vorgegebenen COM typen hält muss man custom marshalling machen (IMarshall implementieren). des wird dann langsamer, sollte sich aber bei einem level editor nicht unbedingt bemerkbar machen.


ase


matze - Fr 16.05.03 15:27

also wegen kompos dafür. bei http://www.tmssoftware.com gibt es so eine PlugIn Patchwork kompo. wie genu die funktioniert weiss ich icht. ich hab nur mal drübergelesen. damit kann man anscheinend sowas realisieren !


KyroxX - Fr 16.05.03 21:11
Titel: Cool Thx !
Hey Cool! 8)

Very THX an euch, ich guck mich mal um wegen COM / BPL und der Componente von TMS ;)

Mal sehen klappt bestimmt *gg*

8) Bis denne