Thema: eine Uhr

Einzelnen Beitrag anzeigen

Benutzerbild von hanselmansel
hanselmansel

Registriert seit: 23. Feb 2005
Ort: Kaiserslautern
279 Beiträge
 
Delphi 2009 Enterprise
 
#8

Re: eine Uhr

  Alt 20. Okt 2005, 21:05
HiHo,

wenn ich das recht sehe, könntest du Schleifen verschachteln.
Delphi-Quellcode:
For min := 0 to 59 do
  Begin
  For sec := 0 to 59 do
    Begin
    Sekundenzeiger.Bewege;
    Sleep(1000);
    blablabla...
    End;
  Minutenzeiger.Bewege;
  End;
Mit einer weiteren Schleife ließe sich dann der Stundenzeiger realisieren. Das Problem wird sein, dass dein Programm damit vollauf ausgelastet ist. Ich lege dir daher die Komponente TTimer (findet sich in der Rubrik "System") nahe. Im OI kannst du dort auch ein Intervall einstellen, und es gibt das OnTimer-Event. (Also sowas wie ein ButtonClick, nur von der Uhr gesteuert.) Mit drei Timern (einfach auf dem Formular plazieren, und untersch. Intervalle einstellen) kannst du ganz leicht die Sekunden-, Minuten- und Stundenzeiger weiterrücken lassen (Wobei das Weiterrücken des Sekundenzeigers im OnTimer-Event des 1000ms-Timers realisiert wird, das Weiterrücken des Minutenzeigers bei OnTimer des 60000ms-Timers und so weiter, und so weiter).

Das Tolle dabei ist: Dein Programm wird auf Mausklicks reagieren können, weil der Nachrichtenstapel von Windows abgearbeitet wird.
Das Doofe dabei ist: Für richtige Zeit -messungen oder -anzeigen ist TTimer nicht wirklich präzise genug.

Verbesserungen könntest du dann noch machen, indem du dir per Time die richtige Zeit besorgst. (Aber da die Funktion ja in Englisch ist, dürft ihr sie wahrscheinlich noch nicht benutzen. )

MfG,

hanselmansel
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.
  Mit Zitat antworten Zitat