Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OnKeyPress Denkfehler ? (https://www.delphipraxis.net/107179-onkeypress-denkfehler.html)

Nils_13 23. Jan 2008 20:35


OnKeyPress Denkfehler ?
 
Hi,

erstaunlich bei was für Kleinigkeiten man manchmal Probleme hat: Ich muss in OnKeyPress überprüfen, ob Pfeiltaste oben gedrückt wurde. Deshalb schaute ich kurz in die Windows.pas:
Delphi-Quellcode:
{$EXTERNALSYM VK_LEFT}
VK_LEFT = 37;
{$EXTERNALSYM VK_UP}
VK_UP = 38;
{$EXTERNALSYM VK_RIGHT}
VK_RIGHT = 39;
{$EXTERNALSYM VK_DOWN}
VK_DOWN = 40;
Dann müsste das nun doch so aussehen ? Es tut sich leider nichts.
Delphi-Quellcode:
procedure TRazor.KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #39 then
    ...
end;

Looper 23. Jan 2008 20:37

Re: OnKeyPress Denkfehler ?
 
muss da nicht
Delphi-Quellcode:
if (key = #38) then
stehen?

mfg Looper

DeddyH 23. Jan 2008 20:39

Re: OnKeyPress Denkfehler ?
 
Scheint mir auch so.

Nils_13 23. Jan 2008 20:43

Re: OnKeyPress Denkfehler ?
 
Ah, das kam weil ich es zum Testen mal auch noch mit rechts probiert habe und rechts ist #39. Auch Pfeiltaste-rechts kann man vergebens drücken ohne dass was passiert.

bitsetter 23. Jan 2008 20:44

Re: OnKeyPress Denkfehler ?
 
Hi,

VK_UP ist doch kein Zeichen IMHO müsste man dafür das Ereignis onKeyDown nehmen.

Die Muhkuh 23. Jan 2008 20:45

Re: OnKeyPress Denkfehler ?
 
Richtig,

den ein Char(#38) wäre ein & ;)

Nils_13 23. Jan 2008 20:47

Re: OnKeyPress Denkfehler ?
 
Hm, ich arbeite gerade mit OpenGL. Dann könnte ich doch bei OnKeyDown eine Boolean-Variable auf True setzen und im Render (=Idle) einfach prüfen ob die auf True steht und dementsprechend was machen, bei OnKeyUp setz ich es dann wieder auf False.

Danke!


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