Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi mehrere Formular-DLL laden/entladen (https://www.delphipraxis.net/173712-mehrere-formular-dll-laden-entladen.html)

Der schöne Günther 13. Mär 2013 09:49

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:
Application
-Objekt selbst drum gekümmert hätte weiß ich nicht.

Memo 13. Mär 2013 10:33

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.

Der schöne Günther 13. Mär 2013 11:17

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?

Memo 13. Mär 2013 12:00

AW: mehrere Formular-DLL laden/entladen
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1207213)
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?

Das entladen macht das Testprogrämmchen auch erst wenn die DLL nicht mehr gebraucht wird.
Und eine Exception habe ich nicht erwartet sondern unter XP bekommen. Dort läuft dein Test nicht.

Der schöne Günther 13. Mär 2013 12:49

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 19:47 Uhr.
Seite 2 von 2     12   

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