Hi,
dein Problem lässt sich gaaaanz einfach auch mit deinem Code lösen:
Du musst nur mal Klammern ( ) verwenden in deinen If-Abfragen...
Beispiel für deine erste Zeile:
if (Form1.sh_red.visible=true) and (Form1.sh_yellow.visible=true) and (Form1.sh_green.visible=false)
Ansonsten kann das Ganze nicht gehen da Delphi das nicht so interpretiert wie du es gedacht hast....
Außerdem würd ich den Code etwas besser strukturieren und einrücken, um ihn lesbarer zu machen.
Beispiel:
Delphi-Quellcode:
if (Form1.sh_red.visible=true) and (Form1.sh_yellow.visible=true) and (Form1.sh_green.visible=false) then
begin
//Ampel von Rot/Gelb auf Grün
Form1.sh_red.visible:=false;
Form1.sh_yellow.visible:=false;
Form1.sh_green.visible:=true;
end
else if ...
MfG Benedikt