AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Programm schließen im FormCreate

Ein Thema von JSB · begonnen am 2. Jun 2008 · letzter Beitrag vom 2. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2   
JSB

Registriert seit: 4. Okt 2004
Ort: Mönchengladbach
150 Beiträge
 
Delphi 7 Enterprise
 
#1

Programm schließen im FormCreate

  Alt 2. Jun 2008, 09:42
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:
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;
was kann man da machen, bzw. warum funktioniert es eigentlich nicht?
MFG:
JoeSchnapsBurner
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.079 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Programm schließen im FormCreate

  Alt 2. Jun 2008, 09:44
Ü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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Alien426
Alien426

Registriert seit: 21. Dez 2005
146 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Programm schließen im FormCreate

  Alt 2. Jun 2008, 09:47
Du hast das Objekt "Form" noch nicht erzeugt (Form.Create) und willst doch schon eine seiner Routinen (Form.Close) ausführen.
  Mit Zitat antworten Zitat
JSB

Registriert seit: 4. Okt 2004
Ort: Mönchengladbach
150 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Programm schließen im FormCreate

  Alt 2. Jun 2008, 09:49
danke für den Vorschlag!

Naja... ich dachte es wäre mehr sowas wie
  • OnCreate(Autotür aufschließen)
  • merken das man den Führerschein zuhause gelassen hat
  • die tür also zumachen und nicht einsteigen...
MFG:
JoeSchnapsBurner
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Programm schließen im FormCreate

  Alt 2. Jun 2008, 09:52
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.
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
michaelg

Registriert seit: 20. Apr 2008
39 Beiträge
 
#6

Re: Programm schließen im FormCreate

  Alt 2. Jun 2008, 09:58
Functionieren würde Application.Terminate; auch schon im FormCreate.

Ob das guter Stil ist und das Deinen moralischen Ansprüchen genügt, mußt Du selbst wissen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.079 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Programm schließen im FormCreate

  Alt 2. Jun 2008, 10:00
Zitat von hitzi:
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.
Warum diese Krücken? Was ist dagegen einzuwenden vorher zu prüfen, ob man das Programm starten und das Formular anzeigen lassen will oder eben nicht?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Programm schließen im FormCreate

  Alt 2. Jun 2008, 10:11
Zitat von Luckie:
Warum diese Krücken? Was ist dagegen einzuwenden vorher zu prüfen, ob man das Programm starten und das Formular anzeigen lassen will oder eben nicht?
Weil ich zum Beispiel die verwendeten Prüffunktionen nur in der entsprechenden Klasse haben möchte, da sie nur dort gebraucht werden und dann müsste man auch noch im Projektquelltext die Prüfungen einbauen. Würde beides nicht weh tun, aber ich finde es in vielen Fällen so sinnvoller. Um den Timer zu sparen, könnte man auch eine Variable nutzen und die Form später im OnShow schließen. Wenn man allerdings die Form überhaupt nicht braucht (Logging oder ähnliches) und die Form auch nicht aufpoppen soll, dann muss man Luckies Weg nutzen.
Thomas
Besucht doch mal http://www.hitziger.net
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.079 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Programm schließen im FormCreate

  Alt 2. Jun 2008, 10:30
Zitat von michaelg:
Functionieren würde Application.Terminate; auch schon im FormCreate.
Die Vorschläge werden ja immer schlimmer.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
Ort: Oberreichenbach
16.428 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: Programm schließen im FormCreate

  Alt 2. Jun 2008, 10:41
Wir machen es immer so:

PostMessage(self.Handle, WM_CLOSE, 0, 0);
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf