AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frame aus Dll in Form anzeigen

Ein Thema von schu-r · begonnen am 3. Jul 2006 · letzter Beitrag vom 4. Jul 2006
Antwort Antwort
schu-r

Registriert seit: 3. Jul 2006
7 Beiträge
 
#1

Frame aus Dll in Form anzeigen

  Alt 3. Jul 2006, 14:47
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)
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Frame aus Dll in Form anzeigen

  Alt 3. Jul 2006, 14:49
Ein wenig Quelltext wäre hübsch.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
schu-r

Registriert seit: 3. Jul 2006
7 Beiträge
 
#3

Re: Frame aus Dll in Form anzeigen

  Alt 3. Jul 2006, 15:13
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;
  Mit Zitat antworten Zitat
schu-r

Registriert seit: 3. Jul 2006
7 Beiträge
 
#4

Re: Frame aus Dll in Form anzeigen

  Alt 4. Jul 2006, 08:51
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?
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:05 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