Ampelsimulation in Lazarus?

1 Antwort

(...) jedoch funktioniert die Implementierung der drei senkrechten Kreise nicht so wie gewünscht.

Wenn die Kreise vertikal untereinander positioniert werden sollen, dann musst du beim Zeichnen auch die Position auf der y-Achse verändern. Aktuell zeichnest du den Kreis innerhalb der TAmpel.ZeichneKreis-Prozedur jedesmal an der selben Position.

Du könntest der Prozedur einen weiteren Parameter spendieren (z.B. für den Index, der angibt, der wievielte Kreis gezeichnet werden soll), anhand dessen du die y1- und y2-Argumente von Canvas.Ellipse berechnest. Die Berechnung für y1 hast du ja bereits in ZeichneAmpelClick und für y2 genügt es, den Kreisdurchmesser aufzurechnen.

Für Vorschläge/Tipps der Verbesserung stehe ich Ihnen gerne offen.

Wirf den Code, den du nicht verwendest (z.B. ZeichneAmpelClick) raus und binde möglichst alle Prozeduren (wie Wait) ruhig an die Forminstanz TAmpel.