![]() |
Frame aus Dll in Form anzeigen
Hallo !
Ich weiss. Dieses Thema wurde in ähnlicher weise schon mehrfach diskutiert. Leider sind alle Diskussionen meist bei einer Form gelandet anstatt eines TFrame. Folgendes habe ich schon. Eine funktionierende Pluginschnittstelle mit DLL und FastShareMem. Ich kann Strings und Objekte zwischen App und Plugin austausschen. (Wichtig dabei. Wers erstellt muss es auch zerstören, sonst gibts saures). Ich erzeuge in einem PLugin ein TFrame und übergebe es an meine Form. Dort wird es leider nicht angezeigt. Hat jemand eine Idee warum das so sein könnte? (D7) |
Re: Frame aus Dll in Form anzeigen
Ein wenig Quelltext wäre hübsch.
|
Re: Frame aus Dll in Form anzeigen
Kommt sofort.
Das Innere des Plugins ist leider etwas komplizierter zu erlären. Kurzfassung. Es wird eine TList mit den Parameter übergeben und ich bekomme eine TList mit den Ergebnissen zurück.
Code:
DLL:
frame:TFrame1 im Plugin Private definiert. procedure TPlugin.getFrame(Parameters,Erg: TList); begin frame:=TFrame1.Create(nil); frame.Top:=10; setV(Erg,frame); // Ergebnisse schreiben end; Programm: frame:TFrame1 in der Form als Private definiert. procedure TForm1.Button1Click(Sender: TObject); begin Plugin_Load(TPlugin,'BASE'); // Laden der Plugins Plugins.PluginNr[0].CallFunction('getFrame',[]); // Aufruf der Funktion frame:=TFrame1(Plugins.PluginNr[0].getResultObject(0)); // Objekt holen frame.Parent:=self; frame.Top:=0; frame.Left:=0; frame.Width:=100; frame.Height:=100; frame.Show; end; |
Re: Frame aus Dll in Form anzeigen
Hab das Problem gefunden!
Um probleme zu vermeiden wurden unsere Projekte ohne laufzeit packages kompiliert. Nachteil die DLL und das Programm haben eine eigene instanz der VCL. Grafische Daten können so nicht ausgetauscht werden. Wenn ich einstelle das er programm und dll mit Laufzeitpackage 'vcl' kompilieren lasse, dann läuft alles. Beide benutzzen die gleiche VCL und der Frame wird ohne probleme angezeigt. Leider ist dies für unsere Programme nicht möglich. Weiss jemand anders eine Idee wie ich ohne Laufzeitpackages die beiden VCL's verbinden kann? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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-2025 by Thomas Breitkreuz