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/)
-   -   TActivityIndicator (https://www.delphipraxis.net/206753-tactivityindicator.html)

ADelph 26. Jan 2021 11:48

TActivityIndicator
 
Hi,

es geht um Delphi 10.4.1 und VCL

Ich hab hier ein sonderbares Phänomen.

Wenn ich auf eine leere Form einen TActivityIndicator packe, dann wird als dessen Background der Background der Form genommen, d.h. ich sehe - wenn ich die Standardeinstellungen lasse - nur die Dots, die sich bewegen, wenn ich das Programm mit der Form ausführe.

Packe ich das Teil auf eine Form mit Komponenten, dann ist der Background immer schwarz, wenn ich das Programm mit der Form ausführe, egal ob ich es auf die Form direkt packe oder ein Panel der Form etc. Das nervt. Im Designer wird aber der Background der Form oder z.B. des Panels angenommen. Nur beim Ausführen wird es schwarz.

Irgendeine Idee, was hier die Ursache sein könnte? Ich hab schon richtig viel 'rumprobiert...

Uwe Raabe 26. Jan 2021 12:47

AW: TActivityIndicator
 
Sind in den Projektoptionen die Runtime Themes aktiv?

himitsu 26. Jan 2021 14:06

AW: TActivityIndicator
 
Ja im DesignModus arbeitet diese Komponente ein klein bissl anders, als wie zur Laufzeit.

Außerdem zeichnet die Komponente erst auf ein internes FFrameBitmap, welches anschließend ausgegeben wird.
Irgendwo geht da vermutlich bei der Bestimmung der Hintergrundfarbe etwas schief. (passiert gern bei Verwendung von abweichendem Theming/Styling, wo was anderes gemalt wird, als das BackgroundColor-Property aussagt)


Ist DoubleBuffered aktiv? (z.B. DevExpress aktiviert das zu gerne)
Auch hier ändert sich das Verhalten etwas.



PS, falls nichts hilft:
* TImage
* und da rein irgendein GIF, mit soeiner Animation

ADelph 26. Jan 2021 17:21

AW: TActivityIndicator
 
Hi,

habe all eure Tipps probiert, es ändet nichts. Runtime Themes habe ich nicht, läuft alles als Windows Standard.

Es lässt sich ja die Property 'Brush' nutzen, aber auch da rührt sich nichts.

Könnte es daran liegen, dass ich in das HauptFormular teilweise Frames einblende? Allerdings kann ich den Indicator hinsetzen wo ich will, mit beliebigen Parents, bleibt bei shwarz. :evil:

Danke euch für die Anregungen!

Nachtrag: habe eben mal aus Dollerei die Laufzeit-Themes aktiviert...und dann ist die Anzeige wie im Designmodus...geht der Indicator nur dann wie erwartet? ...sonderbar...

Schönen Abend noch und bleibt gesund!

himitsu 26. Jan 2021 17:34

AW: TActivityIndicator
 
Die normalen "Laufzeit-Themes" sind eine andere Sache.
Seit über 20 Jahren sind die praktisch "Standard" und diese Komponente wurde Jahrzente danach erst erfunden, also basiert sie auf diesem "Standard".
Die sollten besser immer aktiv sein. Mit Theming/Styling sind vor allem Dinge gemeint, die sich abweichend vom WindowsStandard anders darstellen.

Außerdem, wer will denn jetzt noch den alten Windows-Stil aus'm letzten Jahrtausend noch sehen wollen?
Abgesehn davon, dass das nicht nur ein anderes Aussehen ist, sondern bei einigen Komponenten auch eine unterschiedliche API nach sich zieht, bzw. Einiges noch nichtmal dort existiert. (z.B. bei der ProgressBar, ScrollBar, TreeList, MessageBox:TaskDialog, Save-/OpenFileDialog usw.)


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