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 Marquee in Delphi 5 (https://www.delphipraxis.net/163422-marquee-delphi-5-a.html)

WizoHulk 28. Sep 2011 11:28

Marquee in Delphi 5
 
Hallo Gemeinde,

Ich musst emit entsetzen festtellen, das die Progressbar von Delphi 5 kein Marquee kann.
Gut habe ich mir gedacht schreibe ich mir schnell selber eine Fertig, bzw hole mir der Quellcode aus der JvProgressbar die dies schon kann.
So, konnte es Comperlieren und Installieren. Jetzt kann ich über die Properties marquee alles einstellen. Aber Leider funktioniert diese nicht.

Hat jemand eine Ahnung was ich Falsch gemacht habe, oder kann Delphi 5 das von vorne rein nicht?

Danke schon mal für eure Hilfe.

jfheins 28. Sep 2011 11:33

AW: Marquee in Delphi 5
 
Auch die Standard-Prograssbar von Delphi 5 kann das.
Du brauchst aber wohl mindestens WinXP und ein Manifest; dann kannst du einfach eine Message an die Progressbar senden und schon läuft sie durch ;-) ( http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx )

WizoHulk 28. Sep 2011 11:39

AW: Marquee in Delphi 5
 
hmmm, es gibt kein propertie Marquee in der Progressbar.
Delphi 5 Läuft auf Windows 7

DeddyH 28. Sep 2011 12:23

AW: Marquee in Delphi 5
 
Du brauchst keine Property, setze ControlStyle der ProgressBar auf PBS_MARQUEE und sende ihr dann eine PBM_SETMARQUEE-Nachricht. Das steht alles in dem verlinkten Artikel.

WizoHulk 28. Sep 2011 15:26

AW: Marquee in Delphi 5
 
Danke schön das haut hin.
Aber wie kann ich das Flakern umgehen, denn mit Double Buffered Geht die Progressbar gar nicht.

DeddyH 28. Sep 2011 15:29

AW: Marquee in Delphi 5
 
Was hast Du denn ge"doublebuffered"? Die ProgressBar selbst oder ihren Parent?

WizoHulk 28. Sep 2011 15:39

AW: Marquee in Delphi 5
 
Die Progressbar selbst

DeddyH 28. Sep 2011 15:44

AW: Marquee in Delphi 5
 
Nimm das mal wieder raus. Ich bin gerade im Quality Central fündig geworden. Versuch es mal so:
Delphi-Quellcode:
type
  TProgressBar = class(ComCtrls.TProgressBar)
  private
    procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
  end;

  TForm1 = class(TForm)
    ...
  end;

implementation

...

procedure TProgressBar.WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin
  DefaultHandler(Message);
end;

WizoHulk 28. Sep 2011 15:50

AW: Marquee in Delphi 5
 
Ast rein Super
Danke schön.

und was macht die genau.

DeddyH 28. Sep 2011 15:53

AW: Marquee in Delphi 5
 
Zitat:

The solution is simple. A WM_ERASEBKGND handler needs to be added to TProgressBar that calls DefaultHandler. This bypasses TWinControl.WMEraseBkgnd and its FillRect call.
Quelle: http://qc.embarcadero.com/wc/qcmain.aspx?d=38178


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