Hallo Avicenna,
ich habe einfach deinen Quellcode genommen und ihn ein wenig korregiert.
Ich habe die Funktion zwar nicht getestet, aber hoffe, dass sie so funktioniert.
Was ich neu eingefügt oder verändert habe, habe ich kommentiert.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if stunde < 10
then
ausgabestd:='
0'+inttostr(stunde)
else // wenn's nicht kleiner 10 ist, ist es größer oder gleich 10
ausgabestd:=inttostr(stunde);
if minute < 10
then
ausgabemin:='
0'+inttostr(minute)
else
ausgabemin:=inttostr(minute);
if sekunde < 10
then
ausgabesek:='
0'+inttostr(sekunde)
else
ausgabesek:= inttostr(sekunde);
sekunde := sekunde + 1;
if sekunde > 59
then
begin // Schreibe _niemals_ ein ; hinter ein begin. Das gehört da einfach nicht hin!
sekunde:=0;
minute:=minute+1;
image1.invalidate;
end;
if minute > 59
then
begin
minute:=0;
stunde:=stunde+1;
end;
if stunde > 59
then
stunde:=0;
label1.caption := '
Zeit:'+ausgabestd+'
:'+ausgabemin+'
.'+ausgabesek;
image1.canvas.ellipse(10+6*sekunde,10,15+6*sekunde,15);
if sekunde >= 59
then
Image1.Canvas.FillRect(Rect(0, 0, Image1.Picture.Width, Image1.Picture.Height));
// Hierzu folgende Erklärung:
// Die Methode FillRect füllt ein angegebenes Rechteck mit der in clBrush angegebenen Farbe (Standard ist imho weiß)
// Das zu füllende Rechteck Legen wir mit der Funktion Rect fest. Dieser Funktion müssen wir die Koordinaten
// der Eckpunkte oben-links und unten-rechts angeben.
// Oben-links ist ganz einfach. Da es der Ursprung ist, sind die Koordinaten 0 und 0.
// Unten-rechts Sind die Koordinaten die Breite des Bildes und die Höhe des Bildes (Wir wollen ja die ganze Fläche füllen).
// Die Breite bekommen wir mit Image1.Picture.Width heraus. Die Höhe äquivalent dazu mit Image1.Picture.Height
end
end;
EDIT:
Noch was vergessen:
Du solltest deinen Quellcode ein wenig formatieren. Vorallem die Einrückung macht das ganze wesentlich übersichtlicher. Sonst blickst du vorallem bei größeren Mengen an Quellcode schnell überhaupt nicht mehr durch.