Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Speichern in INI geht net (https://www.delphipraxis.net/105439-speichern-ini-geht-net.html)

SaFu 21. Dez 2007 18:53


Speichern in INI geht net
 
Hi habe mal wieder ein problem mit meiner Inidatei

das Speichern meines True'S geht net mehr warum
kann mir einer vielleicht helfen???
Delphi-Quellcode:
procedure TForm5.CheckBox1Click(Sender: TObject);
begin
 INIDocPfad:= Form1.Serverpfad + 'Einstellungen\DocSettings.ini';
  if CheckBox1.Checked = True then
  begin
   Panel3.Color:= CLLime;
    with TMemIniFile.Create(INIDocPfad) do
     try
      WriteBool(DokumentEinstellung,Anzeigen1,True); // Wert in die ini datei schreiben
      WriteString(DokumentEinstellung, PanelFarbeEinAus, (ColorToString(Panel3.Color))); // farbe Speichern
      WriteString(DokumentEinstellung,PanelText, ('Dokumentenanzeige Ein'));
    finally
     Free
    end;

If CheckBox1.Checked = False then
 Begin
  Panel3.Color:= CLRed;
    with TMemIniFile.Create(INIDocPfad) do
    try
     WriteBool(DokumentEinstellung,Anzeigen1,False); // Wert in die ini datei schreiben
     WriteString(DokumentEinstellung, PanelFarbeEinAus, (ColorToString(Panel3.Color))); // farbe Speichern
     WriteString(DokumentEinstellung,PanelText, ('Dokumentenanzeige AUS'));
     UpdateFile;
    finally
   Free;
   Button3.Click; //Timer stoppen
  end;
 End;
end;
end;
Gruss Sascha

taaktaak 21. Dez 2007 18:59

Re: Speichern in INI geht net
 
Moin, Moin Sascha.

Ich sehe das "UpdateFile" nur in einem Zweig (wenn Checked=false), es muss dann auch im True-Zweig enthalten sein.

Übrigens: Warum erfolgen Create und Free des MemINI's nicht im FormCreate und im FormClose? Ist das nicht einfacher??

Gruß Ralph

DeddyH 21. Dez 2007 19:02

Re: Speichern in INI geht net
 
Versuch es mal so:
Delphi-Quellcode:
procedure TForm5.CheckBox1Click(Sender: TObject);
const einaus: array[Boolean] of string = ('AUS','Ein');
      Farben: array[Boolean] of TColor = (clRed,clLime);
begin
  INIDocPfad:= Form1.Serverpfad + 'Einstellungen\DocSettings.ini';
  Panel3.Color:= Farben[CheckBox1.Checked];
  with TMemIniFile.Create(INIDocPfad) do
    try        
      WriteBool(DokumentEinstellung,Anzeigen1,CheckBox1.Checked); // Wert in die ini datei schreiben
      WriteString(DokumentEinstellung, PanelFarbeEinAus, (ColorToString(Panel3.Color))); // farbe Speichern
      WriteString(DokumentEinstellung,PanelText, Format('Dokumentenanzeige %s',[einaus[CheckBox1.Checked]]));
      UpdateFile;
    finally
      Free;
    end;
  //das gehört eigentlich hierhin
  if not CheckBox1.Checked then //hatte diese Zeile vergessen
    Button3.Click; //Timer stoppen
end;

SaFu 21. Dez 2007 19:08

Re: Speichern in INI geht net
 
Hey der code is richtig gut und Kurz da wird man ja neidisch :wink: danke

taaktaak 21. Dez 2007 19:11

Re: Speichern in INI geht net
 
Respekt "alter Mann aus Thüringen" - aber wenn es in der umständlichen Version nicht funktioniert hat, dann lag es doch wohl am fehlenden UpdateFile :wink:
Gruß Ralph

PS : Wie schaut's jetzt in Thüringen aus? Habt ihr Schnee???

Progman 21. Dez 2007 19:13

Re: Speichern in INI geht net
 
Nein, in Thüringen liegt kein Schnee :? :lol:

SaFu 21. Dez 2007 19:14

Re: Speichern in INI geht net
 
ja das updatefile hat auch gefehlt hatte dann aber Trotzdem nicht gefunzt hatte dann immer nur ein True.


Zitat:

Zitat von taaktaak
Moin, Moin Sascha.

Übrigens: Warum erfolgen Create und Free des MemINI's nicht im FormCreate und im FormClose? Ist das nicht einfacher??

Gruß Ralph

Weil ich denke das es sonst fehler geben könnte wenn ich es nicht frühgenug schließe

DeddyH 21. Dez 2007 19:16

Re: Speichern in INI geht net
 
Zitat:

Zitat von taaktaak
aber wenn es in der umständlichen Version nicht funktioniert hat, dann lag es doch wohl am fehlenden UpdateFile :wink:

Das hatte ich auch gesehen ;) . Und wie Progman schon sagt, hier liegt kein Schnee, dafür aber jede Menge Raureif.

@Sascha: Ich hasse es, wenn man dasselbe 2 mal schreibt und versuche immer, so etwas zu vermeiden, auch bei einer Fallunterscheidung. Da bietet sich ein konstantes Array eben an.

SaFu 21. Dez 2007 19:19

Re: Speichern in INI geht net
 
Zitat:

Zitat von DeddyH

@Sascha: Ich hasse es, wenn man dasselbe 2 mal schreibt und versuche immer, so etwas zu vermeiden, auch bei einer Fallunterscheidung. Da bietet sich ein konstantes Array eben an.

Wie meinst du das mit dem 2 Schreiben??? hatte ich die Frage schonmal gestellt :gruebel:

taaktaak 21. Dez 2007 19:20

Re: Speichern in INI geht net
 
Jooo, Sascha, jetzt sehe ich es: Das END von "if CheckBox1.Checked = True then begin" war ganz am Prozedurende und nicht am Blockende - konnte also nicht funktionieren, da die Abfrage "if..Checked=false" nie erreicht wurde.
Gruß Ralph


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr.
Seite 1 von 2  1 2      

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