Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Linksklick gedrückt auf Taskbar-Icon > Schließen schließt modales Fenster nicht (https://www.delphipraxis.net/191113-linksklick-gedrueckt-auf-taskbar-icon-schliessen-schliesst-modales-fenster-nicht.html)

a.def 9. Dez 2016 10:14

Linksklick gedrückt auf Taskbar-Icon > Schließen schließt modales Fenster nicht
 
Ich denke jeder kennt dieses Menu welches aus der Taskleiste rausfährt, wenn einen Linksklick auf ein Taskbar-Icon macht, gedrückt hält und die Maus von der Taskbar wegzieht.
Dort steht bei jedem Programm u.a. "Schließen".

Mein Problem besteht darin, dass das nicht funktioniert, wenn ein modal dargestelltes Fenster angezeigt wird.
Kann man dagegen irgendetwas machen? Weil mir fällt auf Anhieb nichts ein.
Ich denke da an eine Message aber weiß der teufel welche.

himitsu 9. Dez 2016 10:30

AW: Linksklick gedrückt auf Taskbar-Icon > Schließen schließt modales Fenster nicht
 
Die TaskBar sendet ein WM_CLOSE an das Fenster, welches dort in der Taskleiste verlinkt ist.
standardmäßig:
* früher die unsichtbare MessageOnlyForm der VCL (Application.Handle)
* und aktuell die MainForm (MainFormOnTaskBar)

Wird die MainForm geschlossen, dann beendet sich auch das VCL-Programm (Application.Terminate)
und wenn sich das Programm beendet (Application.Terminated), dann verlassen alle ShowModal ihre Warteschleifchen.

Machst du irgendwas Komisches mit deiner MainForm?


PS: Die Kurzfassung nennt sich Rechtsklick, bzw. Kontextmenü. :angle:

a.def 9. Dez 2016 10:33

AW: Linksklick gedrückt auf Taskbar-Icon > Schließen schließt modales Fenster nicht
 
Zitat:

Zitat von himitsu (Beitrag 1355760)
Machst du irgendwas Komisches mit deiner MainForm?

Nein. Aktuell arbeitet die Anwendung nicht. Alles ist schlafen gelegt und ein Klick auf meinen Testbutton führt
Delphi-Quellcode:
Form31.ShowModal;
aus.
Ich habe aber verschiedene WM-Prozeduren (WMFormMoved, WMSysCommand).

In WMSysCommand frage ich
Delphi-Quellcode:
if (msg.CmdType and $FFF0 = SC_CLOSE)
ab.
Aber auch in einer frischen VLC-Anwendung funktioniert das Schließen über die Tasbar nicht wenn ein zweites Fenster Modal angezeigt wird.

Ach ja. aktuell kompiliere ich mit XE2 da es ein paar Probleme mit meinem DX10.1 u2 gibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:39 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