du solltest die labels nur als Output nehmen und nicht wieder irgendwie darauf zugreifen.
Nimm EINE Variable, in der du die Zahl der Sekunden speicherst.
die erhöhst du dann jede Sekunde (per Timer) um 1. //ACHTUNG: DER TIMER IST UNGEAU
dann machst du einen Ausgabelabel, nicht drei, der alles auf einmal ausgibt. Ungefähr so:
Delphi-Quellcode:
var
secounds:integer
[...]
function myinttostr(i:integer):string;
begin
result:=inttostr(i);
if length(result)=1 then
result:='0'+result;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
sec,min,hr,anzahlbeeps:integer;
begin
inc(secounds);
if (secounds mod 5) = 0 then
beep;
anzahlbeeps:=secounds div 5;
sec:=secounds mod 60;
min:=secounds div 60;
hr:=min div 60;
min:=min mod 60;
zeitausgabelabel.caption:=inttostr(hr)+':'+myinttostr(min)+':'+myinttostr(sec);
anzahlbeepsausgabelabel.caption:=inttostr(anzahlbeeps);
end;