AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Kommunikation zwischen Hauptanwendung und Plugin
Thema durchsuchen
Ansicht
Themen-Optionen

Kommunikation zwischen Hauptanwendung und Plugin

Ein Thema von RWarnecke · begonnen am 30. Nov 2008 · letzter Beitrag vom 6. Dez 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Kommunikation zwischen Hauptanwendung und Plugin

  Alt 30. Nov 2008, 17:33
Hallo zusammen,

ich habe den ersten Teil von sakuras Tutorial PlugIns in eigenen Anwendungen durchegelesen und ausprobiert. Es funktioniert auch alles soweit. Nur leider bekomme ich keine Kommunikation zwischen Hauptanwendung und PlugIn hin. Ich möchte gerne, dass zum Beispiel ein Label oder der Inhalt eines Memos ausgelsen wird und dann im PlugIn angezeigt wird.

Wie und was muss ich machen, damit mein Vorhaben funktioniert ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#2

Re: Kommunikation zwischen Hauptanwendung und Plugin

  Alt 6. Dez 2008, 13:24
*push* Hat keiner eine Idee für mich ?? *push*
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Kommunikation zwischen Hauptanwendung und Plugin

  Alt 6. Dez 2008, 13:38
Implemnetiere eine Funktion dafür im Plugin und exportiere diese
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

Re: Kommunikation zwischen Hauptanwendung und Plugin

  Alt 6. Dez 2008, 13:53
Ich probiere es derzeit so. In meiner Hauptanwendung habe ich folgendes drinstehen :
Delphi-Quellcode:
type
//
// Declaration of class for the interface IApplication
//
  IApp = interface(IInterface)
    function GetTheCaption:string;
  end;
  TAppInf = class(TInterfacedObject, IApp)
  public
    function GetTheCaption: String;
  end;

...

implementation

...

{ TAppInt }

function TAppInf.GetTheCaption: string;
begin
  result := 'Das ist ein Test für ein Interface';
end;
Die Unit, die ich in der DLL und in der Hauptanwendung mit einfüge hat den folgenden Teil :
Delphi-Quellcode:
  IApp = interface(IInterface) ['{EE10386E-F8B8-44A1-8A88-D809B4EA1964}']
    function GetTheCaption:string;
  end;
In der DLL selber mache ich dann folgendes :
Delphi-Quellcode:
var
  PlgApp: IApp

...

procedure TPlugIn01.Execute;
begin
  Form1 := TForm1.Create(nil);
  Form1.Label1.Caption := PlgApp.GetTheCaption;
  Form1.Show;
end;
Was mache ich falsch ? Oder habe ich das Prinzip der Interfaces noch nicht verstanden ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Kommunikation zwischen Hauptanwendung und Plugin

  Alt 6. Dez 2008, 13:57
Hauptprogramm und Dll haben eigene Instanzen der VCL.
Deshalb Funktion für Ausgabe der Dll vom Hauptprogramm aufrufen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

Re: Kommunikation zwischen Hauptanwendung und Plugin

  Alt 6. Dez 2008, 14:06
Zitat von mkinzler:
Hauptprogramm und Dll haben eigene Instanzen der VCL.
Deshalb Funktion für Ausgabe der Dll vom Hauptprogramm aufrufen.
Wenn ich das jetzt richtig verstehe, dann muss das ganze genau anders herum sein, richtig ? Mein Vorhaben ist aber eigentlich bestimmte Funktionen für die Plugin's zur Verfügung zu stellen. Dann ist doch mein Denkansatz, so wie ich es jetzt mache mit den Interfaces falsch oder ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Kommunikation zwischen Hauptanwendung und Plugin

  Alt 6. Dez 2008, 14:27
Dlls unterstützen ja keine Objekte im Interface. Wie verbindest du die beiden Objekte (Hauptprogramm/Dll)?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

Re: Kommunikation zwischen Hauptanwendung und Plugin

  Alt 6. Dez 2008, 14:39
Zitat von mkinzler:
Dlls unterstützen ja keine Objekte im Interface. Wie verbindest du die beiden Objekte (Hauptprogramm/Dll)?
Da bin ich mir jetzt etwas unsicher. Ich denke über die Klasse TAppInf. Die Klasse wird beim Starten der Anwendung erzeugt. Aber ich glaube, dass ich damit flasch liege oder ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Kommunikation zwischen Hauptanwendung und Plugin

  Alt 6. Dez 2008, 14:44
Über diese Klasse funktioniert es, es existieren aber verschiedene Objekte (eines im Hauptprogramme und jeweils ein Proxy-Objekt im Plugin)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#10

Re: Kommunikation zwischen Hauptanwendung und Plugin

  Alt 6. Dez 2008, 14:59
Zitat von mkinzler:
Über diese Klasse funktioniert es, es existieren aber verschiedene Objekte (eines im Hauptprogramme und jeweils ein Proxy-Objekt im Plugin)
Das verstehe ich nicht ganz. Ich deklariere doch im Hauptprogramm das Interface, die Klasse und setze noch die GUID fest. Mit der gleichen Unit erstelle ich doch auch die DLL. Das heißt jetzt für mich, dass ich doch mit dem gleichen Objekt arbeite oder nicht ?

Im Anhang die DLL und die Unit die mit den Deklarationen. Die Deklarationen im Hauptprogramm wie in Beitrag 4.
Angehängte Dateien
Dateityp: pas plugindefinitionunit_170.pas (1,2 KB, 2x aufgerufen)
Dateityp: dpr bbcode_191.dpr (1,5 KB, 3x aufgerufen)
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz