In Lazarus Objekte mit Timer bewegen?
Hallo, ich programmiere gerade bisschen mit Lazarus.
Ich bin gerade dabei ein Fahrstuhl zu programmieren und bisher sieht das auch alles gut aus, ABER:
Folgendes Problem:
Ich würde gerne versuchen, dass der Fahrstuhl sich auch wirklich nach oben bewegt und nicht einfach in die Stockwerke springt (so wie ich es momentan habe).
Dafür brauche ich ein Timer, das weiß ich.
Aber wie sag ich dem Timer, wenn ich auf den Button für die 1.Etage drücke, dass er erstmal erst dann anfangen soll sich zu bewegen (Fahrstuhl ist ein Bild) und vorallem mein größstes Problem, wie sag ich ihm, dass er wieder anhalten soll? :D
Denn momentan fängt er zwar an wenn ich den Knopf drücke, aber dann geht er komplett aus dem Bild und ist weg...
Und genauso wie sag ich ihm wann er nach oben und wann nach unten soll?
Muss ich das jeweil bei jedem Button und bei jeder Etage neu eingeben?
Ich hoffe man kann meine Frage verstehen :)
1 Antwort
Wenn du das Event triggerst, welches den Fahrstuhl starten soll, musst du in dessen Handler den Timer starten, zuvor aber noch einen Zielwert setzen. Der Timer sollte nun je Intervall die Position des Fahrstuhls ändern und dabei prüfen, ob der Zielwert bereits erreicht wurde. Wenn Letzteres der Fall ist, musst du den Timer explizit stoppen.
Nutze die Dokumentation und schau hier für ein TTimer-Beispiel.
Vielen Danke nochmal, hab es jetzt endlich hinbekommen :)
Allerdings eine Frage noch, ich hab jetzt Türen eingebaut und Rahmen wo die Etage ist und alles. Aber die Buttons sind trotzdem noch über der Tür. Kann man die irgendwie unter eine Grafik packen? Also die Türen sind halt Bilder und die Buttons sollten gerne wenn die Türen zu gehen, weg sein
ja, aber wie und wo genau setze ich den Zielwert ein?