Delphi-PRAXiS
Seite 1 von 2  1 2      

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 TProgressBar & Marquee mit Classic Theme in D2009 (VCL Bug) (https://www.delphipraxis.net/124791-tprogressbar-marquee-mit-classic-theme-d2009-vcl-bug.html)

Assertor 25. Nov 2008 11:33


TProgressBar & Marquee mit Classic Theme in D2009 (VCL B
 
Hi,

ich bin grad über einen kleinen Bug gestolpert:

Wenn ich einen TProgressBar mit Marquee in D2009 über Classic Themes anzeige (oder per AppCompat für die Datei die visuellen Designs deaktiviere), bleibt der ProgressBar leer.

Ist das ein neuer VCL Bug? Im QC kann ich dazu für die Release und Update 1 nichts finden.

Gruß Assertor

Union 25. Nov 2008 11:57

Re: Problem mit TProgressBar in D2009 mit Classic Themes
 
Das ist kein VCL Bug, sondern PBS_MARQUEE funktioniert nur mit visuellen Designs.

Assertor 25. Nov 2008 12:00

Re: Problem mit TProgressBar in D2009 mit Classic Themes
 
Hi Union,

Zitat:

Zitat von Union
Das ist kein VCL Bug, sondern PBS_MARQUEE funktioniert nur mit visuellen Designs.

Danke für Deine Antwort, aber bist Du sicher, das stimmt? Im MSDN hatte ich schon nachgesehen - und Comctl32.dll version 6 ist ja in Vista unterstützt. Der Marquee ist imho auch unterstützt im Classic Theme.

Ich teste das jetzt mal schnell mit D2006. Mal sehen, ob ich recht hab.

Gruß Assertor

P.S.: Korrektes Manifest ist natürlich dabei.

Union 25. Nov 2008 12:04

Re: Problem mit TProgressBar in D2009 mit Classic Themes
 
Ich habe zum Test mal die D7 Version der Progressbar komplett dupliziert und in CreateParams ein "OR PBS_MARQUEE" eingefügt. Mit XP Manifest gehts, ohne bleibt die Prograssbar leer. Und wenn MS extra schreibt, dass es ohne NICHT geht, wieso sollte es dann trotzdem funktionieren... vielleicht mit dem nächsten SP ;)

Im schlimmsten Fall programmierst Du Dir das PBS_MARQUEE eben selber (z.B. mit einem Timer).

Assertor 25. Nov 2008 12:12

Re: Problem mit TProgressBar in D2009 mit Classic Themes
 
Hi,

Zitat:

Zitat von Union
Mit XP Manifest gehts, ohne bleibt die Prograssbar leer. Und wenn MS extra schreibt, dass es ohne NICHT geht, wieso sollte es dann trotzdem funktionieren... vielleicht mit dem nächsten SP ;)

Zitat:

Zitat von Assertor
P.S.: Korrektes Manifest ist natürlich dabei.

:?:

Zitat:

Zitat von Union
Das ist kein VCL Bug, sondern PBS_MARQUEE funktioniert nur mit visuellen Designs.

Falsch, da steht ComCtrls 6 - nichts von visuellen Designs oder Classic Theme.

Gerade übrigens getestet: Geht mit D2006 & Vista & Classic Theme (per PBS_MARQUEE).

Kann jemand mit D2009 mal bitte kurz testen, ob es bei ihm geht?

Gruß Assertor

Edit: Union, es geht nicht darum, wann und wie es geht - das weiß ich ;) Sondern, ob es bei D2009 geht oder hier ein Bug vorliegt. War vielleicht unklar formuliert.

Union 25. Nov 2008 12:19

Re: Problem mit TProgressBar in D2009 mit Classic Themes
 
Kannst Du noch mal genau die Einsatzbedingungen beschreiben? Ich kann nur unter XP folgendes testen (Vista ist bei uns nicht zur Produktion freigegeben):
* D7 mit XP-Manifest (Komponente XPMan) und ohne
* D2009 mit XP-Manifest (Projektoptionen->Anwendung->Laufzeit Themes aktivieren) und ohne

divBy0 25. Nov 2008 12:21

Re: Problem mit TProgressBar in D2009 mit Classic Themes
 
Bau doch mal ein kleines Demo zusammen, was genau das macht, was du möchtest bzw. was nicht geht.

Heute Abend kann ich das mit D2009 und Vista testen.

Assertor 25. Nov 2008 12:27

Re: Problem mit TProgressBar in D2009 mit Classic Themes
 
Hi Union,

Zitat:

Zitat von Union
Kannst Du noch mal genau die Einsatzbedingungen beschreiben? Ich kann nur unter XP folgendes testen (Vista ist bei uns nicht zur Produktion freigegeben):

Verständlich, bin ja auch dankbar für die Mühe :)

Zitat:

Zitat von Union
* D7 mit XP-Manifest (Komponente XPMan) und ohne
* D2009 mit XP-Manifest (Projektoptionen->Anwendung->Laufzeit Themes aktivieren) und ohne

Nein, daher kommt also das Mißverständnis ;)

Delphi Einstellungen (fix):
  • D7/D2006 mit XP-Manifest
  • D2009 mit XP-Manifest

Dabei wird der ProgressBar bei D2006 über PBS_SETMARQUEE und unter D2009 mit der neuen VCL Style-Option auf Marquee gestellt.

Test case für ProgressBar mit Marquee:
  • Vista mit Classic Theme (das klassische Design nennt sich in der engl. Version dort so)
  • Vista mit Aero Theme

Ergebnissatz für D2006:
  • Vista mit Classic Theme: Marquee
  • Vista mit Aero Theme: Marquee

Ergebnissatz für D2009 (VCL Marquee Option):
  • Vista mit Classic Theme: Kein Marquee
  • Vista mit Aero Theme: Marquee

Ich habe jetzt auch mal Non-VCL per PBS_SETMARQUEE unter D2009 das Ergebnis geprüft, leider gibt es dort auch ein Problem - also muß es mit den Änderungen an der TProgressBar zusammenhängen:

Ergebnissatz für D2009 (PBS_SETMARQUEE):
  • Vista mit Classic Theme: Kein Marquee, Balken läuft aber ca. 5-10% an, dann ändert sich nichts mehr
  • Vista mit Aero Theme: Marquee

Gruß Assertor

Union 25. Nov 2008 12:36

Re: Problem mit TProgressBar in D2009 mit Classic Themes
 
Liegt es vielleicht hierdran:
Delphi-Quellcode:
------------------------------+
                              |
if (FStyle = pbstMarquee) and ThemeServices.ThemesEnabled and CheckWin32Version(5, 1) then
    Style := Style or PBS_MARQUEE;

ChrisE 25. Nov 2008 12:39

Re: Problem mit TProgressBar in D2009 mit Classic Themes
 
Hallo Assertor,

auch bei Delphi 2007 verhalten wie bei D2006/D7.
  • Vista mit Classic Theme
  • Applikation mit Manifest und PBS-MARQUEE

Ergebnis für D2007:
  • Vista mit Classic Theme: Marquee
  • Vista mit Aero Theme: Marquee

Nur zur Info.

Gruß, Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.
Seite 1 von 2  1 2      

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