![]() |
Checkbox-Status:in einer .ini-Datei speichern
Hi!
Ich habe 2 Formulare, Formular2 wird aufgerufen, wenn man auf den Button "Einstellungen" auf Formular 1 klickt. Nun kommt standartmäßig eine Beendenabfrage, wenn das Programm beendet werden soll:
Delphi-Quellcode:
In dem Einstellungs-Formular hat man nun eine Checkbox, bei der man auswählen soll ob die Frage angezeigt werden soll oder nicht:
PROCEDURE TForm1.FormCloseQuery(Sender: TObject; VAR CanClose: Boolean);
BEGIN IF Form2.CBBeendenfrage.Checked THEN IF MessageDlg('Soll das Programm wirklich beendet werden?', mtConfirmation, [mbYes, mbNo], 0) = mrNo THEN CanClose := False; END;
Delphi-Quellcode:
Dazu hab ich gleich 2 Fragen: Warum speichert das Programm den Status der Box nicht?
PROCEDURE TForm2.BTspeichernClick(Sender: TObject);
VAR ini: TIniFile; BEGIN ini := TIniFile.Create('C:\ftp4u.ini'); ini.WriteBool('Abfragebeiende', 'Abfrage', Form2.CBBeendenfrage.Checked); ini.Free; END; PROCEDURE TForm2.BTladenClick(Sender: TObject); VAR ini: Tinifile; BEGIN ini := TIniFile.Create('C:\ftp4u.ini'); ini.ReadBool('Abfragebeiende', 'Abfrage', Form2.CBBeendenfrage.Checked); ini.Free; END; Und wie kann ich es einrichten, dass die Einstellungen gleich beim Programmstart geladen werden und der Button "Laden" überflüssig wird? Vielen Dank schonmal; Lamy |
Re: Checkbox-Status:in einer .ini-Datei speichern
Die Methode ReadBool ist eine Funktion!
Ein Formular kennt das Ereignis OnCreate in dem man normalerweise alles initialisiert. |
Re: Checkbox-Status:in einer .ini-Datei speichern
Schreib die Prozedur unter TForm1.OnCreate (im Objekt-Inspektor unter Ereignisse) und schon wird bei jedem Start die Einstellung übernommen.
Readbool ist eine Funktion... Die Eigenschaft der Box muss dem Funktionsergebnis gleichgesetzt werden. |
Re: Checkbox-Status:in einer .ini-Datei speichern
Moin Lamy,
wobei es noch wichtig ist, dass das Zuweisen an die Eigenschaft Checked ein OnClick für diese Kompo auslöst, als würde man die Checkbox anklicken. |
Re: Checkbox-Status:in einer .ini-Datei speichern
?
Könntest du mir das bitte mal übersetzen? :zwinker: Wär nett, denn ich bin noch anfänger aber je mehr ich lerne desto besser :drunken: Danköö! Edit: Eieiei, das geht ja schnell hier.... Danke euch allen! Ich probiers mal aus und melde mich dann wieder :mrgreen: bis gleich ;) |
Re: Checkbox-Status:in einer .ini-Datei speichern
moin,
ini.Read... sind Funktionen, d.h. es müsste wie folgt aussehen:
Delphi-Quellcode:
Der letzte Parameter ist der Standardwert, der verwendet wird falls der Ini-Eintrag nicht gefunden wird.
CBBeendenfrage.Checked := ini.ReadBool('Abfragebeiende', 'Abfrage', false);
Um das ganze ohne Button zu realisieren musst du das Laden in die Create-procedure des Forms schreiben einfach einen Doppelklick aufs Formular machen und dann das folgende eintragen:
Delphi-Quellcode:
procedure TForm1.Form2Create(Sender: TObject);
begin ini := TIniFile.Create('C:\ftp4u.ini'); Form2.CBBeendenfrage.Checked := ini.ReadBool('Abfragebeiende', 'Abfrage', false) ini.Free; END; EDIT: *grummel* schon wieder zu langsam :? |
Re: Checkbox-Status:in einer .ini-Datei speichern
Also, so weit so gut, wie man das ganze bei Programmstart lädt weiß ich jetzt.
Aber: Ich verstehe nicht warum man nicht die Funtkion Readbool benutzen kann, was soll man sonst nehmen? EDIT: Boah, das Board regt mich echt auf (scherz!!!), das geht ja alles schneller als man schreiben kann :mrgreen: :dp: Vielen Dank, ich glaub das wars fürs erste! Schönen Abend noch, Lamy |
Re: Checkbox-Status:in einer .ini-Datei speichern
chris meinte;
Delphi-Quellcode:
die message siehst du bei jedem aufruf von Form1.procedure TForm1.Formcreate(sender :TObject); begin cbx1.state:=cbchecked; end; procedure Tform1.cbx1click(Sender:TObject); begin if Cbx1.checked then Showmessage('ich bin markiert'); end; raik |
Re: Checkbox-Status:in einer .ini-Datei speichern
Irgendwie bin ich zu blöde :?
Delphi-Quellcode:
//--------------------------------------------------------------- | Speichern und laden
PROCEDURE TForm2.FormCreate(Sender: TObject); VAR ini: Tinifile; BEGIN ini := TIniFile.Create('C:\ftp4u.ini'); Form2.CBBeendenfrage.Checked := ini.ReadBool('Abfragebeiende', 'Abfrage', false); ini.Free; END; PROCEDURE TForm2.BTspeichernClick(Sender: TObject); VAR ini: TInifile; BEGIN ini := TIniFile.Create('C:\ftp4u.ini'); ini.WriteBool('Abfragebeiende', 'Abfrage', false); ini.Free; END; |
Re: Checkbox-Status:in einer .ini-Datei speichern
Moin Lamy,
schau Dir noch einmal genau den dritten Parameter bei WriteBool an. Müsste helfen. ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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