Delphi-PRAXiS
Seite 1 von 3  1 23      

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 Progresbar zur Laufzeit zur Marquee ProgressBar machen? (https://www.delphipraxis.net/51913-progresbar-zur-laufzeit-zur-marquee-progressbar-machen.html)

FriFra 21. Aug 2005 22:00


Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Die Schweizer haben eine MarqueeProgressbar von der normalen Progressbar abgeleitet:
http://www.swissdelphicenter.ch/de/showcode.php?id=1680

Ich frage mich nun, ob es nicht möglich wäre eine "normale" Progressbar zur Laufzeit zur MarqueeProgressbar zu machen?

Luckie 21. Aug 2005 22:24

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:

FriFra 21. Aug 2005 22:27

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Zitat:

Zitat von Luckie
Also manchmal erstaunst du mich immer wieder. Du programmierst doch nicht erst seit gestern oder? :gruebel:

Sicher, aber manchmal ist es spät, und manchmal sieht man den Wald vor Bäumen nicht ;)

jfheins 21. Aug 2005 22:39

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Beispiel:
Delphi-Quellcode:
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;
Den Code in Funktionen umzuformen, das überlass ich dir ;)

Und L...war natürlich mal wieder schneller :cry:

FriFra 21. Aug 2005 22:42

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
So, jetzt hab ichs...
Delphi-Quellcode:
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);
...
Aber das ganze funktioniert leider nur, wenn die unit XPMan engebunden wurde :x ... somit kann ich's nicht gebrauchen :?
Bekommt man den ProgressBar auch ohne XPMan in den Marquee-Style?

[Edit]
:oops: Ups... da war ja wieder einer schneller ;)

jfheins 21. Aug 2005 22:44

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 ;)

Daniel G 21. Aug 2005 22:50

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
da müsstest du dann nach "XPManifest" suchen....

Loni 22. Jun 2007 20:45

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???

ManuMF 22. Jun 2007 21:45

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Hast du vielleicht die Konstanten vergessen (siehe Beitrag #5)?

Luckie 22. Jun 2007 23:47

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.
Seite 1 von 3  1 23      

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