Ampel-Simulation
Das Formular zur Ampel-Simulation enthält eine Panel-Komponente, welche die drei Leuchten zu einer Gruppe zusammenfaßt. Jede Leuchte wird durch eine Shape-Komponente dargestellt, deren Shape-Attribut auf stCircle gesetzt wird. Die Farbe wählt man im Unterattribut Color des zusammengesetzten Attributs Brush aus.
Zum manuellen Schalten benutzt man eine Button-Komponente, die auf das OnClick-Ereignis reagiert. Die zugehörige Ereignisprozedur enthält den Algorithmus zum Umschalten zwischen den Ampelphasen.
Mit Hilfe einer Timer-Komponente kann die Umschaltung automatisiert werden. Daran schließt sich die Frage an, wie unterschiedliche Phasenlängen realisiert werden können. Eine mögliche Lösung gibt der Quelltext wieder.
Bezeichnungsregel
Die Bezeichnung von Komponenten vereinfacht sich erheblich, wenn man sie nach folgender Regel vornimmt: jedem Namen wird der Anfangsbuchstabe des zugehörigen Komponententyps vorangestellt. Die Gelb-Leuchte erhält demnach den Namen SGelb, wobei S der Anfangsbuchstabe des Komponententyps Shape ist. Der Schalter erhält den Namen BSchalten, weil B der Anfangsbuchstabe des Typs Button ist. Die Ampel-Unit erhält den Namen UAmpel. Die Ausnahme dieser Regel bildet die Projektdatei, welche den Namen Ampel erhält.
Zustandsdiagramm
Eine Ampelschaltung lässt sich einfach in einem Zustandsdiagramm modellieren. Die Umsetzung des Zustandsdiagramms in ein Simulationsprogramm erfolgt durch die Nutzung einer Variablen, welche den aktuellen Zustand repräsentiert. Diese Variable nimmt zyklisch vier verschiedene Werte an, die den jeweiligen Zuständen entsprechen.
Mit der zustandsorientierten Modellierung werden typischerweise endliche Automaten beschrieben. Da Variablen im Grunde nichts anderes als Programmzustände beschreiben und die Wertzuweisung in imperativen Programmiersprachen im engeren Sinne eine Zustandsänderung darstellt, ist die Verwendung von Variablen immer als zustandsorientierte Modellierung zu verstehen.