Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Prozentsatz in einer ProgressBar anzeigen? (https://www.delphipraxis.net/147092-prozentsatz-einer-progressbar-anzeigen.html)

AlexII 1. Feb 2010 19:06


Prozentsatz in einer ProgressBar anzeigen?
 
Hallo,
hab schon nach einer Lösung gesucht, aber kann trotzdem nicht verstehen, wie ich folgendes in den ProgressBars anzeigen soll:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption:=FloatToStr(RundeAufStelle(StrToFloat(Button3.Caption)*100/summe, 1));
Label2.Caption:=FloatToStr(RundeAufStelle(StrToFloat(Button4.Caption)*100/summe, 1));
Label3.Caption:=FloatToStr(RundeAufStelle(StrToFloat(Button5.Caption)*100/summe, 1));
Label4.Caption:=FloatToStr(RundeAufStelle(StrToFloat(Button6.Caption)*100/summe, 1));
Label5.Caption:=FloatToStr(RundeAufStelle(StrToFloat(Button7.Caption)*100/summe, 1));
Label6.Caption:=FloatToStr(RundeAufStelle(StrToFloat(Button8.Caption)*100/summe, 1));
end;
Also anstatt Labels möchte ich ProgressBar setzen. Wer hilft mir dabei?

himitsu 1. Feb 2010 19:12

Re: Prozentsatz in einer ProgressBar anzeigen?
 
Nimm ein TStaticText (mit TLabel geht sowas nicht), lege es über die ProgressBar, mache es durchsichtig und trage dort deine Prozente ein

Lumpiluk 1. Feb 2010 19:14

Re: Prozentsatz in einer ProgressBar anzeigen?
 
TGauge (unter Beispiele) berechnet automatisch den Prozentsatz. Sieht allerdings auch nicht so schön aus.

AlexII 1. Feb 2010 19:20

Re: Prozentsatz in einer ProgressBar anzeigen?
 
ProgressBar und Gauge müssen ja Integer Werte haben und ich habe Float... wie wandele ich Float nach Integer? :gruebel: Ja das klingt nicht logisch, aber wie geht das dann?

himitsu 1. Feb 2010 19:24

Re: Prozentsatz in einer ProgressBar anzeigen?
 
Runden? (Round, Trunc, .....)

Matze 1. Feb 2010 19:25

Re: Prozentsatz in einer ProgressBar anzeigen?
 
Zitat:

Zitat von AlexII
ProgressBar und Gauge müssen ja Integer Werte haben und ich habe Float... wie wandele ich Float nach Integer? :gruebel: Ja das klingt nicht logisch, aber wie geht das dann?

Überlege doch mal selbst. Wie macht man aus einer Kommazahl eine Ganzzahl? Man muss sie runden und da gibt es massig Funktionen wie Delphi-Referenz durchsuchenRound, Delphi-Referenz durchsuchenTrunc, Delphi-Referenz durchsuchenFloor, ...

Edit: Ich muss mich kürzer fassen, sonst bin ich immer der langsamste beim Schreiben. *g*

AlexII 1. Feb 2010 19:26

Re: Prozentsatz in einer ProgressBar anzeigen?
 
Ne wie geht das hier?

Delphi-Quellcode:
Gauge1.Progress:=RundeAufStelle(StrToFloat(Button3.Caption)*100/summe, 1);
Bekomme folgende Fehlermeldung:

Zitat:

[Fehler] Unit1.pas(117): Inkompatible Typen: 'Integer' und 'Double'

toms 1. Feb 2010 19:28

Re: Prozentsatz in einer ProgressBar anzeigen?
 
Deklaration von RundeAufStelle?

mkinzler 1. Feb 2010 19:29

Re: Prozentsatz in einer ProgressBar anzeigen?
 
Das Lesen von Antworten ist wohl nicht so deins:

Delphi-Quellcode:
Gauge1.Progress:=Trunc(RundeAufStelle(StrToFloat(Button3.Caption)*100/summe, 1));

Matze 1. Feb 2010 19:30

Re: Prozentsatz in einer ProgressBar anzeigen?
 
Das gibt sicher einen Double zurück. Und auf eine nachkommastelle zu runden ist auch kein Integer. Nimm doch einfach Delphi-Referenz durchsuchenRound.

AlexII 1. Feb 2010 19:32

Re: Prozentsatz in einer ProgressBar anzeigen?
 
Ja hab jetzt alles verstanden, aber möchte Kommazahlen haben, z.B. 13,6% oder 34,5%

Matze 1. Feb 2010 19:36

Re: Prozentsatz in einer ProgressBar anzeigen?
 
Ach so, sag's doch gleich. Dann ist das mit TGauge nicht möglich. Nimm die ProgressBar mit dem angesprochenen TStaticText Label davor.

AlexII 1. Feb 2010 19:43

Re: Prozentsatz in einer ProgressBar anzeigen?
 
Ok danke hab alles was ich wollte. :thumb:

scrat1979 1. Feb 2010 19:49

Re: Prozentsatz in einer ProgressBar anzeigen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von AlexII
Ja hab jetzt alles verstanden, aber möchte Kommazahlen haben, z.B. 13,6% oder 34,5%

Wenn es nur darum geht, die Prozentzahlen als Balken (nicht Text) anzeigen zu lassen, dann setzte Progress.max auf 1000 und multipliziere Deinen Betrag mit 10 (hier also 136 bzw. 345). An sonsten Schreibe dir Deine eigene Komponente. Auch ich, der wahrlich NICHT der Meister der Komponentenentwicklung ist, habe mir auch schon eine eigene ProgressBar programmiert. Man lernt auch sehr viel dabei. Möchtest du die Zahlen als Text darstellen, wäre eine komplette Komponente mit Sicherheit die sauberere Lösung :angel:

Habe mal meine Komponente als Anhang hinzugefügt. Für Deine einfache Fragestellung mit Sicherhiet "overkill" aber das Prinzip dürfte klar sein. Und ach so, damals hatte ich knapp 3 Jahre weniger Programmiererfahrung, evtl. "schlampige" Programmierung sei mir verziehen :)

SCRaT


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:54 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