AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Blaue Farbe von TListGroup-Titel in TListView
Thema durchsuchen
Ansicht
Themen-Optionen

Blaue Farbe von TListGroup-Titel in TListView

Ein Thema von s.h.a.r.k · begonnen am 17. Jul 2011 · letzter Beitrag vom 18. Jul 2011
Antwort Antwort
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

Blaue Farbe von TListGroup-Titel in TListView

  Alt 17. Jul 2011, 15:22
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:
var
  GM : TLVGroupMetrics;
  CR : COLORREF;
  C : TColor;
begin
  ListView_GetGroupMetrics(ListViewLogMessages.Handle, GM);
  CR := GM.crHeader;
  C := ColorToRGB(CR);
end;
Zudem noch eine Info: Eigentlich will ich auf eine ListView verzichten, wenn ich auf die Farbe zugreifen will!
Miniaturansicht angehängter Grafiken
screenshot.png  
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Blaue Farbe von TListGroup-Titel in TListView

  Alt 17. Jul 2011, 15:31
Unter Vista: $00993300;

Unter Win XP ist die Farbe ein bisschen heller.
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

AW: Blaue Farbe von TListGroup-Titel in TListView

  Alt 17. Jul 2011, 15:33
Und woher weißt du das? Gibts für sowas eine API? Oder entsprechende Konstanten?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: Blaue Farbe von TListGroup-Titel in TListView

  Alt 17. Jul 2011, 16:48
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:
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;
Problem dabei ist nur, dass man sich erst mal alle Konstanten raussuchen und diese dann auch noch passend kombinieren muss
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Blaue Farbe von TListGroup-Titel in TListView

  Alt 18. Jul 2011, 06:32
Und woher weißt du das?
Ich habe einfach einen Screenshot gemacht und dann mit Paint.Net die Farbe ermittelt.
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Blaue Farbe von TListGroup-Titel in TListView

  Alt 18. Jul 2011, 09:42
Und woher weißt du das?
Ich habe einfach einen Screenshot gemacht und dann mit Paint.Net die Farbe ermittelt.
Fünffach gemessen und dann arithmetisch gemittelt? Vorher auch ClearType abgeschaltet?
Ich denke die Methode über UXThemes ist etwas zuverlässiger, vor allem, wenn man ein anderes Theme verwendet

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#7

AW: Blaue Farbe von TListGroup-Titel in TListView

  Alt 18. Jul 2011, 12:30
Und woher weißt du das?
Ich habe einfach einen Screenshot gemacht und dann mit Paint.Net die Farbe ermittelt.
Dank für die Info, aber dabei hatte ich sehr viele Bauchschmerzen! Eben aus den Gründen, die Sherlock genannt hat. Daher habe ich mich nochmals auf die Suche gemacht. Bin übrigens über die ColorMaps auf diese Idee gekommen, falls es noch jemanden interessieren sollte.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Blaue Farbe von TListGroup-Titel in TListView

  Alt 18. Jul 2011, 13:45
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
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:51 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