Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Form1 bei OnCreate Ereignis beenden (https://www.delphipraxis.net/18689-form1-bei-oncreate-ereignis-beenden.html)

glunzl 23. Mär 2004 11:07


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:
if FileExists('FileName') then
  if not DeleteFile('FileName') then
    begin
      Application.MessageBox('Geht nicht', 'Meldung', 48) ;
      form1.Close ; //funzt nicht
    end ;
Kann mir jemand sagen warum das nicht funzt?

Gruss
Michael

Matze 23. Mär 2004 11:13

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.

Sharky 23. Mär 2004 11:14

Re: Form1 bei OnCreate Ereignis beenden
 
Zitat:

Zitat von glunzl
...Kann mir jemand sagen warum das nicht funzt?...

Warum weiss ich auch nicht. Aber packe deine Prüfung doch einfach in das OnActivate.
Oder noch besser. In den Quellcode der Aplikation. Dann braucht das Fenster garnicht erst erzeugt werden.

Dannyboy 23. Mär 2004 11:16

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:
// wir befinden uns in Create des Formulars
Application.Terminate;
HALT;
Gruß DANNYBOY

glunzl 23. Mär 2004 11:17

Re: Form1 bei OnCreate Ereignis beenden
 
@Matze: Danke für die Erklärung. Leuchtet jetzt ein :-)

@Sharky:
Zitat:

Oder noch besser. In den Quellcode der Aplikation.
Wie mache ich denn das?

Michael

Luckie 23. Mär 2004 11:20

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.

Sharky 23. Mär 2004 11:23

Re: Form1 bei OnCreate Ereignis beenden
 
Zitat:

Zitat von glunzl
....Wie mache ich denn das?

Projekt - Quellcode anzeigen.

Delphi-Quellcode:
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.
[Edit]Das Luckie war wieder schneller ;-) [/Edit]

glunzl 23. Mär 2004 11:36

Re: Form1 bei OnCreate Ereignis beenden
 
Danke Euch!

Michael

glunzl 23. Mär 2004 11:50

Re: Form1 bei OnCreate Ereignis beenden
 
@Dannyboy: Noch besser :-)

Michael

Matze 23. Mär 2004 11:55

Re: Form1 bei OnCreate Ereignis beenden
 
Zitat:

Zitat von glunzl
@Dannyboy: Noch besser :-)

Ich denke nicht, dass das besser ist. :?
Ich dachte immer Terminate beendet die Anwendung nicht korrekt. :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:04 Uhr.
Seite 1 von 2  1 2      

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