Well, again from my current school project.
I've been told to make a traffic light that changes automatically, and you should be able to specify how many times the cycle should run.
I have my working version, but I just want to know if there's a shorter way to do this?
Pre-note: "siklus(se)" is cycles, "Teller" is counter.
And, we haven't learned of loops yet, so I can't use them.
var
frmRobot: TfrmRobot;
iRTeller, iTeller, iSiklusse : integer;
{ ... }
procedure TfrmRobot.bmbBeginClick(Sender: TObject);
begin
iSiklusse := sedSiklus.Value;
tmrRobot.Enabled := True;
bmbBegin.Enabled := False;
bmbRetry.Enabled := True;
end; { proc:Begin }
procedure TfrmRobot.tmrRobotTimer(Sender: TObject);
begin
if iTeller < iSiklusse then
begin
Inc(iRTeller, 1);
if iRTeller = 1 then
begin
shpGroen.Visible := True;
shpOranje.Visible := False;
shpRed.Visible := False;
end { if:1 }
else if iRTeller = 2 then
begin
shpGroen.Visible := False;
shpOranje.Visible := True;
shpRed.Visible := False;
end { else if:2 }
else if iRTeller = 3 then
begin
shpGroen.Visible := False;
shpOranje.Visible := False;
shpRed.Visible := True;
end { else if:3 }
else
begin
shpGroen.Visible := False;
shpOranje.Visible := False;
shpRed.Visible := False;
Inc(iTeller, 1);
iRTeller := 0;
end; { else }
end; { if:iSiklus }
end; { proc:Timer }
procedure TfrmRobot.FormActivate(Sender: TObject);
begin
iRTeller := 0;
bmbRetry.Enabled := False;
end; { proc:FormAcrivate }
procedure TfrmRobot.bmbRetryClick(Sender: TObject);
begin
iTeller := 0;
iRTeller := 0;
iSiklusse := 0;
bmbBegin.Enabled := True;
end;
end. { unit }
Thanks again.