Entwickler-Ecke
Sonstiges (Delphi) - fahrendes auto
lachgas - So 11.01.09 12:34
Titel: fahrendes auto
hallo.
für meine projektarbeit in der schule, will ich ein auto auf der form zum fahren bringen.
zuerst will ich, dass das auto mit canvas gezeichnet wird. soweit bin ich schon. nun will ich, das über einen weitern button, die bewegung aktiviert wird, dass heißt, dass nachdem der button gedrückt wurde, die zeichnung auf die steuertasten reagiert und sich bewegt. aber an diesem schritt komme ich nicht mehr weiter. könnte mir da von euch bitte einer helfen?
mfg
Tilo - So 11.01.09 12:43
Um auf Tastatureingaben regieren zu können guck Dir mal die Events Onkey[Press, Up Down] der Form an.
Mit Hilfe deines "Aktivieren Buttons" setzt Du eine boolsche Variable auf true oder false. Zum Anfang reicht eine globale Variable. Welche Taste gedrückt wird werte in der Procedure für das Tastenevent aus. Entsprechend der Taste dann das Objekt verschieben.
lachgas - So 11.01.09 12:54
okay...und wie würde das in der unit aussehen?
mit dem boolean komme ich nämlich nicht klar, bzw kann mir das nicht vorstellen.
so sieht das momentan bei mir aus!!!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37:
| procedure TForm1.Button3Click(Sender: TObject);
procedure zeichnen(k,l:Integer); begin with canvas do begin pen.width:=2; pen.Color:=clblue; brush.Color:=clblue; ellipse((k+190)-2,(l+275)-2,(k+190)+2,(l+275)+2); end; end;
begin case Key of VK_LEFT: begin k:=k+10; l:=l+2; zeichnen(k,l); end; VK_RIGHT: begin k:=k+10; l:=l+2; zeichnen(k,l); end; VK_UP: begin k:=k+10; zeichnen(k,l); end; end;
end;
end. |
ich dachte mir halt auch, dass ich sobald ich ne variable verändert habe, über ne procedure das gleich wieder zeichnen lasse. natürlich fehlt hier noch der teil, in dem die alte zeichnung gelöscht wird.
Moderiert von
Christian S.: Delphi-Tags hinzugefügt
mkinzler - So 11.01.09 13:10
Verwende bitte Code-Tags, dann ist der Code besser lesbar
Mache aus Zeichnen eine Methode und rufe diese dann in Paint() auf.
lachgas - So 11.01.09 13:20
was ist den methode, bzw wie stelle ich eine methode her?
mkinzler - So 11.01.09 13:22
Eine Methode ist Teil einer Klasse:
Delphi-Quelltext
1:
| procedure TForm1.zeichnen(k,l:Integer); |
Jakob_Ullmann - So 11.01.09 14:49
Ich würde dir bei sowas nicht die OnKeyDown empfehlen. Nimm lieber einen Timer, der dann abfragt:
Delphi-Quelltext
1: 2: 3: 4: 5:
| if GetAsyncKeystate(VK_LEFT) < 0 then begin end; |
Ansonsten kann es etwas länger dauern, bis sich das Auto bewegt.
Zu einer Methode: In Delphi wird zwischen Prozeduren und Funktionen unterschieden. Bei einer Prozedur wird nur etwas ausgeführt, bei einer Funktion wird zusätzlich noch ein Wert zurückgegeben.
lachgas - Mi 14.01.09 17:58
jakob ich danke dir...das hat wunderbar funktioniert.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!