AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Progressbar rückwärts?

Ein Thema von Maurooon · begonnen am 12. Apr 2017 · letzter Beitrag vom 20. Apr 2017
Antwort Antwort
Seite 1 von 3  1 23      
Maurooon

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

Progressbar rückwärts?

  Alt 12. Apr 2017, 20:09
Delphi-Version: 5
Hey Leute,

ich würde gerne eine Art Tank für ein Spiel machen, der sich leert, wenn man Gas gibt. Wenn er leer ist, soll man sich nicht mehr bewegen können. Lässt sich sowas mit einer Progressbar lösen oder geht diese nicht rückwärts?

Hat jemand eine Idee wie ich einen Tank optisch realisieren kann, der nach sagen wir mal 10 Sekunden leer ist? Wenn das mit einer Progressbar gehen würde wäre das mega. Falls ja: kann man die Progressbar farblich noch anpassen?

Viele liebe Grüße
"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
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#2

AW: Progressbar rückwärts?

  Alt 12. Apr 2017, 20:10
Nimm doch ein TGauge und einen Timer?
  Mit Zitat antworten Zitat
Maurooon

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

AW: Progressbar rückwärts?

  Alt 12. Apr 2017, 20:18
Nimm doch ein TGauge und einen Timer?
Ja genau so etwas habe ich mir vorgestellt. Wusste nur nicht, dass es TGauge gibt. Kannst du mir noch sagen, wie man das benutzt? LG
"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
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: Progressbar rückwärts?

  Alt 12. Apr 2017, 20:43
Für so optische Spielereien nehme ich gerne die TQProgressBar
Bei ihr hat man mehrere Optionen für die Art der Darstellung, neben horizontal und vertikal gibt es noch Farbverläufe, anzeige der inaktiven Positionen. Man kann es ähnlich zu den LED-Anzeigen von den Kassettenrecordern aus vergangenen Zeiten machen ...

Funktioniert aber letztlich wie 'ne Progressbar. Min auf 0 setzen Max auf höchsten Füllstand, Position von Max langsam runter bis 0 setzen. Und schon hat man die gewünschte Tankleerung dargestellt.

'ne kleine "Vorschau" ist hier zu finden: TQProgressBar.PNG
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#5

AW: Progressbar rückwärts?

  Alt 12. Apr 2017, 20:44
z.B. so:
du packst eine TGauge auf dein Formular, einen TButton und einen TTimer.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Timer1.Enabled := False;
 Timer1.Interval := 100;
 Gauge1.Kind := gkVerticalBar;
 Gauge1.MaxValue := 100;
 Gauge1.MinValue := 0;
 Gauge1.ShowText := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if not Timer1.Enabled then
  Gauge1.Progress := Gauge1.MaxValue;

 Timer1.Enabled := not Timer1.Enabled;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Application.ProcessMessages;

 if Gauge1.Progress = Gauge1.MinValue then
  Timer1.Enabled := False
 else
  Gauge1.Progress := Gauge1.Progress - 1;
end;
Edit:
statt TGauge kannst du auch das nehmen was nahpets schreibt. Aber vom Prinzip her (Timer) sollte es gleich sein.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Progressbar rückwärts?

  Alt 12. Apr 2017, 21:36
Natürlich geht eine Progressbar auch rückwärts ... man fängt einfach bei 100% an und zählt dann runter, wobei der Balken kürzer wird.
$2B or not $2B
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Progressbar rückwärts?

  Alt 12. Apr 2017, 23:27
Und für die Farben kann man dann noch TProgressBar.State verwenden. Hier ist man zwar auf 3 Farben beschränkt, aber das sollte für "voll", "mittel", und "(fast) leer" ja eigentlich reichen.
  Mit Zitat antworten Zitat
Maurooon

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

AW: Progressbar rückwärts?

  Alt 14. Apr 2017, 14:29
Und für die Farben kann man dann noch TProgressBar.State verwenden. Hier ist man zwar auf 3 Farben beschränkt, aber das sollte für "voll", "mittel", und "(fast) leer" ja eigentlich reichen.
Wie genau funktioniert das?
"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
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#9

AW: Progressbar rückwärts?

  Alt 14. Apr 2017, 15:00
Delphi-Quellcode:
ProgressBar1.State := pbsNormal;

ProgressBar1.State := pbsError;

ProgressBar1.State := pbsPaused;
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Progressbar rückwärts?

  Alt 14. Apr 2017, 15:00
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.
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