![]() |
zugriff auf andere formular in dll
hab den "Delphi plugin by example" tutorial von
![]() 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:
wie bekomme ich den Instanz ( bzw Objekt ), der in main.exe instanziert wird ins test1.dll
procedure TForm1.OnForm1Create( Sender: TObject);
begin objekt_von_form_in_test2_dll.Caption := 'test'; end; 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. |
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. |
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 |
AW: zugriff auf andere formular in dll
Zitat:
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 |
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 02:31 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