Delphi-Quellcode:
type
TAmpelPhase = (
apRot = 0,
apRot2 = 1,
apGelb = 2,
apGruen = 3
apGruen2 = 4);
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
AktuelleAP: TAmpelPhase;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
AktuelleAP := apRot;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
case AktuelleAP of
apRot, apRot2:
begin
Caption := 'Rot';
AktuelleAP := apRotGelb;
end;
apGelb:
begin
Caption := 'Gelb';
AktuelleAP := apRot;
end;
apGruen, apGruen2:
begin
Caption := 'Grün';
AktuelleAP := apGelb;
end;
end;
end;
So sind Grün und Rot jeweils doppelt so lang wie Gelb. Das kannst du natürlich noch beliebig erweitern.