![]() |
AW: mehrere Formular-DLL laden/entladen
Hallo -
Ich habe nur eine (bzw zwei) Zeilen hinzugefügt:
Delphi-Quellcode:
library Formular1;
uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} procedure Form1Anzeigen(parameter:Integer); stdcall; begin TForm1.Create(nil).Show(); // <------------- Exit(); try Application.CreateForm(TForm1, Form1); Application.Run; finally Form1.Free; end end; exports Form1Anzeigen; end. Bislang fehlen der dll dann natürlich noch die Methoden um die Form evtl. wieder zu verstecken und zu zerstören. Und natürlich sollte man sich die Form nicht anonym erzeugen sondern halt noch irgendwo merken (um sie dann später vernünftig wieder vom Speicher nehmen zu können) und sich noch Gedanken machen, was passieren soll, wenn "von außen" die Erstellung einer Form angefordert wird, aber schon eine da ist (z.B. alte vorher schließen und zerstören). Ob sich da dieses
Delphi-Quellcode:
-Objekt selbst drum gekümmert hätte weiß ich nicht.
Application
|
AW: mehrere Formular-DLL laden/entladen
Ähmm.., ja es fehlt ziemlich alles.
Erstaunlich das es, zumindist unter W7, überhaupt ohne Exception läuft. Da muss ich erstmal drüber nachdenken. |
AW: mehrere Formular-DLL laden/entladen
Hallo -
ich habe mit Delphi noch keine wirklich Erfahrung, deswegen erschien es mir so am sinnvollsten. Die Dll hat ihre eigene VCL (die Oberfläche könnte deswegen auch schön in einem separaten Thread laufen) und erstellt und zerstört eigentlich nur Formen wie sie sollte. Wenn das Hauptprogramm sich sicher ist, die dll nicht mehr zu brauchen, werfe ich sie mittels FreeLibrary wieder heraus. Auf die Weise fahre ich bislang eigentlich ganz, wo (bzw. aus welchem Grund) hättest denn Exceptions erwartet? |
AW: mehrere Formular-DLL laden/entladen
Zitat:
Und eine Exception habe ich nicht erwartet sondern unter XP bekommen. Dort läuft dein Test nicht. |
AW: mehrere Formular-DLL laden/entladen
Wenn ich (mich anschicke) die dll direkt nach dem Aufruf wieder zu entfernen stürzt es bei mir ab (Win7/64). Wird das später gemacht: Kein Problem.
In dieser Woche kann ich wahrscheinlich an keinen XP-Rechner mehr kommen, deshalb blieb mir nur der XP-Kompatiblitätsmodus. Keine Ahnung, was der effektiv anstellt, denn da lief es bei mir auch noch... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 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