![]() |
[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:
dann klick ich auf speichern/save.
procedure TForm2.CheckBox1Click(Sender: TObject);
begin If Checkbox1.Checked then Form1.Edit2.PasswordChar := '*' else Form1.Edit2.PasswordChar := #0; end;
Delphi-Quellcode:
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. :?
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;
Delphi-Quellcode:
hoffe das jemand helfen kann, thx im vorraus.
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; mfg andy |
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:
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.
Ini := TIniFile.Create('D:\Save.ini');
try // ... finally Ini.Free; // oder: FreeAndNil(Ini); end; Grüße Edit @ringli (Beitrag drunter): Ach darauf wollte er hinaus, ich dachte es geht um den prinzipiellen Umgang mit der Ini. |
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. |
Re: [CheckBox] True / False aus .ini lesen und verwenden.
also des mit dem try wusst ich net, hab des von ner seite (
![]() 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:
in Form1 bei OnActivate einbauen.
Form2.CheckBox1.Checked:=Ini.ReadBool('Other',
'CensoredPW',True); ich machs ma und sag/edit bescheid obs geht. EDIT: hab jetzt auch die tries nach
Delphi-Quellcode:
gesetzt. dann
Ini:=TIniFile.Create('D:\Save.ini');
Delphi-Quellcode:
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
Form2.CheckBox1.Checked:=Ini.ReadBool('Other',
'CensoredPW',True); 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