AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zugriff auf lokale Variablen bei Callback aus DLL

Zugriff auf lokale Variablen bei Callback aus DLL

Ein Thema von kaju74 · begonnen am 10. Dez 2009 · letzter Beitrag vom 10. Dez 2009
 
kaju74

Registriert seit: 22. Okt 2003
185 Beiträge
 
#1

Zugriff auf lokale Variablen bei Callback aus DLL

  Alt 10. Dez 2009, 15:46
Hallo.

Ich habe hier ein Verständnisproblem bzgl. DLL's und Callbacks. Also:

Ich habe ein Host-Programm, das PlugIns nachladen kann. Diese PlugIns sind ganz normale Delphi-DLL's,
die ein gemeinsames Interface implementieren. So weit so gut. Nachdem der Host ein PlugIn geladen hat, kann
ich über eine PlugIn-Methode ein Callback registrieren, der dann im PlugIn aufgerufen werden kann. Soweit
geht auch noch alles, soll heißen: PlugIn wird geladen, Callback wird registriert, eine PlugIn-Funktion
wird aufgerufen die wiederum die Callback-Routine im Host aufruft.

Nun mein Problem:

Nehmen wir an, wir haben eine Form (TfrmMain) mit folgendem Aufbau:

Delphi-Quellcode:
  TfrmMain = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    FLocalVar: string;
    procedure CallbackProc(ActionGUID: string; CallbackInfo: Pointer);
  public
    { Public-Deklarationen }
  end;
Die CallbackProc ist die Methode, die vom Plugin aufgerufen wird. So, hier nun die Implementation der
Methode:

Delphi-Quellcode:
procedure TfrmMain.CallbackProc(ActionGUID: string; CallbackInfo: Pointer);
begin
  ShowMessage('Aufgerufen vom PlugIn!');
end;
Das funktioniert....ABER...warum geht das hier nicht:

Delphi-Quellcode:
procedure TfrmMain.CallbackProc(ActionGUID: string; CallbackInfo: Pointer);
begin
  ShowMessage(FLocalVar);
end;
Es scheint so, das ich hier KEINEN Zugriff auf die lokalen Variablen habe. Setze ich "frmMain.FLocalVar" davor, geht
es, da ich die Klasse explizit angebe, aber warum geht's nicht auch ohne....

...und WIE LÖSE ICH DAS PROBLEM??? Die Variable "frmMain" gibts in meinem eigentlichen Programm nämlich gar nicht, da
sie dynamisch in einem Skeleton (über eine ClassFunction) generiert wird.

HILFE....

Lieben Gruß & Danke,
kaju

BDS2009 unter Windows7
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:11 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