Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi zugriff auf andere formular in dll (https://www.delphipraxis.net/156936-zugriff-auf-andere-formular-dll.html)

JnZn558 21. Dez 2010 08:07

zugriff auf andere formular in dll
 
hab den "Delphi plugin by example" tutorial von Leonardo Blog gelesen und nachgemacht, es funktioniert bis jetzt alles gut. Nun wie mache ich das, wenn ich mehrere verschiedene dll hab, alle ein form haben, der form soll von andere form zugreifbar gemacht werden.

z.B
test1.dll ( export ein form )

test2.dll ( export auch ein form )

beide werden in main.exe dynamisch geladen und bei form von test1.dll

Delphi-Quellcode:
procedure TForm1.OnForm1Create( Sender: TObject);
begin
   objekt_von_form_in_test2_dll.Caption := 'test';
end;
wie bekomme ich den Instanz ( bzw Objekt ), der in main.exe instanziert wird ins test1.dll

meine Intension ist ganz einfach, form in dlls sollen gegenseitig zugreifbar sein ( bzw kommunizieren können ).

jemand ne vorschlag ( Idee ) für mich?

danke für eure Antworten, auch wenn sie nicht hilfreich sind.

Bernhard Geyer 21. Dez 2010 08:14

AW: zugriff auf andere formular in dll
 
Wenn du auf "lebende" Objekte zugeifen willst, so musst du die Exe und die DLL's mit Runtime-Packages kompilieren. Entsprechend solltest du dir auch Interfaces/Basisklassen für die DLL's überlegen und auch möglichst viele gemeinsame Klassen in Basis-Packages verlegen.

Diese Lösung wird dann nur funktionieren wenn Exe und DLL's mit der gleichen Delphi/C++-Builder mit gleichen Patch-Level kompiliert wurden.


Ist nicht einfach und wenn man nicht aufpasst kommt man in die BPL-Hölle.

mschaefer 21. Dez 2010 12:00

AW: zugriff auf andere formular in dll
 
Bernhard hat das schon angedeutet, das direkter Objektzugriff erhebliche Selbstdisziplien braucht und dazu führt, dass man auch die dll´s im Auge behalten muss, wenn man im Hauptprojekt mit ganz andere Sachen beschäftigt ist. deshalb neige ich dazu den SOA-Ansatz zu verfolgen und dll´s mit xml-Steuerfiles zu versorgen. Die dll muß daraus die entsprechenden Handlungen parsen. Einen Objektzugriff gibt es nicht.

Grüße

hanspeter 21. Dez 2010 12:07

AW: zugriff auf andere formular in dll
 
Zitat:

Zitat von mschaefer (Beitrag 1069739)
Bernhard hat das schon angedeutet, das direkter Objektzugriff erhebliche Selbstdisziplien braucht und dazu führt, dass man auch die dll´s im Auge behalten muss, wenn man im Hauptprojekt mit ganz andere Sachen beschäftigt ist. deshalb neige ich dazu den SOA-Ansatz zu verfolgen und dll´s mit xml-Steuerfiles zu versorgen. Die dll muß daraus die entsprechenden Handlungen parsen. Einen Objektzugriff gibt es nicht.

Grüße

Ich gehe hier noch einen Schritt weiter und verwende die Com/ DCom -Technologie.
Mit einem OutofProcess-Server bin ich auch noch die Abhängigkeiten von den unseligen Laufzeit-BPL los.
Da ein OutofProcess-Server auch noch eine eigene Oberfläche haben kann, gestaltet sich der Test einfacher.

Gruß
Peter

JnZn558 21. Dez 2010 17:27

AW: zugriff auf andere formular in dll
 
Vielen Dank. Doch die theorie scheint mir ein bisschen zu trocken, versteh es nicht so richtig. wenn ihr ein kleines beispiel skizze machen koennt, kann ich besser verstehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 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