Licznik cykli w Delphi

0

Witam.
Potrzebuję napisania programu, który będzie załączał i wyłączał po kolei 4 CheckBoxy nieprzerwanie i zliczał (sumował) cykle wykonania jednego tzw. kroku (załączenie po kolei 4 CheckBoxy = 1 cykl). Ponadto program musiałby przy zapaleniu 4 CheckBoxy np od lewej do prawej strony, cykle jednego kroku dodawać , a jak zmieniłbym zapalanie od prawej do lewej to od posiadanej wartości cykle odejmować. Samo włączanie w wyłączanie oraz zmianę kierunku udało mi sie zrobic ( to wszysto umieszczone jest w Timerze) natomiast mam problem z tym licznikiem, a zrobiłem tak:

var
ms,:integer;

begin

if Label24.Caption = 'Lewo' then

begin
ms:=StrToInt(SpinEdit1.Text);

begin

cb1.Checked:=true ;
sleep(ms);
cb1.Checked:=false ;
sleep(ms);
cb2.Checked:=true ;
sleep(ms);
cb2.Checked:=false ;
sleep(ms);
cb3.Checked:=true ;
sleep(ms);
cb3.Checked:=false ;
sleep(ms);
cb4.Checked:=true ;
sleep(ms);
cb4.Checked:=false ;
sleep(ms);

end;

end else
begin

if label24.caption = 'Prawo' then
begin

ms:=StrToInt(SpinEdit1.Text);

begin

cb4.Checked:=true ;
sleep(ms);
cb4.Checked:=false ;
sleep(ms);
cb3.Checked:=true ;
sleep(ms);
cb3.Checked:=false ;
sleep(ms);
cb2.Checked:=true ;
sleep(ms);
cb2.Checked:=false ;
sleep(ms);
cb1.Checked:=true ;
sleep(ms);
cb1.Checked:=false ;
sleep(ms);

end;

end;

end;

end;

0

ja bym sprobowal dodac zmienna logiczna i w zaleznosci od niej zwieksza lub zmniejszal licznik - kod nietestowany napisany na szybko

var
ms,:integer;
log: boolean;
licznik: integer;

begin

if Label24.Caption = 'Lewo' then


begin
ms:=StrToInt(SpinEdit1.Text);

begin

cb1.Checked:=true ;
sleep(ms);
cb1.Checked:=false ;
sleep(ms);
cb2.Checked:=true ;
sleep(ms);
cb2.Checked:=false ;
sleep(ms);
cb3.Checked:=true ;
sleep(ms);
cb3.Checked:=false ;
sleep(ms);
cb4.Checked:=true ;
sleep(ms);
cb4.Checked:=false ;
sleep(ms);
if log = true then
inc(licznik)

end;


end else
begin



if label24.caption = 'Prawo' then
begin

ms:=StrToInt(SpinEdit1.Text);

begin

cb4.Checked:=true ;
sleep(ms);
cb4.Checked:=false ;
sleep(ms);
cb3.Checked:=true ;
sleep(ms);
cb3.Checked:=false ;
sleep(ms);
cb2.Checked:=true ;
sleep(ms);
cb2.Checked:=false ;
sleep(ms);
cb1.Checked:=true ;
sleep(ms);
cb1.Checked:=false ;
sleep(ms);
if (log = false and log > 1) then //zmienna log powinna byc wieksza od 1 abys nie mial cykli ujemnych :)
Dec(licznik)


end;


end;

end;

end; 

1 użytkowników online, w tym zalogowanych: 0, gości: 1