Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Progressbar umdrehen
Cruentus - Sa 16.10.10 17:26
Titel: Progressbar umdrehen
Hallo allerseits!
Bin zur Zeit an einem Programm, für das ich ein paar Fortschrittsbalken benötige. Wie diese prinzipiell funktionieren meine ich auch verstanden zu haben. Hab sie in der vertikalen Variante, d.h. der blaue Balken kommt von unten. Nun bräuchte ich aber das ganze so, dass der blaue Balken von oben kommt. Quasi das ganze nur gespiegelt.
Weiß jemand, wie man diese Drehung bewerkstelligt?
Vielen Dank schon mal
Cruentus
Reinhard Kern - Sa 16.10.10 18:47
Cruentus hat folgendes geschrieben : |
Bin zur Zeit an einem Programm, für das ich ein paar Fortschrittsbalken benötige. Wie diese prinzipiell funktionieren meine ich auch verstanden zu haben. Hab sie in der vertikalen Variante, d.h. der blaue Balken kommt von unten. Nun bräuchte ich aber das ganze so, dass der blaue Balken von oben kommt. Quasi das ganze nur gespiegelt.
Weiß jemand, wie man diese Drehung bewerkstelligt?
|
Hallo,
indem du Minimum und Maximum vertauschst. Ob das im Control direkt geht, habe ich nicht probiert, aber auf jeden Fall kannst du ja z.B. beim Kopieren von hundert Dateien anstatt die Dateinummer n einfach 100 - n übergeben.
Gruss Reinhard
jaenicke - Sa 16.10.10 18:52
Soweit ich mich erinnere geht es nicht. Beim Versuch einen niedrigeren Wert zuzuweisen kommt glaube ich ein Fehler.
Bleibt noch selbst zeichnen, auch mit Shapes kann man eine simulieren.
Cruentus - Sa 16.10.10 18:52
hmmm, danke schon mal für den Tipp. Delphi meckert aber, dass das Minimum außerhalb des zulässigen Bereichs liegt...
Martok - Sa 16.10.10 18:54
Das ist ne Frage der Reihenfolge in der man das zuweist... Min darf nie >= max sein.
Ich würde das so machen: min-> -n, max->0. Wenn man das in der Reihenfolge macht, sollte es gehen.
EDIT: huch, okay, die TProgressBar macht das anders. Hatte da wohl eine andere Komponente im Kopf :gruebel:
Gerd Kayser - Sa 16.10.10 19:12
Bei dem LMD-Tools SE (Freeware, ohne Sourcen) ist die Komponente TLMDProgressFill dabei. Die beherrscht links, rechts, hoch und runter. Außerdem noch Farbverläufe.
http://www.lmdinnovative.com/download/
Hidden - Sa 16.10.10 19:13
Moin!
Ohne Kenntnis der Komponente: Wenn du die Farbe von Hintergrund und Balken bestimmen kannst, würde ich Max und Min Max und Min sein lassen, Hintergrund auf blau setzen und Balken auf weiß; dann den Balken runterzählen lassen, statt rauf.
Option?
Edit: Wobei eine Progressbar wohl noch so einfach ist, dass man sie "eben mal" mit Paintbox selbst basteln kann, und das Ganze dann auch wirklich in 2-3 Minuten gegessen ist - es sei denn, man benötigt wirklich exakt die und alle Funktionen, und muss das komplette Interface nachbilden.
lg,
Bergmann89 - Sa 16.10.10 19:52
Hey,
du kannst doch bei der ProgressBar die Position selbst bestimmten, also machs doch so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure DecProgressbarPos(Progbar: TProgressBar); var NewPos: Integer; begin NewPos := Progbar.Position - 1; if NewPos < Progbar.Min then NewPos := Progbar.Max; Progbar.Position := NewPos; end; |
€: oder noch einfacher:
Delphi-Quelltext
1: 2:
| ProgBar.Step := -1; Progbar.StepIt; |
MfG Bergmann
BenBE - So 17.10.10 13:43
Mit ein wenig API-Fummeleien kann man aber auch einfach das DC (Canvas) der Progressbar mit nem andren Koordinaten-System versehen. Source für sowas liegt aber in ner GANZ entfernten Ecke meiner Festplatte ...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!