Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Checkbox-wert aus INI lesen und form schliessen geht nicht (https://www.delphipraxis.net/114900-checkbox-wert-aus-ini-lesen-und-form-schliessen-geht-nicht.html)

DeddyH 3. Jun 2008 09:12

Re: Checkbox-wert aus INI lesen und form schliessen geht nic
 
Lass das erneuten Auslesen im FormCreate der Mainform mal weg, das ist eh doppelt gemoppelt, da bereits in der dpr vorhanden.

tomsel 3. Jun 2008 09:29

Re: Checkbox-wert aus INI lesen und form schliessen geht nic
 
Ich würde das Problem in etwa so lösen:

Delphi-Quellcode:
program intro2;

uses
  Forms,
  main in 'main.pas' {frmMain},
  frmIntro in 'frmIntro.pas' {frmMeldung},
  sysutils,
  StdCtrls,
  inifiles;

{$R *.res} 
var ini: TiniFile;
    form: TfrmMeldung;
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  try
   ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'config.ini');
   if ini.readbool('Intro','State',false) then
   begin
     form := TfrmMeldung.Create(nil);
     if form.ShowModal = mrOK then // modalresult in FrmMeldung entsprechend setzen
     begin
       // ini schreiben
     end else
     begin
       Application.Terminate;
     end;
     form.Free;
   end;
  finally
   ini.free
  end;

  if not Application.Terminated then
    Application.CreateForm(TfrmMain, frmMain);

  Application.Run;
end.
Das halte ich für sauberer und übersichtlicher als das herumeiern mit FormCreate. Hat ja auch ein Wenig mit Trennung von Anwendung und Oberfläche zu tun.

marabu 3. Jun 2008 10:33

Re: Checkbox-wert aus INI lesen und form schliessen geht nic
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

noch eine kleine Studie im Anhang.

Grüße vom marabu

lore 4. Jun 2008 08:51

Re: Checkbox-wert aus INI lesen und form schliessen geht nic
 
Hi Leute,

vielen Dank schonmal für die echt guten Tipps! Ich werde mich jetzt die nächsten Tage aber mal eingehender damit beschäftigen müssen und weiß jetzt in etwa wo meine Lücken liegen. Danke auch an Marabu für die Studie! Ich hab's aufgemacht und gar nicht verstanden...scheint aber dafür auch eine echt gute Lösung zu sein ;-)
Ich würde später darauf gerne nochmal zurück kommen, da du CSIDL_APPDATA verwendetst und ich nicht weiß, wo man was unter Vista speichern sollte. In %programfiles% mit Sicherheit ja nun auch nicht mehr :(

Was mich jetzt erstmal beschäftigt ist die Aussage von DeddyH:
Zitat:

Lass das erneuten Auslesen im FormCreate der Mainform mal weg, das ist eh doppelt gemoppelt, da bereits in der dpr vorhanden
Das Auslesen von dem hier ==> ??
Zitat:

UNIT Main
..~

procedure TfrmMain.FormCreate(Sender: TObject);
var ini : TiniFile;
begin
try
ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'config.ini');
// ini.Writebool('Intro','State',frmMeldung.cb1.Check ed); //kann nicht gehen, weil frmMeldung noch nicht existiert
if ini.readbool('Intro','State',false) then frmMeldung.show; //erzeugt EAccessViolation
finally
ini.Free;
end;
end;
Auf jeden Fall kann ich wohl sagen, dass ich schon jetzt eine Menge gelernt habe :!: und eigentlich dachte ich, es geht einfacher mit so einer Abfrage vorm Programmstart... :pale:

Danke,
Karsten


Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.
(seneca)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:00 Uhr.
Seite 2 von 2     12   

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