![]() |
Programm schließen im FormCreate
Hallo,
ich habe die interessante Erfahrung machen müssen, dass ich beim OnCreate eines Formulars, das Formular nicht schließen kann. Der Code wird einfach ignoriert...
Delphi-Quellcode:
was kann man da machen, bzw. warum funktioniert es eigentlich nicht?
procedure TForm1.FormCreate(Sender: TObject);
var cfg : TIniFile; begin //Datenbank-Konfiguration laden if FileExists(pfad + 'admincfg.ini') then begin cfg := TIniFile.Create(pfad + 'admincfg.ini'); AdminDB.Database := cfg.ReadString('DATABASE','PATH','ERROR'); AdminDB.Username := cfg.ReadString('DATABASE','USER','ERROR'); AdminDB.Password := cfg.ReadString('DATABASE','PASSWORD','ERROR'); end else begin MessageDlg('Fehler! Konfigurationsdatei "admingui.ini" nicht gefunden!', mtError, [mbOK], 0); Close; //macht der net end; end; |
Re: Programm schließen im FormCreate
Überleg mal, was du da versuchst zu tun. Du versuchst in das Auto einzusteigen und gleichzeitig wieder auszusteigen. Warum macvhst du die Überprüfung nicht bevor du das Formular überhaupt erzeugst in der Projektdatei?
|
Re: Programm schließen im FormCreate
Du hast das Objekt "Form" noch nicht erzeugt (Form.Create) und willst doch schon eine seiner Routinen (Form.Close) ausführen.
|
Re: Programm schließen im FormCreate
danke für den Vorschlag!
Naja... ich dachte es wäre mehr sowas wie
|
Re: Programm schließen im FormCreate
Wenn du im OnCreate merkst, dass das Programm geschlossen werden muss, dann starte dort doch einen kurzen Timer der dann nichts weiter macht, als das Programm zu schließen.
|
Re: Programm schließen im FormCreate
Functionieren würde
Delphi-Quellcode:
auch schon im FormCreate.
Application.Terminate;
Ob das guter Stil ist und das Deinen moralischen Ansprüchen genügt, mußt Du selbst wissen. :wink: |
Re: Programm schließen im FormCreate
Zitat:
|
Re: Programm schließen im FormCreate
Zitat:
|
Re: Programm schließen im FormCreate
Zitat:
|
Re: Programm schließen im FormCreate
Wir machen es immer so:
Delphi-Quellcode:
PostMessage(self.Handle, WM_CLOSE, 0, 0);
|
Re: Programm schließen im FormCreate
Hi,
Wenn keine vorherige Prüfung stattfinden soll, wie Luckie das vorgeschlagen hat, würde ich mit PostMessage arbeiten. MFG Lorenz [Edit]Bernhard Geyer war schneller ... :stupid: ... kein roter Kasten im Firefox?[/Edit] |
Re: Programm schließen im FormCreate
Zitat:
|
Re: Programm schließen im FormCreate
Warum nicht folgendes:
Delphi-Quellcode:
?
initialization
Application.ShowMainForm := IfIniExitsShowTheForm; Oder direkt im Projektcode das nötige FileExist einbauen Edit: Arg ich häng grad voll daneben sry^^, das würde ja nur ein hide zur Folge haben... Hier:
Delphi-Quellcode:
...
uses SysUtils, ... if FileExists(pfad + 'admincfg.ini') then Application.CreateForm(TForm1, Form1); ... |
Re: Programm schließen im FormCreate
ich habs erstmal im Projektquelltext gemacht...
Nachteil ist das ich (eigentlich) unnötigerweise die Units IniFiles, SysUtils und Dialogs hinzufügen musste Die weiteren Vorschläge werde ich testen um eine Optimale Lösung für mich finden. Danke an alle. :thumb: |
Re: Programm schließen im FormCreate
Zitat:
|
Re: Programm schließen im FormCreate
ja...
schon... hab's aber dann an 2 verschiedenen Stellen... |
Re: Programm schließen im FormCreate
Zitat:
|
Re: Programm schließen im FormCreate
und die Fehlermeldung ?
Delphi-Quellcode:
wenn ich nur den Pfad prüfe und die Ini im Show/Create auslese spar ich mir nur die IniFiles im Projekt.
uses
... SysUtils, Dialogs, ... else Messagedlg('Fehler! Konfigurationsdatei "admincfg.ini" nicht gefunden!', mtError, [mbOK], 0); ...ist aber weiterhin nicht schlimm. Beide Lösungen sind ok |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 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