AGB  ·  Datenschutz  ·  Impressum  







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

mehrere Formular-DLL laden/entladen

Ein Thema von Memo · begonnen am 12. Mär 2013 · letzter Beitrag vom 13. Mär 2013
Antwort Antwort
Seite 2 von 2     12   
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: mehrere Formular-DLL laden/entladen

  Alt 13. Mär 2013, 09:49
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 Application -Objekt selbst drum gekümmert hätte weiß ich nicht.

Geändert von Der schöne Günther (13. Mär 2013 um 09:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#12

AW: mehrere Formular-DLL laden/entladen

  Alt 13. Mär 2013, 10:33
Ähmm.., ja es fehlt ziemlich alles.
Erstaunlich das es, zumindist unter W7, überhaupt ohne Exception läuft.
Da muss ich erstmal drüber nachdenken.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: mehrere Formular-DLL laden/entladen

  Alt 13. Mär 2013, 11:17
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?
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#14

AW: mehrere Formular-DLL laden/entladen

  Alt 13. Mär 2013, 12:00
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.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: mehrere Formular-DLL laden/entladen

  Alt 13. Mär 2013, 12:49
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...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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