Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Frage zum INI's benutzen (https://www.delphipraxis.net/29018-frage-zum-inis-benutzen.html)

Der-DeeJay 2. Sep 2004 19:53


Frage zum INI's benutzen
 
Hallo allerseits ;)

Ich hab da ma ne Frage.
Muss ich die INI in der gleichen Procedure weider freigben in der ich sie benutzt habe?
z.b.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
    INI:=TIniFile.Create('C:\data.ini');
    INI.WriteString('global','Date',Edit1.Text);
    INI.WriteString('global','Time',Edit2.Text);
end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   INI.Free;
end;
Geht das und wenn ja hat das irgend welche nachteile ???

mfg
DeeJay

Igotcha 2. Sep 2004 19:55

Re: Frage zum INI's benutzen
 
Nö, mußt Du nicht.

Du kannst ja, wenn Du viel mit der INI im Programm arbeitest, sie z.B. im Form.OnCreate öffnen und beim beenden, im Form.OnClose wieder schliessen. Errm also genauso, wie Du es vorgeschlagen hast :zwinker:

Gruß Igotcha

Sprint 2. Sep 2004 20:01

Re: Frage zum INI's benutzen
 
Wenn du eine Klasse/Objekt global benutzt, dann würde ich vorher mit Assigned prüfen ob die Klasse noch vorhanden ist.
Außerdem würde ich bei globalen Klassen immer ein FreeAndNil ausführen.
Zum Beispiel so...
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin

  if Assigned(INI) then
  begin
    INI.UpdateFile;
    FreeAndNil(INI);
  end;

end;

Der-DeeJay 2. Sep 2004 20:21

Re: Frage zum INI's benutzen
 
Joo Danke für dei wirklich sehr sehr schnelle antwort ;)

mfg
DeeJay

Phantom1 2. Sep 2004 20:51

Re: Frage zum INI's benutzen
 
Hat zwar nicht soviel mit der eigentlichen frage zu tun, aber besser wäre es die Objekte im OnDestroy anstatt OnClose Event freizugeben, nur so wird sichergestellt das der speicher auch bei einem fehler/absturz freigegeben wird.

Sprint 2. Sep 2004 21:01

Re: Frage zum INI's benutzen
 
Zitat:

Zitat von Phantom1
nur so wird sichergestellt das der speicher auch bei einem fehler/absturz freigegeben wird.

Wenn man ganz sicher gehen will, dann setzt man das bei finalization hin.


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