Thema: FreePascal Progressbar rückwärts?

Einzelnen Beitrag anzeigen

Maurooon

Registriert seit: 7. Dez 2016
70 Beiträge
 
#11

AW: Progressbar rückwärts?

  Alt 14. Apr 2017, 14:11
Voraussetzung ist, dass auf deiner Form eine ProgressBar vorhanden ist die den Namen pb1 besitzt und du über einen Timer die Position der ProgressBar setzt. Dann funktioniert das in etwa so:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  pb1.Position := pb1.Position - 1; // Hiermit wird der Wert der Position pro Durchlauf des Timers um 1 verringert.
  case pb1.Position of
    0..10: pb1.State := pbsError;
    11..30: pb1.State := pbsPaused;
    31..100: pb1.State := pbsNormal;
  end;
end;
Die Geschwindigkeit in der die ProgressBar gegen 0 gehen soll kannst du, entweder über das Interval des Timers oder über den Wert den du von der aktuellen Position subtrahierst, beschleunigen oder verlangsamen.

Das oben ist auch nur ein Beispiel wie man es lösen könnte. Alternativ kannst du auch wirklich eine TGauge benutzen, da du mit der komplett frei herumhantieren kannst.

Oder du benutzt z.B. eine TPaintBox und zeichnest dir die ProgressBar komplett selbst. Eine neue Komponente von einer bestehenden abzuleiten will ich dir jetzt mal nicht zumuten.
Mhmmm... ProgressBar.state scheint es bei Lazarus nicht zu geben
"One of the basic rules of the universe is that nothing is perfect. Perfection simply doesn't exist... Without imperfection, neither you nor I would exist." - Stephen Hawking

Geändert von Maurooon (14. Apr 2017 um 14:18 Uhr)
  Mit Zitat antworten Zitat