unit AmpelMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TAmpelzustand = (azRot, azGelbRot, azGruen, azGelb);
TFormAmpel =
class(TForm)
shpRot: TShape;
shpGelb: TShape;
shpGruen: TShape;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private-Deklarationen }
FZustand: TAmpelzustand;
public
{ Public-Deklarationen }
end;
var
FormAmpel: TFormAmpel;
implementation
{$R *.dfm}
procedure TFormAmpel.Timer1Timer(Sender: TObject);
begin
if FZustand < High(TAmpelzustand)
then
inc(FZustand)
else //hier ist das einzige else
FZustand := Low(TAmpelzustand);
shpRot.Visible := FZustand
in [azRot,azGelbRot];
shpGelb.Visible := FZustand
in [azGelb,azGelbRot];
shpGruen.Visible := FZustand = azGruen;
end;
end.