![]() |
Problem mit GetKeyNameText
Delphi-Quellcode:
Liegt es an der 24?
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); var c: array[byte] of char; begin getkeynametext(24, c, Sizeof(c)); Label1.Caption := c; |
Re: Problem mit GetKeyNameText
Denn das Label ist nach einem Tastendruck leer.
Wo liegt der Fehler??? |
Re: Problem mit GetKeyNameText
Zitat:
Code:
D.h. Bit 16-23 müssen den Wert von Key bekommen.
lParam
Specifies the second parameter of the keyboard message (such as WM_KEYDOWN) to be processed. The function interprets the following portions of lParam: Bits Meaning 16-23 Scan code. 24 Extended-key flag. Distinguishes some keys on an enhanced keyboard. 25 "Don't care" bit. The application calling this function sets this bit to indicate that the function should not distinguish between left and right CTRL and SHIFT keys, for example. |
Re: Problem mit GetKeyNameText
Zwei grundlegende Probleme.
Vom ersten Wert interessieren die Bits 16 - 23, 24 und 25. Der Wert der Bits 16 - 23 ist wie folgend MS Help :: WM_KEYDOWN 16-23 Specifies the scan code. The value depends on the original equipment manufacturer (OEM). 24 Specifies whether the key is an extended key, such as the right-hand ALT and CTRL keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0. Und hier die Hilfe zu GetKeyNameText MS Help :: GetKeyNameText lParam Specifies the second parameter of the keyboard message (such as WM_KEYDOWN) to be processed. The function interprets the following portions of lParam: Bits Meaning 16-23 Scan code. 24 Extended-key flag. Distinguishes some keys on an enhanced keyboard. 25 "Don't care" bit. The application calling this function sets this bit to indicate that the function should not distinguish between left and right CTRL and SHIFT keys, for example. Kurz, mit festen Werten zu arbeiten macht in keinem Fall Sinn ;) ...:cat:... |
Re: Problem mit GetKeyNameText
Diese Funktion liefert doch den Shortcut einer Taste, oder?
Könntest du mir anhand eines Quelltextes zeigen wie man es richtig macht? Danke schon mal! |
Re: Problem mit GetKeyNameText
Hier mal ein Beispiel:
Delphi-Quellcode:
...:cat:...
procedure TForm1.Button1Click(Sender: TObject);
var SC: TShortCut; begin SC := ShortCut( Ord('A'), [ssAlt] ); Edit1.Text := ShortCutToText( SC ); end; |
Re: Problem mit GetKeyNameText
Danke, so hab ich mit das vorgestellt :-D
Aber ich hab auch gehört es lässt sich auch mit GetKeyNameText machen? Wo liegt der Unterschied? |
Re: Problem mit GetKeyNameText
Zitat:
Obiges Beispiel arbeitet bereits mit den allgemeinen Windows (bzw. Linuxwerte bei QMenus), welche herstellerunabhängig sind. ...:cat:... |
Re: Problem mit GetKeyNameText
Ok, dankeschön :-D
|
Re: Problem mit GetKeyNameText
Aber nun stellt sich schon die nächste Frage:
Wie macht man das, wenn zB. die Eingabetaste gedrückt wird und man möchte den Namen dieses Steuerelements bekommen? In diesem Falle: CARRIAGE RETURN oder für Esc den Wert ESCAPE? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 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 by Thomas Breitkreuz