Hi klimpel,
bitte verwende in Zukunft die [ delphi]-Tags. Damit wird der Code übersichtlicher.
Der Fehler ist leicht gefunden. Sehen wir uns das signifikante Codestück an:
Delphi-Quellcode:
If a = 1 then
begin
rot.Visible:=true;
grün.Visible:=false;
a:=2;
end;
If a = 2 then
begin
rot.visible:=false;
grün.Visible:= true;
a:=1;
end;
Soll die Ampel rot werden (a = 1), so zeigst du rot an, blendest grün aus, und setzt a auf 2. Bei der nächsten Abfrage trifft wieder zu, also wird grün wieder eingeblendet. Die Lösung ist einfach: ein else:
Code:
If a = 1 then
begin
rot.Visible:=true;
grün.Visible:=false;
a:=2;
end [color=red]else[/color] If a = 2 then
begin
rot.visible:=false;
grün.Visible:= true;
a:=1;
end;
Greetz
alcaeus
[edit]Verf****e BB-Tags
[/edit]