Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi konstante bewegung eines objekts durch tastendruck (https://www.delphipraxis.net/141107-konstante-bewegung-eines-objekts-durch-tastendruck.html)

Draggen 2. Okt 2009 18:28


konstante bewegung eines objekts durch tastendruck
 
hallo an alle
ich bin neu hier und hätte mal eine frage.
ich hab schon ein wenig gegoogelt und hier hab ich auch schon alles abgesucht...
ich möchte ein objekt konstant in ein richtung bewegen während ich eine taste gedrückt halte. bei den bisherigen versuchen bleibe ich entweder in einer endlosschleife hängen oder ich bekomme keine konstante bewegung zu stande.
kann mir da jemand helfen? wäre echt nett.
lg draggen

alleinherrscher 2. Okt 2009 18:32

Re: konstante bewegung eines objekts durch tastendruck
 
Hi! Und Willkommen in der DP!

Was sind denn deine bisherigen Versuche? Das Bewegen des Objekts beim OnKeyDown Ereigniss?

Man könnte z.B. einen Timer verwenden und im OnTimer ereignis abfragen, ob die gewünschte Taste gedrückt ist. Falls dies der Fall ist, bewegt der Timer das Objekt einen Schritt weiter. Das sollte gleichmäßig genug sein...

LEE1 2. Okt 2009 18:34

Re: konstante bewegung eines objekts durch tastendruck
 
du da kann ich dir leider nid weiter helfen habe selbst das gleiche problem wäre cool wenn endlich mal jemand das erklären könnte

Draggen 2. Okt 2009 18:40

Re: konstante bewegung eines objekts durch tastendruck
 
genau die bisherigen versuche waren alle mit onkeydown-ereignis.
das mit dem timer hab ich mir auch schon überlegt nur hab ich keine ahnung wie ich abfragen kann ob eine bestimmte taste gerade gedrückt ist. könntest du mir bitte ein beispiel schicken?
danke schon mal im vorraus

alleinherrscher 2. Okt 2009 18:41

Re: konstante bewegung eines objekts durch tastendruck
 
Zitat:

Zitat von LEE1
du da kann ich dir leider nid weiter helfen habe selbst das gleiche problem wäre cool wenn endlich mal jemand das erklären könnte

Geiler Kommentar :D

Also hier der Beispielcode, funzt wunderbar!

Delphi-Quellcode:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (getkeystate(vk_left) and 128)=128 then
  button1.Left:=button1.left-1; //verschiebt den Button eins nach links
end;

LEE1 2. Okt 2009 18:44

Re: konstante bewegung eines objekts durch tastendruck
 
hey danke funktioniert wunder bar danke

Draggen wusste schon wie das gemeint war :-)

nur für waas ist die 128

Draggen 2. Okt 2009 18:46

Re: konstante bewegung eines objekts durch tastendruck
 
danke! sieht auch super aus nur kommt bei mir die fehlermeldung:"Vorgang konnte nicht erzeugt werden: Zugriff verweigert".

LEE1 2. Okt 2009 18:48

Re: konstante bewegung eines objekts durch tastendruck
 
un dann hab ich ne frage wenn ich den button springen lassen will zb langsam 20 pixel hoch un dann schnell wieder runter wie geht das

alleinherrscher 2. Okt 2009 18:52

Re: konstante bewegung eines objekts durch tastendruck
 
@Draggen: Hast du auf deinem Formular auch einen Timer und einen Button erstellt? Und hast du das OnTimer Ereignis im Objektinspektor zugewiesen?

@Lee: Die 128 wird logisch (bit für bit) auf den Rückgabewert von GeyKeyState draufaddiert...Das liegt irgendwie an dem Intergerrückgabewert von GeyKeyState, der kann bei gedrückter Taste glaube ich -127 oder -128 sein...

Was ist denn bitte am "hüpfen" anders als am nach links laufen? Du ziehst einfach sagen wir mal von Button.Top 20 Pixel ab und addierst sie hinterher wieder drauf...


@Lee: Ihr stellt gerade in 3 oder 4 Threads ziemlich einfache anfängerfragen. Versucht doch mal ein bisschen eigeninitiative zu entwickeln!

Draggen 2. Okt 2009 18:57

Re: konstante bewegung eines objekts durch tastendruck
 
klar!!! ich hab nen timer nen button die procedure dem timer zugewiesen
also ich hoffe das ich das noch hinkriege ;)
aber ich weiß trotzdem nicht warum diese fehlermeldung auftaucht
hättest du sonst noch eine idee?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 Uhr.
Seite 1 von 3  1 23      

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