Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Prism Application.Exit geht nicht? [erledigt] (https://www.delphipraxis.net/17187-application-exit-geht-nicht-%5Berledigt%5D.html)

MathiasSimmack 29. Feb 2004 17:57


Application.Exit geht nicht? [erledigt]
 
Ich versuche gerade im Create-Ereignis einer .NET-Anwendung bei bestimmten, nicht erfüllten Bedingungen die Anwendung abzubrechen. Von der VCL kenne ich es so:
Delphi-Quellcode:
if(Bedingung_nicht_erfüllt) then
  Application.Terminate;
Das meiner Meinung nach gleiche bei .NET (Delphi 8 Pro)
Delphi-Quellcode:
if(Bedingung_nicht_erfüllt) then
  Application.Exit;
funktioniert nicht. Das Programm geht unbeirrt weiter und verursacht dann natürlich einen Fehler, weil die zuvor definierte Bedingungsprüfung ja nicht ohne Grund da steht.

Kennt jemand den korrekten Weg, die Anwendung zur Aufgabe zu bewegen? ;)

Danke, und Gruß.

r_kerber 29. Feb 2004 18:19

Re: Application.Exit geht nicht?
 
InForms oder VCL.Net?

mirage228 29. Feb 2004 18:20

Re: Application.Exit geht nicht?
 
In WindowsForms kannst du ja mal

Delphi-Quellcode:
System.Environment.Exit(0);
versuchen.

mfG
mirage228

c113plpbr 29. Feb 2004 18:22

Re: Application.Exit geht nicht?
 
Application.Exit; funzt bei mir perfekt! (D8 Architect; WinApp) Bist du dir auch sicher das das aufgerufen wird? setze mal haltepunkte rein!

cu, Philipp

MathiasSimmack 29. Feb 2004 19:24

Re: Application.Exit geht nicht?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Eine Haltepunkt wird nicht nötig sein. Zum einen habe ich in der eigentlichen Anwendung, um die es mir geht, ja noch eine Messagebox, die mich auf den Fehler (= die nicht erfüllte Bedingung) aufmerksam macht. Und "Application.Exit" liegt im selben begin/end-Block.

Aber im Anhang mal ein kleines Beispielprojekt, das mich persönlich vor einige Rätsel stellt. Ich habe nämlich bemerkt, dass "Application.Exit" nur funktioniert wenn danach nichts mehr kommt. Das Sample im Anhang enthält im "OnLoad"-Ereignis der Form nur diese beiden Zeilen:
Delphi-Quellcode:
procedure TWinForm.TWinForm_Load(sender: System.Object;
  e: System.EventArgs);
begin
  Application.Exit;

  MessageBox.Show('ich laufe');
end;
Normalerweise schwachsinnig, da vor der Messagebox das Aus kommen sollte. Kommt es aber nicht. Ich sehe die Box. Wenn ich den Befehl mit der Messagebix allerdings auskommentiere, dann zeigt auch "Application.Exit" Wirkung.

:wiejetzt:

Liegt das an .NET oder an Delphi?
Will sagen: Könnte das vielleicht mal jemand mit C# oder VB.NET probieren.

mirage228 29. Feb 2004 19:36

Re: Application.Exit geht nicht?
 
Zitat:

Zitat von MathiasSimmack
Eine Haltepunkt wird nicht nötig sein. Zum einen habe ich in der eigentlichen Anwendung, um die es mir geht, ja noch eine Messagebox, die mich auf den Fehler (= die nicht erfüllte Bedingung) aufmerksam macht. Und "Application.Exit" liegt im selben begin/end-Block.

Aber im Anhang mal ein kleines Beispielprojekt, das mich persönlich vor einige Rätsel stellt. Ich habe nämlich bemerkt, dass "Application.Exit" nur funktioniert wenn danach nichts mehr kommt. Das Sample im Anhang enthält im "OnLoad"-Ereignis der Form nur diese beiden Zeilen:
Delphi-Quellcode:
procedure TWinForm.TWinForm_Load(sender: System.Object;
  e: System.EventArgs);
begin
  Application.Exit;

  MessageBox.Show('ich laufe');
end;
Normalerweise schwachsinnig, da vor der Messagebox das Aus kommen sollte. Kommt es aber nicht. Ich sehe die Box. Wenn ich den Befehl mit der Messagebix allerdings auskommentiere, dann zeigt auch "Application.Exit" Wirkung.

:wiejetzt:

Liegt das an .NET oder an Delphi?
Will sagen: Könnte das vielleicht mal jemand mit C# oder VB.NET probieren.

Unter D8 Pro wird die MessageBox auch angezeigt und die Anwendung nicht beenden. Ersetze ich Application.Exit durch System.Envivornment.Exit(0); wird die Anwendung korrekt beendet.

Mit dem C# Builder teste ich es gleich sofort auch mal..
Edit: Beim C# wird die MessageBox ebenfalls angezeigt, wenn ich Application.Exit verwende.

mfG
mirage228

MathiasSimmack 29. Feb 2004 21:47

Re: Application.Exit geht nicht?
 
Ich danke dir für den Hinweis.
Jetzt geht´s.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:29 Uhr.

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