Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Plugin für eigenes Programm schreiben (https://www.delphipraxis.net/20839-plugin-fuer-eigenes-programm-schreiben.html)

orabimus 26. Mär 2005 01:00

Re: Plugin für eigenes Programm schreiben
 
Hi Luckie,

wenn ich dein Demo richtig verstehe:

Das Hauptprogramm sucht die passenden DLL(s) und erzeugt dafür Menuitems im Hauptprogramm?

Beim Anklicken eines dieser neuen Menuitems im Hauptprogramm passiert dann was?

Das Plugin schickt einen "statischen" Befehl an das Hauptprogramm zurück und das Hauptprogramm tut dann das, was es sowieso schon ohne Plugin kann?

Entweder habe ich dein Demo überhaupt nicht kapiert oder es hat mit Plugins (noch recht) wenig zu tun ;-)

Plugins bringen m.M.n. nur was, wenn sie mit dem Hauptprogramm auch Daten - die irgendwie gegenseitig übergeben werden können - austauschen können.

Zur Plugin-Programmierung bring Google leider so gut wie nix Brauchbares, daher trotzdem vielen Dank für deinen Ansatz!!!

Erhol dich gut in Irland!

lg

Luckie 26. Mär 2005 01:42

Re: Plugin für eigenes Programm schreiben
 
Wo kann denn das Programm was, was es schon ohne PlugIn könnte? Wenn du mal genauer hingekuckt hättest, dann würdest du sehen, dass die Dialoge, die erscheinen, wenn man auf die Menüeinträge klickt, aus den PlugIn DLL kommen.

orabimus 27. Mär 2005 04:34

Re: Plugin für eigenes Programm schreiben
 
Mir sehr peinlich aber leider wahr:

Mein Delphi hat mir die "FormUnit.pas" aus dem Plugin-Ordner auch im Hauptprogramm "PluginDemo.dpr" deiner Demo angezeigt :oops:

Nehme daher Alles zurück und behaupte vorsichtshalber das Gegenteil :mrgreen:

Bis auf:

Zur Plugin-Programmierung bring Google leider so gut wie nix Brauchbares, daher trotzdem vielen Dank für deinen Ansatz!!!

Erhol dich gut in Irland!

lg

Edit: Und öftermal nach Mitternacht habe ich vielleicht manchmal "Konzentrationsschwächen" :wall:

Luckie 27. Mär 2005 15:09

Re: Plugin für eigenes Programm schreiben
 
Das ganze ist ja nicht mehr ale Proof of Concept. Da die Hostanwendung ja selber nichts kann, war es eben auch schwer bis unmöglich dass die PlugIns was sinnvolles machen. Würde ich eine Plaugin fähige Anwendung entwerfen müssen, dann würde ich eine DLL schreiben, die alles nötige exportiert. Und wenn dann jemand kommt und sagt, "mein Plugin bräcuhte noch das und as aus deiner Anwendung" (Hanle auf Edits oder Menüs oder irgendwelche Pfade, dann kann man die DLL einfach ergänzen.

torud 1. Apr 2005 13:58

Re: Plugin für eigenes Programm schreiben
 
Kann mir denn eigentlich jemand sagen, wie ich nun eigentlich vom Hauptformular auf ein Plugin zugreifen kann, von dem ich gar nicht weiss, was es kann, oder wie ich dem Plugin Daten senden kann?

MathiasSimmack 1. Apr 2005 14:04

Re: Plugin für eigenes Programm schreiben
 
Wenn du nicht weißt, was es kann, dann ist es kein Plugin für deine Anwendung, denn du gibst vor, wie sich ein Plugin zu verhalten hat. Was es intern macht, spielt keine Rolle, solange es sich bspw. mit einer bestimmten Funktion beim Hauptprogramm anmeldet, und solange der Aufruf der Plugin-Funktion durch einen bestimmten Befehl festgelegt ist. Nach dem Muster funktionieren IMHO alle Plugins.

Igotcha 1. Apr 2005 14:07

Re: Plugin für eigenes Programm schreiben
 
Zitat:

Zitat von torud
Kann mir denn eigentlich jemand sagen, wie ich nun eigentlich vom Hauptformular auf ein Plugin zugreifen kann, von dem ich gar nicht weiss, was es kann, oder wie ich dem Plugin Daten senden kann?

Du wilst gar nicht vom Hauptprogramm auf ein PlugIn zugreifen ;-)

PlugIns machen i.d.R. folgendes:

- sie greifen auf eine Schnittstelle zu, die das Hauptprogramm bereitstellt, um z.B. irgendwelche Daten lesen zu können. Z.B. Stellt ein Grafikprogramm über die Schnittstelle einen Zugriff auf das aktuelle Bild bereit. Das Plugin kann dann z.B. das Canvas des Bildes bearbeiten

