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 DLL richtig beenden (https://www.delphipraxis.net/89741-dll-richtig-beenden.html)

Tommy82 10. Apr 2007 16:46

Re: DLL richtig beenden
 
Showmodal + Free klappt nicht hintereinander

ste_ett 10. Apr 2007 16:53

Re: DLL richtig beenden
 
Zitat:

Zitat von Tommy82
Showmodal + Free klappt nicht hintereinander

Warum sollte das nicht gehen?
Es ist ein lokales Objekt, was nach Beendigung der Funktion "ShowModal()" ohne Weiteres wieder freigegeben werden kann. :)

Tommy82 10. Apr 2007 17:02

Re: DLL richtig beenden
 
Delphi-Quellcode:
Procedure TestDll_Start;
var Form1 : TForm1;
BEGIN
 Form1 := TForm1.Create(NIL);
 Form1.ShowModal;
 Form1.Free;
END;
Formular bleibt offen, es tut sich nix
mfg

Tommy82

Tommy82 10. Apr 2007 17:19

Re: DLL richtig beenden
 
Delphi-Quellcode:
Procedure TestDll_Start;
var Form1 : TForm1;
BEGIN
 Form1 := TForm1.Create(NIL);
 Form1.Show;
 Form1.Free;
END;
da schließt sich das Fenster SOFORT wieder (flackert).

Aber wie baue ich es nun in die Form1 ein?

MyRealName 10. Apr 2007 17:30

Re: DLL richtig beenden
 
setz mal in den Optionen von exe und dll auf "build with runtime packages" und lass dort RTL und VCL drin stehen. das sollte dein Problem beheben, denn ohne arbeiten exe und DLL jeweils mit einer eigenen Kopie der VCL.
Ansonsten ist es kein problem, folgendes zu machen :

Delphi-Quellcode:
  form1 := TForm1.Create(Application);
  try
    form1.showmodal;
  finally
    form1.free;
  end;

Tommy82 10. Apr 2007 17:36

Re: DLL richtig beenden
 
Wenn ich auf das Formular einen Butten setze und den mit
Delphi-Quellcode:
Self.Release oder Self.Free
setze, dann klappt das auch.

mfg

Tommy82

oki 10. Apr 2007 17:51

Re: DLL richtig beenden
 
Hi,

das ist ein Code den ich in einer meiner Kompos zum aufruf eines Einstellungsfensters benutze. Klappt anstandslos:


Delphi-Quellcode:
procedure TBaseSeyControl.PropertyButtonClick(Sender: TObject);
var PropForm : TBaseSeyControlPropForm;
begin
   PropForm := TBaseSeyControlPropForm.Create(self);
   try
     LoadItemsinPropertyForm(PropForm);
     PropForm.ShowModal;
     LoadItemsfromPropertyForm(PropForm);
   finally
     FreeAndNil(PropForm);
   end;
end;
LoadItemsinPropertyForm und LoadItemsfromPropertyForm sind meine Methoden zum Laden und Lesen der Einstellungswerte. Also nicht dran stören.

Gruß oki

Tommy82 10. Apr 2007 18:38

Re: DLL richtig beenden
 
Auch interressant, werde ich mal bei der nächsten Gelegenheit testen.

mfg

Tommy82


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 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