![]() |
THotKey mit Space behandlung
Hallo,
kennt jemand THotKey Komponente, die mit Space umgehen kann, z.B. Ctrl+Space sollte möglich zu definieren sein. Gruß Eric |
AW: THotKey mit Space behandlung
Actions mit SecondaryShortcut = STRG+LEERTASTE
oder allgemeiner (uses menus)
Delphi-Quellcode:
myAction.SecondaryShortCuts.Add(ShortCutToText(ShortCut(Ord(' '), [ssctrl])));
|
AW: THotKey mit Space behandlung
Es geht um die Definition von Shortcuts. Der Anwender soll sie selber definieren können. Leider THotKey erlaub nicht die Leertaste zu nutzen.
|
AW: THotKey mit Space behandlung
Es gibt keinen ShortCut/Tastencode für Strg+Space, also gibt es auch keinen HotKey.
Ist dir schonmal aufgefallen, daß viele Tasten, wie z.B. die Buchstaben und Zahlen (im Textblock) nicht nur einen Tastencode kennen, sondern Mehrere? E = e Shift+E = E Alt+E = € Tja und die Leertastte kennt sowas halt nicht. Ich vermute jetzt einfach mal, daß es aus einem derartigen Grund auch nur Tastenkombinationen funktioniert, wo es sowas gibt. PS: Strg+Enter und Strg+Backspace, Strg+Del gehen auch nicht ... eventuell wurden auch einfach nur bestimmte Tasten gesperrt. Manuell könnte man soeinen HotKey schon deklarieren, aber ob er dann auch funktioniert :?:
Delphi-Quellcode:
HotKey1.HotKey := 16416;
|
AW: THotKey mit Space behandlung
Hallo,
die Delphi-Komponente THotKey kapselt lediglich ein von Microsoft erstelltes Windows-Control, das im MSDN ![]()
Delphi-Quellcode:
Dabei ist zu beachten, dass die Deklaration von THotkey vor der Deklaration des verwendenden Formulars erfolgen muss. Falls Deklaration und Implementierung von THotkey in eine eigene Unit ausgelagert werden, muss diese bei der Verwendung in der USES-Liste nach "ComCtrls" aufgeführt werden.
type
THotkey = class (ComCtrls.THotkey) private procedure WMKeyDown (var aMessage: TWMKeyDown); message WM_KEYDOWN; procedure WMSysKeyDown (var aMessage: TWMSysKeyDown); message WM_SYSKEYDOWN; procedure SetHotkeyFromMessage (var aMessage: TWMKey); end; procedure THotkey.WMKeyDown (var aMessage: TWMKeyDown); begin if (aMessage.CharCode = VK_SPACE) then SetHotkeyFromMessage (aMessage) else inherited; end; procedure THotkey.WMSysKeyDown (var aMessage: TWMSysKeyDown); begin if (aMessage.CharCode = VK_SPACE) then SetHotkeyFromMessage (aMessage) else inherited; end; procedure THotkey.SetHotkeyFromMessage (var aMessage: TWMKey); var ShiftState: TShiftState; begin ShiftState := KeyDataToShiftState(aMessage.KeyData); Hotkey := ShortCut(aMessage.CharCode, ShiftState); if Assigned(OnChange) then OnChange (Self); aMessage.Result := 0; end; Gruß Hawkeye |
AW: THotKey mit Space behandlung
Danke, Hawkeye.
Das ist genau was ich gesucht habe. Gruß Eric |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:41 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