![]() |
Delphi Programm reagiert nicht bei Spacetaste
Hallo liebes Forum,
ich habe ein kleines Computerspiel das man mit den Pfeiltasten bedienen kann sowie mit der Enter Taste. Es ist eine Firemonkey App (FMX). Das OnKeydown Event sieht so aus:
Code:
Das Programm reagiert auf alle möglichen Tasten außer der Space Taste. Ich habe mir daran die Zähne ausgebissen.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState); begin ... if (Key=vkspace) then begin Showmessage('TEST'); end; end; Vielen Dank für Antworten. |
AW: Delphi Programm reagiert nicht bei Spacetaste
Hast du mal versucht, den Code zu ermitteln, der bei der Leertaste ankommt? Oder wird die Routine gar nicht ausgeführt?
|
AW: Delphi Programm reagiert nicht bei Spacetaste
Frag doch stattdessen KeyChar = ' ' ab.
Key hat für viele Tasten den Wert 0. |
AW: Delphi Programm reagiert nicht bei Spacetaste
Key sollte doch immer einen Wert haben, also quasi die ID der Taste.
VK_SPACE, bzw. vkSpace Aber jede Taste kann je nach Zustand unterschiedliche Chars haben. Shift-State (Shift, Strg und Alt), sowie vorherige Tasten, das Tastaturlayout und dann noch der Eingabemodus (IME). So kann vkSpace auch ein ^ oder ` oder ´ sein (deutsches Tastaturlayout). Aber natürlich bekommt nur der die Tastaturereignisse, welcher aktiv ist. Hmmmmm, ein KeyPreview gibt es im FMX nicht? PS: Die Form bekommt bei einem z.B. TEdit mit ControlType=Styled kein Event, aber bei einem TEdit mit ControlType=Platform schon (Windows). Hätte es eher andersrum erwartet :stupid: |
AW: Delphi Programm reagiert nicht bei Spacetaste
Ich habe das key=0 auch nicht erwartet. Aber ist offenbar so in FMX/Windows (getestet D11.2).
|
AW: Delphi Programm reagiert nicht bei Spacetaste
Den Sinn verstehe ich nicht (steht in der WndProc):
Delphi-Quellcode:
Der Zeichencode wird absichtlich entfernt, wenn nicht Strg, Alt oder Windows gedrückt ist.
if (([ssAlt, ssCtrl, ssCommand] * Shift) = []) then
Key := 0; Warum der Zeichencode nicht immer drin ist und das Textzeichen nur, wenn es Sinn macht, verstehe ich nicht. |
AW: Delphi Programm reagiert nicht bei Spacetaste
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 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