Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Ini auslesen und Checkbox auf True setzen? (https://www.delphipraxis.net/145527-ini-auslesen-und-checkbox-auf-true-setzen.html)

Blackheart 3. Jan 2010 19:45

Re: Ini auslesen und Checkbox auf True setzen?
 
Hast du denn ProxyStatus der Checkbox zugewiesen.

AlexII 3. Jan 2010 19:48

Re: Ini auslesen und Checkbox auf True setzen?
 
Zitat:

Zitat von Blackheart
Hast du denn ProxyStatus der Checkbox zugewiesen.

Ja sicher :pale:

AlexII 3. Jan 2010 19:52

Re: Ini auslesen und Checkbox auf True setzen?
 
Ich sehe gerade bei mir ist der Code falsch:

Delphi-Quellcode:
if FileExists(UserAppDataDir + AppDataRootDir + AppDataProjectDir + '\Config-t.ini') then
begin
Ini := TIniFile.Create(UserAppDataDir + AppDataRootDir + AppDataProjectDir + '\Config-t.ini');
  try
    ProxyStatus := Ini.ReadBool('Default', 'ProxyStatus', True);
  finally
    Ini.Free;
end;
Hier wird die die ini erstellt nur dann wenn sie schon vorhanden ist, wenn sie nicht vorhanden ist - geschieht nix. Hm.... :gruebel:

Muss das vllt so heißen?? :gruebel:

Delphi-Quellcode:
if FileExists(UserAppDataDir + AppDataRootDir + AppDataProjectDir + '\Config-t.ini') then
begin
  try
    ProxyStatus := Ini.ReadBool('Default', 'ProxyStatus', True);
  finally
    Ini.Free;
end else Ini := TIniFile.Create(UserAppDataDir + AppDataRootDir + AppDataProjectDir + '\Config-t.ini');

Matze 3. Jan 2010 19:54

Re: Ini auslesen und Checkbox auf True setzen?
 
Es reicht das zu schreiben:

Delphi-Quellcode:
Ini := TIniFile.Create(UserAppDataDir + AppDataRootDir + AppDataProjectDir + '\Config-t.ini');
Wenn sie nicht existiert, wird sie angelegt, sonst geöffnet.
Dein Code funktioniert so auch nicht, da du die Ini nirgendwo öffnest, wenn sie bereits existiert.

Und unterlasse bitte die Doppelposts.

Jens Hartmann 3. Jan 2010 19:55

Re: Ini auslesen und Checkbox auf True setzen?
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  INi : TIniFile;
  ProxyStatus : Boolean;
begin
if FileExists('.\Config-t.ini') then
begin
Ini := TIniFile.Create('.\Config-t.ini');
  try
    ProxyStatus := Ini.ReadBool('Default', 'ProxyStatus', True);
  finally
    Ini.Free;
    CheckBox1.Checked := ProxyStatus;
end;
Also, so funktinoert es bei mir wunderbar.

Und so wäre ja auch möglich...

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  INi : TIniFile;
begin
if FileExists('.\Config-t.ini') then //Abbruch, wenn INI nicht existiert. Hierbei muss die CheckBox im OI gesetzt sein
begin
  Ini := TIniFile.Create('.\Config-t.ini');
    try
      CheckBox1.Checked := Ini.ReadBool('Default', 'ProxyStatus', True);
    finally
      Ini.Free;
end;
Gruß Jens

AlexII 3. Jan 2010 19:57

Re: Ini auslesen und Checkbox auf True setzen?
 
Zitat:

Zitat von Matze
Es reicht das zu schreiben:

Delphi-Quellcode:
Ini := TIniFile.Create(UserAppDataDir + AppDataRootDir + AppDataProjectDir + '\Config-t.ini');
Wenn sie nicht existiert, wird sie angelegt, sonst geöffnet.
Dein Code funktioniert so auch nicht, da du die Ini nirgendwo öffnest, wenn sie bereits existiert.

Ja und wo schreibe ich das rein? Jetzt bin ich ganz durcheinander :roteyes:

Matze 3. Jan 2010 19:59

Re: Ini auslesen und Checkbox auf True setzen?
 
Habe ich einen Denkfehler oder wieso macht ihr das so kompliziert?

Reicht nicht das hier, ganz simpel:

Delphi-Quellcode:
Ini := TIniFile.Create(UserAppDataDir + AppDataRootDir + AppDataProjectDir + '\Config-t.ini');
try
  ProxyStatus := Ini.ReadBool('Default', 'ProxyStatus', True);
finally
  Ini.Free;
end;
Wenn die Ini-Datei nicht existiert, wird eine leere Ini angelegt (eine leere Ini-Datei wird meines Wissens auch nicht auf der Festplatte gespeichert). Dann ist kein Eintrag vorhanden und "ProxyStatus" erhält den Standardwert "true". Existiert die Ini-Datei, wird sie geöffnet. Dann erhält "ProxyStatus" den Wert, der in der Ini steht, falls der entsprechende Eintrag vorhanden ist. Andernfalls auch den Standardwert "true".

AlexII 3. Jan 2010 20:05

Re: Ini auslesen und Checkbox auf True setzen?
 
Wow.... das ist es :thumb: Thx... jetzt klappt das. :bouncing4:

Sir Rufo 4. Jan 2010 00:14

Re: Ini auslesen und Checkbox auf True setzen?
 
Zitat:

Zitat von Matze
Wenn die Ini-Datei nicht existiert, wird eine leere Ini angelegt (eine leere Ini-Datei wird meines Wissens auch nicht auf der Festplatte gespeichert). Dann ist kein Eintrag vorhanden und "ProxyStatus" erhält den Standardwert "true". Existiert die Ini-Datei, wird sie geöffnet. Dann erhält "ProxyStatus" den Wert, der in der Ini steht, falls der entsprechende Eintrag vorhanden ist. Andernfalls auch den Standardwert "true".

äh .... mit
Delphi-Quellcode:
TIniFile.Create( 'meine.ini' );
wird keine ini-Datei erzeugt, sondern nur eine Instanz der Klasse TIniFile (auch wenn es sich so lesen mag).

Existiert die Datei nicht, wird bei jedem Lesen halt einfach der Default-Wert zurückgegeben.

Erst wenn ich in die instanz etwas schreibe
Delphi-Quellcode:
WriteBool( 'Section', 'Ident', 'Value' );
und genau erst dann wird die Datei auch angelegt.

Wäre ja auch blöd ... ich will nur was lesen und produziere aber evtl. einen Schreibzugriff,
und dass dann mit niedrigen Rechten in einem geschützten Verzeichnis ...
das rummst dann wie an silvester :mrgreen:

Matze 4. Jan 2010 07:27

Re: Ini auslesen und Checkbox auf True setzen?
 
Zitat:

Zitat von Sir Rufo
äh .... mit
Delphi-Quellcode:
TIniFile.Create( 'meine.ini' );
wird keine ini-Datei erzeugt, sondern nur eine Instanz der Klasse TIniFile (auch wenn es sich so lesen mag).

Ah korrekt. Da habe ich etwas durcheinander gebracht. Gespeichert wird erst mit den Write-Funktionen, vollkommen richtig. :wall:


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

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