Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Klick auf Taskbar-Symbol abfangen (https://www.delphipraxis.net/204158-klick-auf-taskbar-symbol-abfangen.html)

jik 30. Apr 2020 10:59

Delphi-Version: 5

Klick auf Taskbar-Symbol abfangen
 
Hallo ihr,

da ich bei meiner Programmsuite das Fensetrhandling (größer-/kleinerziehen, maximize, minimize usw.) selbst mache, habe ich mich dazu entschieden mit BorderStyle bsNone zu arbeiten (so kann ich z.B. meine eigene Rahmenbreite (›künstlich‹ gemacht) einstellen). Funktioniert auch alles bestens. Nur ein Problem habe ich: ich komme nicht in FormActivate, wenn unten auf einen Taskleistenknubbel gedrückt wird. Das ist insofern blöd, wenn jemand z.B. das Hauptfenster und ein anderes maximizes hat, dass er durch taskbarklick nicht wechseln kann. Zwar hat jedes der Fenster einen Knubbel, der ist dadurch aber für nichts.

Hat jemand eine Idee, wie man abfragen kann, dass dieser Knubbel gedrückt wurde (WM_TBKNUBBEL_PRESSED oder sowas) ...?

Viele Grüße
Martin

himitsu 30. Apr 2020 11:38

AW: Klick auf Taskbar-Symbol abfangen
 
Es gibt einmal das OnActivate der Form innerhalb deiner Anwendung
und dann noch das OnActivate der gesamten Anwendung.

Ist das Delphi5 da links noch aktuell?
https://www.embarcadero.com/products/delphi/starter
Nja, in etwas neueren Delphis, da gibt es Delphi-Referenz durchsuchenTApplicationEvents, was man sich auf seine Form legen kann,
wenn nicht, dann wird man sich wohl oder übel manuell an Application.OnActivate (Unit Forms) hängen müssen.

Von TApplicationEvents kann man auch mehrere geben, ohne dass man aufpassen muß, ob man nicht selbst mehrfach versucht sich an Application zu hängen, bzw. ob nicht auch noch eine Fremdkomponente das machen wollte und man sich gegenseitig überschreibt.

jik 30. Apr 2020 13:07

AW: Klick auf Taskbar-Symbol abfangen
 
Hallo himitsu,

ja, das ›Delphi5‹ links stimmt :-) Finde ich nach wie vor optimal. Danach, finde ich, wird es immer unhandlicher. Aber das ist sicher Geschmackssache.

Application.OnActivate ist zwar eine Teillösung für das Hauptformular, aber die anderen Fenster lassen sich auf diesem Weg weder darin mit Abfrage auf Screen.ActiveForm, noch ihre eigene OnActivate-Methode in den Vordergrund holen. Bei XP (ja, auch wieder so eine Uraltsache, aber ich habe Kunden, die noch mit XP arbeiten wollen/müssen) alles kein Problem, bei Win10 läuft da offenbar vieles völlig anders. Er kommt bei Win10 übrigens unzählige Male in Application.OnActivate, bei XP genau einmal.

Deshalb dachte ich, ich suche eine Möglichkeit, einen Klick auf die TB-Knubbels abfragen zu können.

Viele Grüße
Martin


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