Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [CheckBox] True / False aus .ini lesen und verwenden. (https://www.delphipraxis.net/106998-%5Bcheckbox%5D-true-false-aus-ini-lesen-und-verwenden.html)

xShadowBoZz 20. Jan 2008 15:27


[CheckBox] True / False aus .ini lesen und verwenden.
 
so ich bins ma wieder :dancer:

hab hier ma ne frage und zwar:
also bei einer checkbox ist ja checked=True glaub also zahl(boolean, in .ini file) gleich '0'.
ich hab folgendes gemacht:

Form1 is hauptfenster, da gibts ein 'Settings' button, da öffnet sich dann Form2. Da klick ich dann auf die checkbox.
so jetzt klick ich auf speichern, des wird dann in der .ini file gespeichert, aba wenn ich das prog wieder öffne is das nicht gespeichert bzw. es wird net so verwendet das die Checkbox angetickt ist(=True).

vielt. erklärt des alles ein bisschen besser:

also erstmal die checkbox:

Delphi-Quellcode:
procedure TForm2.CheckBox1Click(Sender: TObject);
begin
If Checkbox1.Checked then
  Form1.Edit2.PasswordChar := '*'
    else
      Form1.Edit2.PasswordChar := #0;
end;
dann klick ich auf speichern/save.

Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
var
  Ini: TIniFile;
begin
  try
    Ini:=TIniFile.Create('D:\Save.ini');
    Ini.WriteString('KnownAccount','KnownID',edit1.Text);
    Ini.WriteString('KnownAccount','KnownPW',edit2.Text);
    Ini.WriteString('KnownAccount','KnownPIN',edit3.Text);
    Ini.WriteString('CrackingAccount','CrackingID',edit4.Text);
    Ini.WriteString('CrackingAccount','CrackingPW',edit5.Text);
    Ini.WriteString('CrackingAccount','CrackingPINstart',edit6.Text);
    Ini.WriteString('CrackingAccount','CrackingPINstop',edit7.Text);
    Ini.WriteBool('Other','CensoredPW',CheckBox1.Checked); // ist ja logisch, der liest dann ob True
    Ini.WriteBool('Other','CensoredPW',CheckBox2.Checked); // oder False aus Checked
  finally
    Ini.Free;
end;
end;
dann schlies ich alles und wenn ich dann gucke dann sollte des ja angetickt sein aba ich weis net genau wie er das lesen soll, habs jetzt so gemacht, aba das funktioniert net. :?

Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
var Ini: TIniFile;
begin
  try
    Ini:=TIniFile.Create('D:\Save.ini');
    Edit1.Text:=Ini.ReadString('KnownAccount',
                      'KnownID','kein Wert');
    Edit2.Text:=Ini.ReadString('KnownAccount',
                      'KnownPW','kein Wert');
    Edit3.Text:=Ini.ReadString('KnownAccount',
                      'KnownPIN','kein Wert');
    Edit4.Text:=Ini.ReadString('CrackingAccount',
                      'CrackingID','kein Wert');
    Edit5.Text:=Ini.ReadString('CrackingAccount',
                      'CrackingPW','kein Wert');
    Edit6.Text:=Ini.ReadString('CrackingAccount',
                      'CrackingPINstart','kein Wert');
    Edit7.Text:=Ini.ReadString('CrackingAccount',
                      'CrackingPINstop','kein Wert');
    Label23.Caption:=Ini.ReadString('GGLess Info',
                      'GGLess Path','kein Wert');
    Label25.Caption:=Ini.ReadString('GGLess Info',
                      'GGLess Name','kein Wert');
    CheckBox1.Checked:=Ini.ReadBool('Other',
                      'CensoredPW',False); // hier weis ich net was ich angeben soll damit ers automatisch liest.
  finally
    Ini.Free;
end;
end;
hoffe das jemand helfen kann, thx im vorraus.

mfg
andy

Matze 20. Jan 2008 15:35

Re: [CheckBox] True / False aus .ini lesen und verwenden.
 
Hallo,

ich sehe keinen Fehler, bis auf den, dass "try" nach "Ini:=TIniFile.Create('D:\Save.ini');" stehen sollte:

Delphi-Quellcode:
Ini := TIniFile.Create('D:\Save.ini');
try
  // ...
finally
  Ini.Free; // oder: FreeAndNil(Ini);
end;
Der 3. Parameter von ReadBool, ReadInteger & Co. gibt an, welcher Wert zurückgegeben soll, wenn in der Ini kein Eintrag vorhanden ist. Es ist also eine Art Standardwert bzw. eine Vorbelegung.

Grüße


Edit @ringli (Beitrag drunter): Ach darauf wollte er hinaus, ich dachte es geht um den prinzipiellen Umgang mit der Ini.

ringli 20. Jan 2008 15:38

Re: [CheckBox] True / False aus .ini lesen und verwenden.
 
Also beim Schreiben überschreibst du durch Zeile 15 die Werte die in Zeile 14 bereits geschrieben wurden.

Beim Lesen fehlt die Zeile zum Auslesen für die zweite Checkbox.

xShadowBoZz 20. Jan 2008 15:59

Re: [CheckBox] True / False aus .ini lesen und verwenden.
 
also des mit dem try wusst ich net, hab des von ner seite (Link)
da steht es nach try.

ok bin mir jetzt net 100% sicha aba ich glaubs ich habs,
es ist bei mir so das wenn ich auf die checkbox clicke dann guckt es true oder false und censiert bei die schrift im edit feld in einer anderen form. beim wieder öffnen hab ich ein event einegestellt das er des lädt wenn Form2 angezeigt wird, des passiert ja nur wenn ich auf settings klicke also muss ich das auch oder auf jedenfall in Form1 einbauen.

also
Delphi-Quellcode:
    Form2.CheckBox1.Checked:=Ini.ReadBool('Other',
                      'CensoredPW',True);
in Form1 bei OnActivate einbauen.
ich machs ma und sag/edit bescheid obs geht.

EDIT:
hab jetzt auch die tries nach
Delphi-Quellcode:
    Ini:=TIniFile.Create('D:\Save.ini');
gesetzt. dann
Delphi-Quellcode:
    Form2.CheckBox1.Checked:=Ini.ReadBool('Other',
                      'CensoredPW',True);
aus "procedure TForm2.FormShow(Sender: TObject);" gelöscht und in "procedure TForm1.FormActivate(Sender: TObject);" eingefügt.paar mal probiert und es klappt :o :D
trotzdem dickes thx an euch für schnelle antwort.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr.

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