![]() |
Progresbar zur Laufzeit zur Marquee ProgressBar machen?
Die Schweizer haben eine MarqueeProgressbar von der normalen Progressbar abgeleitet:
![]() Ich frage mich nun, ob es nicht möglich wäre eine "normale" Progressbar zur Laufzeit zur MarqueeProgressbar zu machen? |
Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
Klar, setze die entsprechenden Stile einfach zur Laufzeit: PBS_MARQUEE und entsprechend dann die Animation: PBM_SETMARQUEE.
Also manchmal erstaunst du mich immer wieder. Du programmierst doch nicht erst seit gestern oder? :gruebel: |
Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
Zitat:
|
Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
Beispiel:
Delphi-Quellcode:
Den Code in Funktionen umzuformen, das überlass ich dir ;)
procedure TForm1.Button3Click(Sender: TObject);
var Bar: TProgressBar; begin Bar := ProgressBar1; SetWindowLong(Bar.Handle, GWL_STYLE, GetWindowLong(Bar.Handle, GWL_STYLE) or PBS_MARQUEE) // Jetzt isses ne Marquee-Progresbar end; procedure TForm1.Button4Click(Sender: TObject); // hier verändern wir die Geschwindigkeit - je kleiner, desto langsamer var AniSpeed: Cardinal; Bar: TProgressBar; begin Bar := ProgressBar1; AniSpeed := strtoint (Edit1.Text); if AniSpeed <> 0 then SendMessage(Bar.Handle, PBM_SETMARQUEE, 1, AniSpeed) else SendMessage(Bar.Handle, PBM_SETMARQUEE, 0, 0); end; Und L...war natürlich mal wieder schneller :cry: |
Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
So, jetzt hab ichs...
Delphi-Quellcode:
Aber das ganze funktioniert leider nur, wenn die unit XPMan engebunden wurde :x ... somit kann ich's nicht gebrauchen :?
const
PBS_MARQUEE = $08; PBM_SETMARQUEE = WM_USER + 10; var cs:LongInt; begin cs := GetWindowLong(ProgressBar1.Handle, GWL_STYLE); SetWindowLong(ProgressBar1.Handle, GWL_STYLE, cs Or PBS_MARQUEE); SendMessage(ProgressBar1.Handle, PBM_SETMARQUEE, 1, 40); ... Bekommt man den ProgressBar auch ohne XPMan in den Marquee-Style? [Edit] :oops: Ups... da war ja wieder einer schneller ;) |
Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
Nein, das XPMan sagt Windows, dass du die neuen XP-Controls nutzen möchtest - und erst die Unterstützen das afaik ;)
|
Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
da müsstest du dann nach "XPManifest" suchen....
|
Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
Hi kann mir jemand sagen warum Delphi 2007 PBS_MARQUEE nicht erkennt "[DCC Fehler] KyteUnit.pas(41): E2003 Undefinierter Bezeichner: 'PBS_MARQUEE'" ich habe auch das XPMan eingebunden . Was mache ich falsch???
|
Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
Hast du vielleicht die Konstanten vergessen (siehe Beitrag #5)?
|
Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
Die Delphi Units hinken immer etwas hinter her und kennen deshalb die Konstante nicht. Du musst sie also selber deklarieren.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz