Einzelnen Beitrag anzeigen

Bernd1982

Registriert seit: 22. Dez 2009
11 Beiträge
 
#1

Caption-Farbe von GroupBox (SetWindowTheme)

  Alt 2. Feb 2018, 10:49
Ich möchte gerne eine Groupbox mit weißer Überschrift haben. Anscheinend funkt das XP-Luna-Look-Theme dazwischen. Der Text ist immer schwarz. Wenn ich das XP-Manifest (XP-Theme) für das ganze Programm abschalte, ist meine Überschrift zwar weiß, alle anderen Controls aber leider auch im ältlichen Win98-Look.

Jetzt gibt es die schöne Funktion SetWindowTheme in der Unit UxTheme. Diese schaltet tatsächlich das Theme für einzelne Controls ab:

SetWindowTheme(Edit1.Handle,'',''); Edit1.Enabled:=False; Edit1.Enabled:=True;

Leider nicht für eine GroupBox oder eine RadioGroup:
Delphi-Quellcode:
H:=GroupBox1.Handle;
T:=GetWindowTheme(H);
E:=SetWindowTheme(H,NIL,''); GroupBox1.Enabled:=False; GroupBox1.Enabled:=True;
T:=GetWindowTheme(H);
H ist das Handle zur Groupbox und sieht beim Debuggen gut aus. T ist jedoch - anders als beim TEdit - sofort 0. So als ob die Groupbox schon gleich kein Theme hätte. Ändern tut sich am Aussehen dann erwartungsgemäß auch nichts. E ist 0, es scheint also kein Fahler aufzutreten.

Ist evtl. das Handle falsch? Ist eine TGroupBox von Delphi selbst zusammengebastelt und in Wirklichkeit gar kein natives Windows-Control? Wie komme ich an das richtige Handle, denn das Theme wird ja irgendwie angewendet...

Hat jemand eine Idee?

Ich arbeite übrigens mit Delphi 7.
  Mit Zitat antworten Zitat