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
peterlepan

Registriert seit: 5. Jun 2006
Ort: Nordhausen
37 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: mehrere Formular-DLL laden/entladen

  Alt 12. Mär 2013, 16:34
ShowForm sind zwar zwei lokale Variablen, vielleicht löst der Compiler da irgendetwas falsch auf, probier mal die beiden mit ShowForm1 und ShowForm2 zu bezeichnen.
Peter Tabatt
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: mehrere Formular-DLL laden/entladen

  Alt 12. Mär 2013, 17:30
Mir ist es immer noch zu gruselig, direkt dahinter ein FreeLibrary . Was gibt der Aufruf denn zurück?
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

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

AW: mehrere Formular-DLL laden/entladen

  Alt 13. Mär 2013, 07:12
probier mal die beiden mit ShowForm1 und ShowForm2 zu bezeichnen.
Hat leider nicht gewirkt.

Zitat:
Mir ist es immer noch zu gruselig, direkt dahinter ein FreeLibrary..
Das hat mit der Problematik nichts zu tun und ist kein Fehler.
Zitat:
Was gibt der Aufruf denn zurück? .
Es wird eine Formular-Dll erzeugt, es wird nichts zurückgegeben.
  Mit Zitat antworten Zitat
peterlepan

Registriert seit: 5. Jun 2006
Ort: Nordhausen
37 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: mehrere Formular-DLL laden/entladen

  Alt 13. Mär 2013, 07:27
Hast Du die Formular mal einzeln ausprobiert? Und wie sieht die FormAnzeigen-Methode in der DLL genau aus?
Peter Tabatt
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

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

AW: mehrere Formular-DLL laden/entladen

  Alt 13. Mär 2013, 08:00
Ich habe mal ein Testprojekt angehängt.
Angehängte Dateien
Dateityp: zip TestFormDLL.zip (798,0 KB, 11x aufgerufen)
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: mehrere Formular-DLL laden/entladen

  Alt 13. Mär 2013, 08:37
Ich habe (bislang) nicht verstanden, wozu das Application -Objekt eigentlich gut ist. Deshalb habe ich es in deinem Testprojekt einmal so abgeändert, wie ich es bei mir tue:
  1. In der Dll die Form mittels TForm.Create() erzeugen und anschließend anzeigen
  2. Mehr nicht - Die Methode ist hier zuende.
  3. In der Hauptanwendung nicht gleich direkt mit FreeLibrary die dll wieder rauswerfen

Und es geht - Die Fenster werden so geschlossen, wie man auch draufklickt.



PS:

Zitat:
Was gibt der Aufruf denn zurück? .
Es wird eine Formular-Dll erzeugt, es wird nichts zurückgegeben.
Damit meinte ich den Rückgabewert von FreeLibrary

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

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

AW: mehrere Formular-DLL laden/entladen

  Alt 13. Mär 2013, 09:37
In der Dll die Form mittels TForm.Create() erzeugen und anschließend anzeigen
Und es geht - Die Fenster werden so geschlossen, wie man auch draufklickt.
Kannst Du mal ein dpr-File einer DLL zeigen? Einfach nur TForm.Create() reicht ja nicht.
  Mit Zitat antworten Zitat
Der schöne Günther

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

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
Antwort Antwort


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 04:45 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