Ich habe in einem anderen Thread hier erklaert wie man eine Ampel repraesentiert.
Delphi-Quellcode:
type
TAmpelZustand = (azRot, azRotGelb, azGruen, azGelb);
Man sollte nun eine Zustandsvariable einrichten die man im Timer weiterschaltet (von azGelb auf azRot zuruecksetzen natuerlich). Das ist die eigentliche Ampel. Vom Zustand der Ampel leitet man nun die visuelle Repraesentation ab.
Delphi-Quellcode:
var
Ampel: TAmpelZustand;
...
begin
// immer schoen Pascal ausnutzen
// den kleinsten und groessten Wert einer Enumeration kann man per Low bzw. High bestimmen
if Ampel = High(TAmpelZustand) then
Ampel := Low(TAmpelZustand)
else
// Succ gibt das naechste Element einer Enumeration
Ampel := Succ(Ampel);
case Ampel of
azRot:
begin
// Darstellung selber machen
end;
...