Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TAstatur (https://www.delphipraxis.net/61849-tastatur.html)

3_of_8 27. Jan 2006 20:51

Re: TAstatur
 
Das kommt mir irgendwie bekannt vor.

Es gäbe noch die Möglichkeit mit GetAsyncKeyState, aber die ist leicht komplizierter.

Frosch 27. Jan 2006 21:04

Re: TAstatur
 
Super, das war eigentlich so gut wie alles, was ich wissen wollte. Dankeee!

Nur wenn ich es z.B. so haben will, das sich etwas bewegt, solange die Taste gedrückt ist, gehe ich dann unter keypress statt unter keydown?

3_of_8 27. Jan 2006 21:07

Re: TAstatur
 
Nein. Keypress funktioniert nur bei ASCII Codes. Das sagt dir zum Beispiel, ob es ein a oder ein A ist. Pfeil-Hoch Taste gibts da gar nicht.

Du musst KeyDown hernehmen.

Und KeyDown wird auch ausgelöst, wenn du die Taste gedrückt hältst.

Frosch 27. Jan 2006 21:16

Re: TAstatur
 
Also gibt es keine Möglichkeit ein (Fischertechnik-)Modell über Hochfahren zu lassen, solange man die TAste drückt und wenn man sie loslässt, dass das ganze dann anhält?

Schade. Naja, egal.

Vielen Dank!

3_of_8 27. Jan 2006 21:18

Re: TAstatur
 
Genau das macht das Ding doch eh.

inherited 27. Jan 2006 21:44

Re: TAstatur
 
genau so funktioniert es im moment. taste nach oben drücken->wandert nach oben
loslassen->hört auf zu wandern

gfjs 28. Jan 2006 05:51

Re: TAstatur
 
Ich habe hier im Büro kein Delphi und kann's nicht ausprobieren, aber als Anfänger sehe ich das so:

onKeyDown reagiert auf das Drücken der Taste, dh. auch wenn ich die Taste gedrückt halte, sollte das Ereignis nur einmal ausgelöst werden. Wenn ich nun erreichen wollte, dass das Ereignis so lange ausgeführt wird, wie ich die Taste gedrückt halte, würde ich mit dem Tastendruck einen Timer starten, der im gewünschten Intervall (d.h. mit der gewünschten Geschwindigkeit) das Bild bewegt. In onKeyUp würde ich den Timer dann wieder disablen.

Ich hoffe, ich liege da nicht total falsch?!

mfg gfjs

Airblader 28. Jan 2006 08:39

Re: TAstatur
 
Zitat:

Zitat von 3_of_8
Genau das macht das Ding doch eh.

Nein, das KeyDown wird nur beim Drücken einmalig ausgeführt, soweit ich weiß.

@gjs/Frosch

Am besten einen Timer nehmen und reinschreiben:

Delphi-Quellcode:
procedure TForm1....;
begin
   if GetASyncKeyState(VK_UP) < 0 then
      Image1.Top := Image1.Top - 1;
end;
air

3_of_8 28. Jan 2006 10:01

Re: TAstatur
 
Stimmt, du hast Recht.

GetAsyncKeyState habe ich auch schon mal beiläufig erwähnt.

Frosch 28. Jan 2006 15:32

Re: TAstatur
 
Sehe ich das richtig, dass wenn eine Taste nicht gerdückt ist bei 1 steht und wenn man dann drückt bei 0, oder aufjedenfall drunter, oder wieso "..._UP) < 0 then"


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr.
Seite 2 von 3     12 3      

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