AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Programm reagiert nicht bei Spacetaste
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Programm reagiert nicht bei Spacetaste

Ein Thema von DelphiUser123 · begonnen am 18. Mai 2024 · letzter Beitrag vom 21. Mai 2024
Antwort Antwort
DelphiUser123

Registriert seit: 23. Feb 2013
39 Beiträge
 
#1

Delphi Programm reagiert nicht bei Spacetaste

  Alt 18. Mai 2024, 16:05
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:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
  Shift: TShiftState);
begin ... if (Key=vkspace) then begin Showmessage('TEST'); end; end;
Das Programm reagiert auf alle möglichen Tasten außer der Space Taste. Ich habe mir daran die Zähne ausgebissen.
Vielen Dank für Antworten.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.452 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi Programm reagiert nicht bei Spacetaste

  Alt 18. Mai 2024, 16:31
Hast du mal versucht, den Code zu ermitteln, der bei der Leertaste ankommt? Oder wird die Routine gar nicht ausgeführt?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi Programm reagiert nicht bei Spacetaste

  Alt 18. Mai 2024, 17:29
Frag doch stattdessen KeyChar = ' ' ab.
Key hat für viele Tasten den Wert 0.
Michael Gasser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi Programm reagiert nicht bei Spacetaste

  Alt 18. Mai 2024, 17:40
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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (18. Mai 2024 um 17:51 Uhr)
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Delphi Programm reagiert nicht bei Spacetaste

  Alt 18. Mai 2024, 18:23
Ich habe das key=0 auch nicht erwartet. Aber ist offenbar so in FMX/Windows (getestet D11.2).
Michael Gasser

Geändert von Michael II (18. Mai 2024 um 18:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Delphi Programm reagiert nicht bei Spacetaste

  Alt 18. Mai 2024, 22:33
Den Sinn verstehe ich nicht (steht in der WndProc):
Delphi-Quellcode:
      if (([ssAlt, ssCtrl, ssCommand] * Shift) = []) then
        Key := 0;
Der Zeichencode wird absichtlich entfernt, wenn nicht Strg, Alt oder Windows gedrückt ist.

Warum der Zeichencode nicht immer drin ist und das Textzeichen nur, wenn es Sinn macht, verstehe ich nicht.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
DelphiUser123

Registriert seit: 23. Feb 2013
39 Beiträge
 
#7

AW: Delphi Programm reagiert nicht bei Spacetaste

  Alt 21. Mai 2024, 14:55
Frag doch stattdessen KeyChar = ' ' ab.
Key hat für viele Tasten den Wert 0.
Danke, es hat geklappt mit diesem Befehl!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz