Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Global auf Tastenkombination reagieren??? (https://www.delphipraxis.net/122878-global-auf-tastenkombination-reagieren.html)

romber 23. Okt 2008 17:34


Global auf Tastenkombination reagieren???
 
Hallo!

Ich habe für mein Programm mehrere verschiedene Ansichte erstellt und würde gerne eine bequemme Wechselfunktion dafür erstellen. Ich würde es gerne so machen, dass beim Drücken einer bestimmten Tastenkombination anwendungsglobal (z.B. Strg+Q) ein kleines Fenster in der Mitte des Bildschirms erscheint, auf dem die grafischen Buttons für verschiedene Ansichte drauf sind. Wenn man dabei bei gedruckten STRG-Taste mehrmals auf "Q" druckt, wechselt das Focus auf das nächste Button. Bei loslassen der Tasten verschwindet das kleine Fenster und der Ansicht ändert sich entsprechend.

Genau so was passiert im Windows, wenn man die Tastenkombination Alt-Tab druckt und bei gedruckten Alt-Taste die geöffneten Programme mit Tab durchblättert.

Ein Fenster mit Buttons kann ich schon erstellen. Die Ansichte kann ich auch bereits dynamisch wechseln. Es geht mir jetzt um Abfangen der gewünschten Tastenkombination, Focusieren der Buttons und Verschwinden der Form, wenn die Tasten losgelassen sind. Wie mache ich das?

STS301 23. Okt 2008 17:38

Re: Global auf Tastenkombination reagieren???
 
schau dir das einmal an: http://www.delphi-treff.de/tutorials...astatur-hooks/

und eine Forumsuche würde auch nicht schaden Hier im Forum suchenHook

jfheins 23. Okt 2008 17:42

Re: Global auf Tastenkombination reagieren???
 
Schau dir mal die Events von TApplication an - da könnte sowas wie ein globales KeyPress drin sein. (Komponente: TAppplikationEvents)

Da müstest du dann bei jedem "Q" schauen ob STRG gedrückt ist und kannst dann eine Methode in dem extra-Fenster aufrufen ;)

@Hooks: Vll. etwas mit Kanonen auf Spatzen geschossen. Aber ein lokaler Hook könnte gehen. Wobei die Events von TApplikation nichts anderes machen (nur wurde sowas eben schon vorgesehen)


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