Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm beenden auch im Taskmanager (https://www.delphipraxis.net/120333-programm-beenden-auch-im-taskmanager.html)

SaFu 9. Sep 2008 13:29


Programm beenden auch im Taskmanager
 
Hi

Und zwar habe ich folgendes Problem.

Wenn ich mein Programm über den Button schließe (Form.Close) oder über F4, wird es zwar geschloßen aber es verschwindet nicht aus dem Taskmanager.

Woran könnte das liegen??

Flips 9. Sep 2008 13:31

Re: Programm beenden auch im Taskmanager
 
Ich hatte das auch mal, da hatte ich im OnClose stehn
Delphi-Quellcode:
CloseAction := caFree;

SaFu 9. Sep 2008 13:34

Re: Programm beenden auch im Taskmanager
 
Zitat:

Zitat von Flips
Ich hatte das auch mal, da hatte ich im OnClose stehn
Delphi-Quellcode:
CloseAction := caFree;

Wie das hast du rein geschrieben und das Problem war behoben oder???

IceBube 9. Sep 2008 13:36

Re: Programm beenden auch im Taskmanager
 
Zitat:

Zitat von fuknersascha
Zitat:

Zitat von Flips
Ich hatte das auch mal, da hatte ich im OnClose stehn
Delphi-Quellcode:
CloseAction := caFree;

Wie das hast du rein geschrieben und das Problem war behoben oder???

Nein^, dadurch wird das Programm nicht ordentlich beendet!

Möglichweise schließt ja nicht die Hauptform??

SaFu 9. Sep 2008 13:38

Re: Programm beenden auch im Taskmanager
 
im onClose steht garnichts drin.

Ich beende das Programm nur mit Alt F4

Die Muhkuh 9. Sep 2008 13:46

Re: Programm beenden auch im Taskmanager
 
Beende die Anwendung mit Application.Terminate

SaFu 9. Sep 2008 13:51

Re: Programm beenden auch im Taskmanager
 
Ja danke das scheint zu funktionieren

Larsi 9. Sep 2008 13:52

Re: Programm beenden auch im Taskmanager
 
Hast du vielleicht vergessen ein Trayicon zu entfernen? Wenn du dann nur das Formular schließt ist dieses ja noch da.

Die Muhkuh 9. Sep 2008 13:55

Re: Programm beenden auch im Taskmanager
 
Wenn Du in der Mainform Close schreibst, sollte das komplette Programm zu gehen. TrayIcon hin oder her.

Luckie 9. Sep 2008 14:06

Re: Programm beenden auch im Taskmanager
 
Zitat:

Zitat von Die Muhkuh
Beende die Anwendung mit Application.Terminate

Ich würde es sinnvoller finden, die Ursache des Problems zu finden, anstatt es mit einem Vorschlaghammer platt zu machen.

Die Muhkuh 9. Sep 2008 14:11

Re: Programm beenden auch im Taskmanager
 
Ich beende Anwendungen, auch aus der Mainform heraus, immer mit Application.Terminate.

Meflin 9. Sep 2008 14:13

Re: Programm beenden auch im Taskmanager
 
Zitat:

Zitat von Die Muhkuh
Ich beende Anwendungen, auch aus der Mainform heraus, immer mit Application.Terminate.

Aha. Und welchen speziellen Sinn soll das haben? Der normale Weg, eine Delphi-W32-Anwendung zu beenden, ist immernoch MainForm.Close ;)

Die Muhkuh 9. Sep 2008 14:14

Re: Programm beenden auch im Taskmanager
 
Warum sollte ich es nicht nutzen? Wenn ich Close in der Mainform aufrufe, wird auch Application.Terminate aufgerufen.

Edit: Ein Nachteil, den man hat ist, dass OnClose der Form nicht mehr aufgerufen wird. Da ich das aber nicht nutze, hat es mir auch noch keine Schwierigkeiten gemacht.

Meflin 9. Sep 2008 14:20

Re: Programm beenden auch im Taskmanager
 
Zitat:

Zitat von Die Muhkuh
Warum sollte ich es nicht nutzen? Wenn ich Close in der Mainform aufrufe, wird auch Application.Terminate aufgerufen.
Edit: Ein Nachteil, den man hat ist, dass OnClose der Form nicht mehr aufgerufen wird. Da ich das aber nicht nutze, hat es mir auch noch keine Schwierigkeiten gemacht.

Warum solltest du nicht einfach Close benutzen? Es ist der Weg, den die VCL vorsieht, und, wie das eben auch der Sinn von OOP ist, kann sich da ja an der implementierung von Close auch mal was ändern ;) BTW wird auch OnCloseQuery nicht ausgeführt. Es gibt einfach keinen Sinn, "einfach so" Application.Terminate zu benutzen ;)

Die Muhkuh 9. Sep 2008 14:23

Re: Programm beenden auch im Taskmanager
 
Hi,

das mit OnClose(Query) sagte ich ja bereits und da ich diese nicht nutze, beende ich meine Programme eben mit Application.Terminate. Falls ich diese mal nutzen muss, weiß ich ja, dass ich dann kein Application.Terminate nutzen darf.

OOP widerstrebt ist, ok, soll es. Stört mich in dem Fall nicht ;)

Luckie 9. Sep 2008 14:28

Re: Programm beenden auch im Taskmanager
 
Und wenn du es doch mal benutzt, fragst du hier im Forum nach, warum dein Code in OnClose nicht ausgeführt wird. :?

Die Muhkuh 9. Sep 2008 14:42

Re: Programm beenden auch im Taskmanager
 
Warum sollte ich? Ich weiß, dass bei Application.Terminate kein OnClose ausgeführt wird. ;)

Luckie 9. Sep 2008 14:48

Re: Programm beenden auch im Taskmanager
 
Zitat:

Zitat von Die Muhkuh
Warum sollte ich? Ich weiß, dass bei Application.Terminate kein OnClose ausgeführt wird. ;)

Aber fällt es dir auch ein, wenn du mal dieses Ereignis nutzt?

Meflin 9. Sep 2008 14:54

Re: Programm beenden auch im Taskmanager
 
Jungs, eigentlich diskutiert ihr an der Sache vorbei: Es gibt einfach keinen Grund, Application.Terminate zu verwenden. Es bringt _null_ Vorteil, hat aber wie erwähnt Nebenwirkungen ;)

DeddyH 9. Sep 2008 15:27

Re: Programm beenden auch im Taskmanager
 
Ich würde einfach mal im OnClose eine Message ausgeben und anschließend durchsteppen, wo es denn klemmt (also Application.Terminate wieder rausnehmen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 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-2025 by Thomas Breitkreuz