![]() |
Form1 bei OnCreate Ereignis beenden
Hallo!
Ich erzeuge beim OnFormCreate Ereignis u.a. eine Datei. Wenn diese nicht erstellt werden kann, möchte ich das Programm beenden. Leider Funktioniert aber der Aufruf Form1.Close nicht. Das Ganze sieht z.Z. so aus:
Delphi-Quellcode:
Kann mir jemand sagen warum das nicht funzt?
if FileExists('FileName') then
if not DeleteFile('FileName') then begin Application.MessageBox('Geht nicht', 'Meldung', 48) ; form1.Close ; //funzt nicht end ; Gruss Michael |
Re: Form1 bei OnCreate Ereignis beenden
Da im OnCreate das Formular erzeugt wird, kann man es noch nicht schließen, da es ja noch nicht vorhanden ist.
Im OnActivate würde es gehen, allerdings siehtst du dann für einen Sekundenbruchteil dein Formular. |
Re: Form1 bei OnCreate Ereignis beenden
Zitat:
Oder noch besser. In den Quellcode der Aplikation. Dann braucht das Fenster garnicht erst erzeugt werden. |
Re: Form1 bei OnCreate Ereignis beenden
Hallo glunzl,
dieses sch*** Problem hatte ich auch schon und ich bin daran zerbrochen. Zur Strafe habe ich das dann so gemacht:
Delphi-Quellcode:
Gruß DANNYBOY
// wir befinden uns in Create des Formulars
Application.Terminate; HALT; |
Re: Form1 bei OnCreate Ereignis beenden
@Matze: Danke für die Erklärung. Leuchtet jetzt ein :-)
@Sharky: Zitat:
Michael |
Re: Form1 bei OnCreate Ereignis beenden
Lass dir die Projektdatei anzeigen, füge in dem Uses Abschnitt SysUtils hinzu, damit du FileExists verwenden kannst, und mach davon das Erzeugen der Weiteren Formulare und das Starten der Anwendung abhängig.
Ach ja die Projekt-Datei ist die Datei mit der endung dpr. Sie enhält das eigentliche Hauptprogramm. |
Re: Form1 bei OnCreate Ereignis beenden
Zitat:
Delphi-Quellcode:
[Edit]Das Luckie war wieder schneller ;-) [/Edit]
program Project1;
uses Forms, SysUtils, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; if FileExists('c:\test.kkk') then if not DeleteFile('c:\test.kkk') then begin Application.MessageBox('Geht nicht', 'Meldung', 48) ; end else begin Application.CreateForm(TForm1, Form1); end; Application.Run; end. |
Re: Form1 bei OnCreate Ereignis beenden
Danke Euch!
Michael |
Re: Form1 bei OnCreate Ereignis beenden
@Dannyboy: Noch besser :-)
Michael |
Re: Form1 bei OnCreate Ereignis beenden
Zitat:
Ich dachte immer Terminate beendet die Anwendung nicht korrekt. :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 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 by Thomas Breitkreuz