Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi 2 Probleme mit Tastatur (https://www.delphipraxis.net/17852-2-probleme-mit-tastatur.html)

LoW_FloW 10. Mär 2004 17:09


2 Probleme mit Tastatur
 
1.)Wie kann man die Verzögerung bis ein Zeichen auf Tastendruck ständig wiedergegeben wird verändern / bzw. abschalten?Wenn man hier länger Rechts drückt, soll die Figur die ganze Zeit nach rechts wandern.
Delphi-Quellcode:
  if Key=VK_LEFT then MoveFighter (imgFighter1, LeftMove , NoJump );
  if Key=VK_RIGHT then MoveFighter(imgFighter1, RightMove, NoJump );
  if Key=VK_UP then MoveFighter  (imgFighter1, NoMove  , Jumphigh );
  if Key=VK_DOWN then MoveFighter (imgFighter2, LeftMove , NoJump );
Bei meinem Souce geht die Figur nach rechts, bleibt stehen und geht nach einer Zeit fließend weiter. So, als würde man WordPad öfnnen und lange "a" drücken. Zuerst erscheint ein a und dann später gehts ruckelfrei. Diese Verzögerung will ich abschalten :gruebel:

2.) Wie kann man den Tastatur-Befehls Speicher deaktivieren (nur im Programm). Drückt man länger die "Hoch"-Taste, kann man los lasen und die Figur macht ewig weiter! Das will ich auch nicht :mrgreen:

Für Hilfe jeder Art bin ich sehr dankbar :zwinker:

Sharky 11. Mär 2004 04:51

Re: 2 Probleme mit Tastatur
 
Hai LoW_FloW,

eventuell kannst Du das Problem ja umgehen indem Du die Ereignisse OnKeyDown und OnKeyUp für deine Bewegung auswertest.

LoW_FloW 11. Mär 2004 13:16

Re: 2 Probleme mit Tastatur
 
Zitat:

Zitat von Sharky
Hai LoW_FloW,

eventuell kannst Du das Problem ja umgehen indem Du die Ereignisse OnKeyDown und OnKeyUp für deine Bewegung auswertest.

Das Ereignis setzt bei OnKeyDown ein. Stellt man auf OnKeyUp um, gibts gar keinen Wiederholungseffekt (z.B. wenn man länger "a" drückt kommt aaaaaaaaaaaaaaaa)

atreju2oo0 11. Mär 2004 14:42

Re: 2 Probleme mit Tastatur
 
Die beste Lösung wäre ein Timer zu nehmen.
Im OnTimer Ereigniss guckst Du dann ob eine Taste "down" is und führst die Aktion aus!
Daraus entstehen 2 Vorteile:
1) Deine ganzen Probleme sind gelöst
2) Du kannst zum Beispiel auch hoch und rechts drücken und es wird beides ausgeführt!

Kleiner Nachteil... Die Delphi Timer Komponente ist nicht sehr genau und resourcenschonend!
Wenns da also Probleme gibt mit Performance nimm lieber ne Timer Kompo von Torry oder DirectX...

LoW_FloW 11. Mär 2004 14:48

Re: 2 Probleme mit Tastatur
 
Zitat:

Zitat von atreju2oo0
Im OnTimer Ereigniss guckst Du dann ob eine Taste "down" is und führst die Aktion aus!

Sry, aber wie gehts das? :duck:

atreju2oo0 11. Mär 2004 15:07

Re: 2 Probleme mit Tastatur
 
Hier schauen


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:52 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