Autor |
Beitrag |
Cruentus
Hält's aus hier
Beiträge: 9
|
Verfasst: Sa 16.10.10 17:26
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
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: 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
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
Hält's aus hier
Beiträge: 9
|
Verfasst: 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
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: 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 
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Gerd Kayser
      
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: 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. www.lmdinnovative.com/download/
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: 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,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: 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
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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 ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
|