Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Image wieder blank machen (https://www.delphipraxis.net/102458-image-wieder-blank-machen.html)

Progman 29. Okt 2007 19:40

Re: Image wieder blank machen
 
mod gibt bei einer Division den Rest zurück, während div den ganzzahligen Teil zurückliefert.
Beispiel: 13 mod 5 ergibt 3 (2 mal 5 ist 10, Rest 3), währen 13 div 5 2 ergibt (also nur den ganzzahligen Anteil)

Hador 29. Okt 2007 19:59

Re: Image wieder blank machen
 
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.

Avicenna 29. Okt 2007 20:14

Re: Image wieder blank machen
 
Zitat:

Zitat von Avicenna hat vor Hadors Beitrag folgendes geschrieben

DeddyH'S Vorschlag funktioniert :)

Kann mir nun noch jemand ein Programm programmieren, das mir verrät, wie ich meiner Lehrerin sage, dass ich weiß, was mod ist? Von Succ, div und '%.2d:%.2d:%.2d' ganz abgesehen :P


Auf jeden Fall mal ein großes Dankeschön an alle, die versucht haben, mir zu helfen :thumb:

Hador, dich schickt der Himmel! Es funktioniert, enthält nur mir bekannte Dinge und ist einfach super erklärt! Vielen Dank für die Mühe!

Wobei allen anderen selbstverständlich auch mein Dank gilt.


Gruß,
Avicenna


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz