Autor Beitrag
LZSyalos
Hält's aus hier
Beiträge: 1



BeitragVerfasst: So 09.10.11 17:34 
Hallo DelphiForum!
In der Schule haben wir neuerdings Informatik-Unterricht und wir benutzen Delphi6, um diverse Simulationen zu erzeugen, wie zum Beispiel eine Ampelschaltung und Tag/Nacht-Simulatoren.

Wir haben bisher einfachste Befehle wie "bt1.Color:=clred" gelernt und tasten uns gerade an "If/Then/Else" ran.

Außerdem haben wir die Aufgabe bekommen in Delphi6 eine Fahrbahn zu designen, auf der sich ein Auto bewegt.

Nun meine Frage:
Welchen Befehl muss ich eingeben, um mit einem einzigen Button das Auto dazuzubringen sich immer ein Feld weiter nach rechts zu bewegen, und wo und wie füge ich einen Timer ein, damit das Auto sich konstant nach rechts bewegt?

Danke und Grüße, LXSyalos!

PS:
Die Objekte heißen:

btButton = Button, um das Auto zu bewegen
ImAuto = Auto-Grafik, die bewegt werden soll
PFahrbahn = Fahrbahn, auf der das Auto fahren soll
PLine1,2,3 = Die weißen Linien auf der Fahrbahn :)

Timer sollte, wenn nötig TTimer heißen.


Zuletzt bearbeitet von LZSyalos am Mo 10.10.11 16:47, insgesamt 1-mal bearbeitet
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: So 09.10.11 17:39 
Ein Timer führt nach einer definierten Zeit immer dieselbe Methode aus. Also solltest du eine Methode schreiben, die das Auto um nur einen Schritt bewegt. Diese Methode weist du dem OnTimer-Ereignis des Timers zu. Nun wird das Auto immer um einen Schritt bewegt, wenn der Timer das Ereignis auslöst (Zeit steuerbar über Interval (gemessen in Millisekunden)). Für das Auto musst du dir die Position in einer Variablen merken. Mit dem OnClick-Ereignis des Buttons wird der Timer gestartet (Enabled:= True).

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)

Für diesen Beitrag haben gedankt: LZSyalos
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mo 10.10.11 06:58 
Um das Auto zu bewegen musst du verändern:

ausblenden Delphi-Quelltext
1:
2:
ImAuto.Left
ImAuto.Top


also z.B. um eins nach oben bewegen:
ausblenden Delphi-Quelltext
1:
ImAuto.Top := ImAuto.Top-1;					


Jedesmal wenn du um 1 verschoben hast, musst du warten, damit das Bild erstmal dargestellt werden kann (dein Rechner ist sonst viel zu schnell und verschiebt das Auto innerhalb von Millisekunden sonstwohin). Dies geht z.B. mittels Timer. Dessen Funktion wird ja immerwieder aufgerufen (kennst du schon von der Ampelsteuerung).

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)

Für diesen Beitrag haben gedankt: LZSyalos