Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit Stringlists (.free) (https://www.delphipraxis.net/107739-problem-mit-stringlists-free.html)

florpp 1. Feb 2008 12:34


Problem mit Stringlists (.free)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich bin zurzeit bei einem Programm dabei ein wenig mit Stringlists zu hantieren.

Delphi-Quellcode:
...

var
  Form1: TForm1;
  sc  : TStringlist;
  tx  : TStringlist;
  ms  : TStringlist;

...

procedure TForm1.FormShow(Sender: TObject);
begin
  sc := TStringlist.Create;
  tx := TStringlist.Create;
  ms := TStringlist.Create;
end;

...

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  sc.free;
  tx.Free;
  ms.Free;
end;
Dabei ist jedoch beim schließen ein Fehler aufgetaucht:

Klaus01 1. Feb 2008 12:42

Re: Problem mit Stringlists (.free)
 
Deine Aufrufe von *.free sollte nicht in die FormCloseQuery
sondern nach onClose.

In FormClosQuery sollte nur die CanClose Variable entsprechend gesetzt werden.

Grüße
Klaus

florpp 1. Feb 2008 12:47

Re: Problem mit Stringlists (.free)
 
:gruebel: In OnClose passiert genau das selbe...

Kroko1999 1. Feb 2008 12:49

Re: Problem mit Stringlists (.free)
 
Erstellen im FormCreate-Ereignis und zerstören im FormDestroy-Ereignis ist imho die beste Lösung!

DeddyH 1. Feb 2008 12:50

Re: Problem mit Stringlists (.free)
 
Bei mir tritt der Fehler nicht auf. Gibst Du die Stringlisten noch an anderer Stelle frei? Falls ja, dann ersetz mal ggf. StringList.Free durch FreeAndNil(StringList)

[edit]
Zitat:

Zitat von Kroko1999
Erstellen im FormCreate-Ereignis und zerstören im FormDestroy-Ereignis ist imho die beste Lösung!

Wenn er schon globale Variablen benutzt, könnte er auch initialization und finalization verwenden, das wäre IMO noch besser. [/edit]

Kroko1999 1. Feb 2008 12:55

Re: Problem mit Stringlists (.free)
 
dann sollte er die globalen in lokale Klassen-Variablen umwandeln!

DeddyH 1. Feb 2008 12:56

Re: Problem mit Stringlists (.free)
 
Sehe ich genauso.

taaktaak 1. Feb 2008 13:00

Re: Problem mit Stringlists (.free)
 
Moin, Moin.

Ich gebe die Instanzen zwar auch immer am Programmende frei; trotzdem die folgende (vielleicht naive) Frage: Welche Auswirkungen hat es denn, wenn man das nicht tut? Bleibt der Speicher dann für Windows reserviert und ist bis zum nächsten Systemstart nicht mehr nutzbar?

Gruß Ralph

Die Muhkuh 1. Feb 2008 13:08

Re: Problem mit Stringlists (.free)
 
Nein, Windows räumt da schon selbst auf.

sirius 1. Feb 2008 13:09

Re: Problem mit Stringlists (.free)
 
Und vor allem räumt zuerst Delphi bzw. der Speichermanager auf.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:01 Uhr.
Seite 1 von 4  1 23     Letzte »    

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