AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Checkbox-wert aus INI lesen und form schliessen geht nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Checkbox-wert aus INI lesen und form schliessen geht nicht

Offene Frage von "lore"
Ein Thema von lore · begonnen am 2. Jun 2008 · letzter Beitrag vom 4. Jun 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#11

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

  Alt 3. Jun 2008, 09:12
Lass das erneuten Auslesen im FormCreate der Mainform mal weg, das ist eh doppelt gemoppelt, da bereits in der dpr vorhanden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#12

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

  Alt 3. Jun 2008, 09:29
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.
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

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

  Alt 3. Jun 2008, 10:33
Hi,

noch eine kleine Studie im Anhang.

Grüße vom marabu
Angehängte Dateien
Dateityp: zip accept_121.zip (3,5 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
lore

Registriert seit: 2. Jun 2008
Ort: Norderstedt
29 Beiträge
 
#14

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

  Alt 4. Jun 2008, 08:51
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...

Danke,
Karsten


Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.
(seneca)
Karsten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 Uhr.
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