Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Checkbox-Status:in einer .ini-Datei speichern (https://www.delphipraxis.net/20117-checkbox-status-einer-ini-datei-speichern.html)

Lamy 13. Apr 2004 22:21


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:
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;
In dem Einstellungs-Formular hat man nun eine Checkbox, bei der man auswählen soll ob die Frage angezeigt werden soll oder nicht:

Delphi-Quellcode:
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;
Dazu hab ich gleich 2 Fragen: Warum speichert das Programm den Status der Box nicht?
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

Luckie 13. Apr 2004 22:25

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.

axelf98 13. Apr 2004 22:27

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.

Christian Seehase 13. Apr 2004 22:28

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.

Lamy 13. Apr 2004 22:28

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 ;)

xineohp 13. Apr 2004 22:33

Re: Checkbox-Status:in einer .ini-Datei speichern
 
moin,

ini.Read... sind Funktionen, d.h. es müsste wie folgt aussehen:
Delphi-Quellcode:
CBBeendenfrage.Checked := ini.ReadBool('Abfragebeiende', 'Abfrage', false);
Der letzte Parameter ist der Standardwert, der verwendet wird falls der Ini-Eintrag nicht gefunden wird.


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 :?

Lamy 13. Apr 2004 22:34

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

kiar 13. Apr 2004 22:37

Re: Checkbox-Status:in einer .ini-Datei speichern
 
chris meinte;
Delphi-Quellcode:

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;
die message siehst du bei jedem aufruf von Form1.

raik

Lamy 13. Apr 2004 23:11

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;

Christian Seehase 13. Apr 2004 23:14

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 00:00 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