- sie stellen dem Hauptprogramm "Aktionen" zur Verfügung - in Form von Menüpunkten - die man dann im Hauptprogramm auswählen kann, die Abarbeitung findet aber widerum im PlugIn statt

Gruß Igotcha

torud 1. Apr 2005 16:57

Re: Plugin für eigenes Programm schreiben
 
ein grosses Aah hat sich soeben eingestellt!

Wie könnte ich also dem Plugin teile meiner Datenbank zur Verfügung stellen?
Wenn ich im Plugin selbst auf mein Datenmodul zugreifen will und so was probiere schmiert mir alles ab:

Delphi-Quellcode:
Plugin.AdoTable.Assign(Datenmodul.AdoTable);
Und das, obwohl Datenmodul per uses dem Plugin bekannt ist.

Was mache ich falsch?

Igotcha 1. Apr 2005 17:15

Re: Plugin für eigenes Programm schreiben
 
Zitat:

Zitat von torud
ein grosses Aah hat sich soeben eingestellt!

Wie könnte ich also dem Plugin teile meiner Datenbank zur Verfügung stellen?
Wenn ich im Plugin selbst auf mein Datenmodul zugreifen will und so was probiere schmiert mir alles ab:

Mal ein Beispiel:

Ich arbeite selbst an einer modularen Awendung, wo das Hauptprogramm nur eine minimale technische Funktionalität und rein gar keine fachliche besitzt - diese steckt in den Modulen (ich arbeite mit BPLs und da stecken die Forms, etc. drin).

Da dies hauptsächlich datenbankbasierte Module sind, stelle ich vom Hauptprogramm aus verschiedene Query-Komponenten zur Verfügung, mit denen die Module arbeiten können.

Dazu ist es bei mir notwendig, dass die Module alle von einer gemeinsamen Basisklasse abgeleitet sind und die "MainForm" in der Uses-Klausel aufnehmen. Damit aus den Modulen und dem Hauptprogramm später auch "eine" Applikation wird, sind alle Module mit Laufzeitpackages kompiliert.

In den Modulen greife ich dann auf eine Query z.B. so zu:

Delphi-Quellcode:

MainForm.AIOSZQR0.SQL.Text:='SELECT o.* FROM kom_pup_org o, kom_pup_org_user u WHERE o.o_id = u.org_id AND u.user_id =:user ORDER BY o.o_order DESC';
MainForm.AIOSZQR0.ParamByName('user').AsInteger:=AIOSUserID;
MainForm.AIOSZQR0.Open;
Wobei "AOISUserID" z.B. auch eine Variable des Hauptprogramms ist, auf die alle Module zugreifen können.

Diese jetzt endlich für mich funktionierende Technik habe ich auch nicht alleine zustande gebracht, sondern ein Gerüst gefunden (Dank nochmal an Hagen), welches ich mir auf meine eigenen Bedürfnisse angepasst habe. Grundsätzlich ist dieses Thema nicht einfach, da man verschiedene, essentielle technische Sachen beachten muß, damit wirklich später alles in einem "Applikation-Raum" zusammenspielt.

Diese ganzen Demos á la "Eine Form aus einer DLL anzeigen" etc. sind meiner Meinung nach völlig für den Eimer, da sich diese geschickt um die eigentlichen Probleme drücken.

Gruß Igotcha

torud 1. Apr 2005 18:54

Re: Plugin für eigenes Programm schreiben
 
Tja den Eindruck habe ich auch!

Vielleicht könnte es mir schon helfen, wenn ich mir mal grundsätzlich ansehe, wie man ein DLL erstellt und zur Laufzeit einbindet, denn das ist doch eigentlich auch NUR ein Plugin, oder?

Jedenfalls bin ich mit den Tuts und Demos nur bedingt klargekommen. Meine Anwendung hat mich sehr intensiv mit Fehlermeldungen und Abstürzen bombardiert, als ich erstmalig versuchte die Plugins zu laden. Das selbst ging ja noch. Das Anzeigen der Forms der Plugins auch, aber sobald das Wichtigste, nämlich die Kommunikation zwischen beiden kam, war schluss!

Leider habe ich von bpl´s noch nichts gehört. Werde mal sehen, wo man noch Hilfe finden kann, denn ich muss dieses mal erstmalig modular arbeiten und eigentlich wil ich das auch endlich mal kapieren und nutzen!

Danke Tom


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr.
Seite 2 von 3     12 3      

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-2025 by Thomas Breitkreuz