Robię symulację sygnalizacji świetlnej.
Mam teraz problem, ponieważ, chcę zrobić przejścia, które się pojawiają, jeśli w checkboxie jest zaznaczona opcja i sygnalizator istnieje.
Problem polega na tym, że:
- mimo, że opcja jest zaznaczona, po dodaniu sygnalizatora nie pojawia się przejście.
- po usunięciu sygnalizatora przejście zostaje.
- po wyłączeniu opcji sygnalizacji dla pieszych ona nie znika
Problem nie dotyczy sygnalizatora z numerem jeden, ponieważ on zawsze istnieje.
Kod, którym próbuję coś zdziałać:
procedure TSygnalizacja.przejsciaClick(Sender: TObject);
begin
przramka1.Visible:= not przramka1.Visible;
przczerwone1.Visible:= not przczerwone1.Visible;
przzielone1.Visible:= not przzielone1.Visible;
if (a>=2) then
begin
przramka2.Visible:= True;
przczerwone2.Visible:= True;
przzielone2.Visible:= True;
end;
if (a>=3) then
begin
przramka3.Visible:= True;
przczerwone3.Visible:= True;
przzielone3.Visible:= True;
end;
if (a>=4) then
begin
przramka4.Visible:= True;
przczerwone4.Visible:= True;
przzielone4.Visible:= True;
end;
if (a<4) then
begin
przramka4.Visible:= False;
przczerwone4.Visible:= False;
przzielone4.Visible:= False;
end;
if (a<3) or (ramka3.Visible=False) then
begin
przramka3.Visible:= False;
przczerwone3.Visible:= False;
przzielone3.Visible:= False;
end;
if (a<2) then
begin
przramka2.Visible:= False;
przczerwone2.Visible:= False;
przzielone2.Visible:= False;
end;
end;
gdzie:
a - ilość sygnalizacji normalnych
przramka - przejście ramka
przczerwone - czerwone światło
przzielone - zielone światło.
Proszę o pomoc.
PS W a<3 jest testowy kod, który też nie działa.
@Edit: 13:58 Sygnalizację dla pieszych idzie wyłączyć tylko, jeśli jest jeden sygnalizator.