Einzelnen Beitrag anzeigen

Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Gauge auf Zeit + Herunterfahren

  Alt 3. Apr 2007, 13:31
Hallo!

Hier mal ein Denkanstoß, wobei ich jetzt keine Diskussionen über die EXAKTE Genauigkeit auslösen möchte Für den Zweck müsste es reichen... GetTickCount() rechnet übrigens in Milisekunden. Die Onlinehilfe leistet dir vielleicht auch noch einen Beitrag.
2. Möglichkeit wäre einen Timer zu nehmen mit Intervall = 1000 (= 1 Sekunde). GaugeMax auf gewünscht Sekunden setzen und beim OnTimer-Event Gauge1.Progress um eines erhöhen. Dann im gleichen Event schauen ab PercentDone = 100 -> Timer.enabled auf false setzen Windows herunterfahren.

Die erste Möglichkeit habe ich Dir mal schnell geschrieben:

Delphi-Quellcode:
var
    sekunden : Integer;
    aktuell : Integer;
[...]

  sekunden := 3; // Anzahl Sekunden zum zählen
  aktuell := gettickcount(); // Zeitstempel in Sekunden

  Gauge1.MaxValue := aktuell + (Sekunden*1000); // Ende der Berechnung
  Gauge1.MinValue := aktuell; // Aktueller Zeitstempel

  repeat
    Gauge1.Progress := gettickcount(); // Gauge brechnet aus dem max. und dem min. Wert die Prozente automatisch, wenn der aktuelle Wert zugewiesen wird (gauge1.percentDone, s. unten).
    Application.ProcessMessages; // sonst wirds nicht angezeigt...
  until gauge1.PercentDone = 100; // Fertig, wenn 100% erreicht

  // Hier Windows runterfahren...

Wenn Du alles in Sekunden umrechnest, dann ist die Animation nicht so "flüssig", man kann aber die Sekunden auch visuell wahrnehmen - auch nicht schlecht

Grüsse,

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat