AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TcxGroupBox und dessen echte Farbe?

Ein Thema von himitsu · begonnen am 22. Mai 2012 · letzter Beitrag vom 6. Jun 2012
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.013 Beiträge
 
Delphi 12 Athens
 
#1

TcxGroupBox und dessen echte Farbe?

  Alt 22. Mai 2012, 17:40
Moin,

wie bekommt man von einem TcxGroupBox die tatsächlich angezeigte Hintergrundfarbe raus?


Problem: Eine Komponente (z.B. TLinkLabel), die nicht transparent ist, nimmt sich über ParentColor die falsche Farbe, was natürlich echt besch* aussieht.


In sowas wie .Color oder .Style.Color steht nicht die richtige Farbe drin.


Wer ist eigentlich auf die saublöde Idee gekommen das TLinkLabel nicht einfach von TCustomLabel abzuleiten?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Mai 2012 um 17:44 Uhr)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.752 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TcxGroupBox und dessen echte Farbe?

  Alt 22. Mai 2012, 17:56
Hallo,

ich kenne die Komponente nicht, aber sollte die nicht ein Canvas haben und der Canvas
eine Farbe (color)?
Link

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: TcxGroupBox und dessen echte Farbe?

  Alt 22. Mai 2012, 18:09
Also ich nehme eine TCxCheckBox, schmeiss sie auf ne Form, ändere die Farbe der Form und -wupps- ist cxCheckBox1.Color angepasst.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.013 Beiträge
 
Delphi 12 Athens
 
#4

AW: TcxGroupBox und dessen echte Farbe?

  Alt 22. Mai 2012, 18:25
Ich will sie ja nicht setzen, sondern auslesen.

Und {Component}.Canvas.Brush.Color gibt nicht unbedingt die Hintergrundfarbe an, sondern die letzte Brush-Farbe, welche in diesem Canvas zum Zeichnen genutzt wurde.

In meinem Testfall war es zufällig "weiß", welches mit dem zarzen Hellgrau grade noch ertragbar währe, aber wie gesagt, das war wohl eher Zufall.


PS: Das ist eine mehrfach abgeleitete Komponente und irgendwo tief im System versteckt wird zur Runtime ein irgendein Style zugewiesen.
Wäre ja zu einfach, wenn DevExpress dabei an .Color die aktuelle Farbe zuweisen würde, was aber nicht gemacht wird.

Ach ja, eine TcxCheckBox weiß was Transparenz ist und bei ihren eigenen Komponenten haben die bestimmt notfalls einen Bugfix eingebaut, bzw. sie wissen wo die echte Farbe zu finden ist, welche nötig ist.
Hier handelt es sich um eine Komponente mit Pseudotransparent, welche nicht wirklich transparent ist, aber für's Zeichen die Parent.Color verwendet,
welche aber von DevExpress falsch/nicht gesetzt wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Mai 2012 um 18:32 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: TcxGroupBox und dessen echte Farbe?

  Alt 22. Mai 2012, 20:45
himitsu, wie ich schon schrieb, entspricht bei mir die Eigenschaft 'Color' der TcxCheckbox der Hintergrundfarbe der dahinterliegenden Form. Es scheint, sie würde sich anpassen. Transparent ist das Teil jedenfalls nicht, denn über einem TDBGrid, das da so zufällig rumlag, war die 'Hintergrundfarbe' der TcxCheckbox nicht etwa weiß, wie das Grid, sondern maroon, wie die Form.

Wie gesagt, es scheint sich bei mir anzupassen.
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TcxGroupBox und dessen echte Farbe?

  Alt 23. Mai 2012, 10:21
Code:
TcxGroupBox
  ParentBackground
  ParentColor -> Wenn True wird Color im Style ignoriert
  Style
    AssignedValues -> bestimmt welche Properties individuell für diese Komponente festgelegt sind
    Color  
    StyleController -> nicht festgelegte Properties werden von hier bezogen (oder DefaultController)
  StyleDisabled
    AssignedValues
    Color
  Transparent
Die Hilfe zu TcxDefaultEditStyleController beschreibt die Funktionsweise eigentlich ganz gut.

In TcxContainer als protected deklariert:
function GetBackgroundColor: TColor; virtual;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.013 Beiträge
 
Delphi 12 Athens
 
#7

AW: TcxGroupBox und dessen echte Farbe?

  Alt 6. Jun 2012, 14:09
Zitat:
Delphi-Quellcode:
cxLookAndFeelController1.NativeStyle:=False; // das hier ist eine entdeckter Unterschied
cxLookAndFeelController1.SkinName:='Silver';
Und dann versteckt sich die "richtige" Farbe in cxGroupBox1.Styles.ContentOdd.Color


Aber dennoch:
Solange in Control.Color nicht die Farbe drinsteht, welche wirklich als Hintergrundfarbe verwendet wird, kann ParentColor ja nur Mist erzeugen.
Und wenn die es schon nicht schaffen .Color richtig zu setzen, warum gibt es dann keine Methode ala "MirIstEgalWasSonstwoStehtAberDieEchteHintergrundfarbeIstDiese".
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 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