Thema: Tastencodes

Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Tastencodes

  Alt 13. Jan 2022, 22:14
Auch wenn schon tausend mal beispiele zu diesem thema flogen, ich füge der sammlung eins hinzu
Delphi-Quellcode:
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;
Im Anhang ist das projekt als quelltext und ausführbare datei.
Angehängte Dateien
Dateityp: 7z ScanCode.7z (700,7 KB, 7x aufgerufen)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat