![]() |
INI Dateien mit Integer verwenden
Hallo!
Was ist da Falsch??
Delphi-Quellcode:
Wie könnte man das anders machen?? :gruebel:
procedure TForm1.FormShow(Sender: TObject);
var ini: TIniFile; a: integer; begin try ini := TiniFile.Create(ExtractFilePath(ParamStr(0)) +'gaugghtmlkonfig.ini'); begin //Ab hier ist es falsch laut D3 a:= ini.ReadInteger('Allgemein', 'Erststart', 0); //Dies seien inkompatible Typen if a='1' then OKRightDlg7.ShowModal; end; mfg gauggi [edit=Jelly]Titel auf Wunsch von Gauggi geändert Mfg, Jelly[/edit] |
Re: Form über Ini anzeigen geht nicht
Hmm, mir wäre neu, dass man in Delphi mitten im Code einen neuen Block (begin...end) eröffnen kann...
|
Re: Form über Ini anzeigen geht nicht
Zitat:
|
Re: Form über Ini anzeigen geht nicht
wenn a ein integer ist, kannst du es nicht mit dem string-literal '1' vergleichen. Wir sind ja hier schließlich nicht bei PHP! :warn:
EDIT: Ja, OreghonGhost, das try ist da wohl ein wenig unglücklich geworden... |
Re: Form über Ini anzeigen geht nicht
Zitat:
Zum Schluss wird die INI wieder freigegeben: das habe ich vom obrigen Code weggelassen:
Delphi-Quellcode:
mfg gauggi
finally
ini.Free end; end; |
Re: Form über Ini anzeigen geht nicht
So:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var ini: TIniFile; a: integer; begin try ini := TiniFile.Create(ExtractFilePath(ParamStr(0))+'gaugghtmlkonfig.ini'); a:= ini.ReadInteger('Allgemein', 'Erststart', 0); if a=1 then OKRightDlg7.ShowModal; finally ini.Free; end; end; |
Re: Form über Ini anzeigen geht nicht
Zitat:
Danke an alle :thumb: |
Re: Form über Ini anzeigen geht nicht
Besser so:
Delphi-Quellcode:
Wenn der Constructor von TIniFile eine Exception auslöst, wird die (lokale) Variable ini nicht initialisiert. Steht der Aufruf des Constructors im Innern der TRY-Anweisung, wird auf jeden Fall der FINALLY-Abschnitt durchlaufen, in dem der Aufruf der Methode Free dann wahrscheinlich zum nächsten Fehler führen wird. Mit obigem Code wird das vermieden.
ini := TiniFile.Create(...);
try // INI verarbeiten finally ini.Free; end; Gruß Hawkeye |
Re: Form über Ini anzeigen geht nicht
Zitat:
/EDIT: Ok, nicht mal auf das kann ich mich verlassen, wie Hawkeye219 beweist. Ich hatte es damals mit D4 ausprobiert, aber das sollte keinen Unterschied machen. Nun gut, ich nehme alles zurück und behaupte das Gegenteil... |
Re: Form über Ini anzeigen geht nicht
Hoffentlich wird das jetzt nicht OT...
Zitat:
Delphi-Quellcode:
Die Messagebox zeigt den Wert 4711 an, nicht den Wert 0. Getestet mit Delphi 6 und BDS 2006.
type
TDummy = class (TObject) public constructor Create; end; constructor TDummy.Create; begin inherited; raise Exception.Create ('oops!'); end; procedure TForm1.Button1Click(Sender: TObject); var Dummy : TDummy; begin Dummy := Pointer(4711); try Dummy := TDummy.Create; except ShowMessage (Format('%d', [Cardinal(Dummy)])); end; end; Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 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