![]() |
Tastencodes
ich habe in der Liste der virtuellen Tastencodes (VK_) nicht herausgefunden, welchen Code die beiden Kommatasten haben? VK_COMMA und VK_NUMPADCOMMA scheinen nicht zu stimmen. Die Unit LCLType habe ich eingebunden.
|
AW: Tastencodes
.. vielleicht wirst Du hier fündig:
![]() Grüße Klaus |
AW: Tastencodes
Und mal ganz im Ernst, aber wieso kommt niemand auf die irrsinnige Idee es notfalls einfach mal ausprobieren?
Taste drücken, im OnKeyDown den Wert ablesen und dann beim Hersteller in der Doku (oben verlinkt) nachsehn, welche Konstante es ist. 110 = $6E = VK_DECIMAL = "Dezimaltrennzeichen" im Zehnerblock 188 = $BC = VK_OEM_COMMA = Komma, bzw. "Satztrennzeichen" bei den Buchstaben Nja, das Eine hätte man einfach so entdecken können, denn das eine "Komma" in kein Komma, sondern ein "Dezimaltrennzeichen" (
Delphi-Quellcode:
auf deutscher Tastatur, aber
,
Delphi-Quellcode:
bei den Engländern)
.
|
AW: Tastencodes
Liste der Anhänge anzeigen (Anzahl: 1)
Auch wenn schon tausend mal beispiele zu diesem thema flogen, ich füge der sammlung eins hinzu :-)
Delphi-Quellcode:
Im Anhang ist das projekt als quelltext und ausführbare datei.
procedure TForm1.GetLockInfo;
begin cbCaps.Checked := (GetKeyState(VK_CAPITAL) <> 0); cbNum.Checked := (GetKeyState(VK_NUMLOCK) <> 0); cbScroll.Checked := (GetKeyState(VK_SCROLL) <> 0); End; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin GetLockInfo; { TMouseButton = (mbLeft, mbRight, mbMiddle); } cbLeft.Checked := (ssLeft in Shift); cbRight.Checked := (ssRight in Shift); cbMiddle.Checked := (ssMiddle in Shift); end; procedure TForm1.FormCreate(Sender: TObject); begin GetLockInfo; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var Modifier: Int64; begin GetLockInfo; cbShift.Checked := (ssShift in Shift); cbControl.Checked := (ssCtrl in Shift); cbAlt.Checked := (ssAlt in Shift); Modifier := 0; if cbShift.Checked then Modifier := Modifier + VK_SHIFT; if cbControl.Checked then Modifier := Modifier + VK_CONTROL; if cbAlt.Checked then Modifier := Modifier + VK_MENU; edKey.Text := 'Mod: ' + IntToStr(Modifier) + ' - Key: ' + IntToStr(Key); end; procedure TForm1.WMKeyDown(var Msg: TWMKeyDown); begin inherited; cbExtended.Checked := (Msg.KeyData and $1000000 <> 0); edWMKey.Text := 'Data: ' + IntToHex(Msg.KeyData, 8) + ' - Char: ' + IntToStr(Msg.CharCode); (* case Msg.CharCode of VK_RETURN: // ENTER pressed if (Message.KeyData and $1000000 <> 0) then // Test bit 24 of lParam ShowMessage('ENTER on numeric keypad') else ShowMessage('ENTER on Standard keyboard'); end; *) end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 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