![]() |
Blaue Farbe von TListGroup-Titel in TListView
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
bin gerade auf der Jagd nach der genauen Farbe des TListGroup-Titels einer TListView. Im Anhang könnt ihr sehen, welche Farbe ich meine. Ich bin immerhin schon auf die Methode ListView_GetGroupMetrics gestoßen, die mir aber leider noch keinerlei sinnvolle Farbe geliefert hat. Der folgende Code liefert mir immer clBlack, da GM.crHeader gleich 0 ist:
Delphi-Quellcode:
Zudem noch eine Info: Eigentlich will ich auf eine ListView verzichten, wenn ich auf die Farbe zugreifen will!
var
GM : TLVGroupMetrics; CR : COLORREF; C : TColor; begin ListView_GetGroupMetrics(ListViewLogMessages.Handle, GM); CR := GM.crHeader; C := ColorToRGB(CR); end; |
AW: Blaue Farbe von TListGroup-Titel in TListView
Unter Vista: $00993300;
Unter Win XP ist die Farbe ein bisschen heller. |
AW: Blaue Farbe von TListGroup-Titel in TListView
Und woher weißt du das? Gibts für sowas eine API? Oder entsprechende Konstanten?
|
AW: Blaue Farbe von TListGroup-Titel in TListView
So, kann mir die Antwort nun selbst geben, nachdem ich noch ein wenig tiefer gegraben habe. Man kann über die Methoden und Konstrukte aus den Klassen UxTheme und Themes so ziemlich jede Komponentenfarbe ermitteln. Hier mal der Code für mein Problem:
Delphi-Quellcode:
Problem dabei ist nur, dass man sich erst mal alle Konstanten raussuchen und diese dann auch noch passend kombinieren muss :stupid:
uses
UxTheme, Themes; var LTheme : HTHeme; LColor: Cardinal; begin LTheme := ThemeServices.Theme[teListView]; if GetThemeColor(LTheme, LVP_GROUPHEADER, PBS_NORMAL, TMT_HEADING1TEXTCOLOR, LColor) = S_OK then CB.Canvas.Font.Color := LColor; end; |
AW: Blaue Farbe von TListGroup-Titel in TListView
Zitat:
|
AW: Blaue Farbe von TListGroup-Titel in TListView
Zitat:
Ich denke die Methode über UXThemes ist etwas zuverlässiger, vor allem, wenn man ein anderes Theme verwendet :D Sherlock |
AW: Blaue Farbe von TListGroup-Titel in TListView
Zitat:
|
AW: Blaue Farbe von TListGroup-Titel in TListView
Ich habe für meine Komponente nur die Farbe unter Vista als Startwert für eine TColor-Property gebraucht. Wenn der User der Meinung ist, die Kompo sollte unter Windows XP oder 7 oder wie auch immer die Systemfarbe haben, kann er sich das selber implementieren ;-)
EDIT: Aber da mir dank dir, s.h.a.r.k, jetzt eine Möglichkeit bekannt ist, die Systemfarbe zu ermitteln, werde ich das evtl. einfließen lassen :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr. |
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