Witam, mam problem, zrobilem do szkoly takie stoperki:

USES CRT,DOS;

VAR
h,m,s,ms:word;
t1,t2,t3,t4:longint;
p,ta,c12:longint;
zn:char;
po:boolean;
mx,my:word;

procedure ramka(szer, wys: Integer);
var i:integer;
begin
write (#218);
for i:= 1 to szer-2 do write (#196);
write(#191);
for i:=1 to wys-2 do write(#179,#179:szer-1);
write(#192);
for i:=3 to szer do write(#196);
write(#217);
end;

procedure okno(i:integer);
begin
case i of
1: window((mx div 4)-4,(my div 4),(mx div 4)+10,(my div 4));
2: window(mx-(mx div 4)-6,my div 4,mx-(mx div 4)+10,my div 4);
3: window((mx div 4)-4,my-(my div 3),(mx div 4)+10,my-(my div 3));
4: window(mx-(mx div 4)-6,my-(my div 3),mx-(mx div 4)+10,my-(my div 3));
end;
end;

function czas(cz:longint; nr_okna:byte; zn:char):longint;
var
t:longint;
ab:char;
h,m,s,ms:word;
a,b,c,d,p,ta:longint;
begin
t:=0;
okno(nr_okna);
repeat
clrscr;
gettime(h,m,s,ms);
p:=ms+1000*(s+60*(m+60*h));
t:=p-cz;
ta:=t;
d:=ta mod 1000;
d:=d div 10;
ta:=ta div 1000;
c:=ta mod 60;
ta:=ta div 60;
b:=ta mod 60;
ta:=ta div 60;
a:=ta;
if a<10 then write('0',a,':') else write(a,':');
if b<10 then write('0',b,':') else write(b,':');
if c<10 then write('0',c,':') else write(c,':');
if d<10 then write('0',d) else write(d);
if keypressed then
begin
zn:=readkey;
if ab=zn then po:=false else
break;
end
else delay(10);
until ab=zn;
czas:=t;
end;

BEGIN
mx:=lo(windmax);
my:=hi(windmax);

clrscr;
window(1,1,(mx div 2)-1,(my div 2)-1);
textcolor(blue);
ramka((mx div 2)-1,(my div 2)-2);
window((mx div 2)+1,1,mx-1,(my div 2)-1);
textcolor(yellow);
ramka((mx div 2),(my div 2)-2);
window(1,(my div 2)-1,(mx div 2)-1,my);
textcolor(red);
ramka((mx div 2)-1,(my div 2)-2);
window((mx div 2)+1,(my div 2)-1,mx-1,my);
textcolor(green);
ramka((mx div 2),(my div 2)-2);

    textcolor(white);
    okno(1);
    write('00:00:00:00');
    okno(2);
    write('00:00:00:00');
    okno(3);
    write('00:00:00:00');
    okno(4);
    write('00:00:00:00');

repeat
if (keypressed) and (zn=#0) and (po) then
begin
zn:=readkey;
case zn of
#59: begin gettime(h,m,s,ms); c12:=ms+1000*(s+60*(m+60h))-t1;
t1:=czas(c12,1,#59); end;
#60: begin gettime(h,m,s,ms); c12:=ms+1000
(s+60*(m+60h))-t2;
t2:=czas(c12,2,#60); end;
#61: begin gettime(h,m,s,ms); c12:=ms+1000
(s+60*(m+60h))-t3;
t3:=czas(c12,3,#61); end;
#62: begin gettime(h,m,s,ms); c12:=ms+1000
(s+60*(m+60*h))-t4;
t4:=czas(c12,4,#62); end;
end;

  end else begin zn:=readkey;  po:=true end;

until zn=#27;

END.

F1-pierwszy stoper
...
F4-czwarty stoper
Esc-wyjscie z programu

Problem polega na tym, ze trzeba wcisnac 2 razy F1 lub F2 aby przejsc do innego stopera, a zalezy mi aby po jednym wcisnieciu przechodzilo sie do innego stopera lub zatrzymywalo aktualny.

Drugi problem to lecace setne sekundy. Ida mniejwiecej do 12 a potem skacza do 97 i tak caly czas.

Jesli ktos jest w stanie mi pomoc to bardzo prosze o pomoc

Z gory dzieki