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 Application.Terminate in Vista (https://www.delphipraxis.net/91129-application-terminate-vista.html)

PeterPanino 30. Apr 2007 01:38


Application.Terminate in Vista
 
Hallo, wenn ich in Vista Application.Terminate; ausführe, ist der Prozess nach dem Beenden des Programms immer noch im Task-Manager zu sehen, läuft also noch. Kann das jemand reproduzieren?

Hansa 30. Apr 2007 01:44

Re: Application.Terminate in Vista
 
Man könnte das schon mal testen. Aber das Application - Object zu benutzen und das unter Vista ? Macht das Sinn ? :P

Luckie 30. Apr 2007 01:46

Re: Application.Terminate in Vista
 
Zitat:

Zitat von Hansa
Aber das Application - Object zu benutzen und das unter Vista ? Macht das Sinn ? :P

Was hat das eine mit dem anderen zu tun?

PeterPanino 30. Apr 2007 01:58

Re: Application.Terminate in Vista
 
Zitat:

Zitat von Hansa
... Aber das Application - Object zu benutzen und das unter Vista ? Macht das Sinn ? :P

Wieso soll das keinen Sinn machen?

Luckie 30. Apr 2007 02:08

Re: Application.Terminate in Vista
 
Weil jede VCL Anwendung das "Application Objekt" benutzt:
Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Und warum sollte man unter Vista keine Methoden dieses Objektes aufrufen?

Zu deinem Problem: Laufen eventuell noch irgendwelche nicht beendeten Threads?

Hansa 30. Apr 2007 02:09

Re: Application.Terminate in Vista
 
Zitat:

Zitat von Luckie
Was hat das eine mit dem anderen zu tun?

Dann teste selber diese fragwürdige Sache. :mrgreen: Kenne niemanden, der Application ohne Not direkt einsetzt. Und das Terminate scheint noch schlimmer zu sein, was man so hört. 8) Aber egal. Gebraucht wird es jedenfalls normalerweise nicht. Auf diesen Umstand wollte ich hinweisen. Mit Gewalt etwas passend zu machen, ja das geht irgendwie immer. Unter Vista vielleicht aber auch nicht. :zwinker:

Luckie 30. Apr 2007 02:22

Re: Application.Terminate in Vista
 
Auch das ist Blödsinn. TApplication.Terminate tut nichts anders als MSDN-Library durchsuchenPostQuitMessage, also eine ganz normale API Funktion, aufzurufen:
Zitat:

The PostQuitMessage function posts a WM_QUIT message to the thread's message queue and returns immediately; the function simply indicates to the system that the thread is requesting to quit at some time in the future.
Und das ist eine ganz normale Art ein Windows GUI Programm zu beenden.

PeterPanino 30. Apr 2007 02:39

Re: Application.Terminate in Vista
 
Zitat:

Zitat von Luckie
... Zu deinem Problem: Laufen eventuell noch irgendwelche nicht beendeten Threads?

Keine eigenen Threads; was Komponenten betrifft, müsste ich das mal prüfen. Der Aufruf von Application.Terminate erfolgt im OnCreate-Event des Hauptformulars. (Nachher werden noch andere Formulare erzeugt; offensichtlich werden die noch erzeugt, obwohl Application.Terminate aufgerufen wurde, und dann erst das Programm beendet). Habe schon überlegt, ob ich deswegen nicht Halt verwenden sollte.

Luckie 30. Apr 2007 02:44

Re: Application.Terminate in Vista
 
Also mit Halt fährst du dein Programm nun wirklich gegen die Wand. Du solltest mal überlegen, ob es Sinn ergibt, was du da machst. Du steigst in das Auto ein und willst gleichzeitig wieder aussteigen. Das kann irgendwie nicht gehen. Also entweder steigst du erst gar nicht ein oder du steigst erst richtig ein und steigst dann wieder aus.

SirThornberry 30. Apr 2007 06:03

Re: Application.Terminate in Vista
 
Naja, mit Halt fährt man nicht wirklich gegen die Wand. Es ist auch eine "normale" Variante sein Programm zu beenden mit dem Vorteil einen Rückgabewert setzen zu können.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 Uhr.
Seite 1 von 2  1 2      

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