AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VCL Styles nur für einzelne Controls?

Ein Thema von ULIK · begonnen am 6. Nov 2024 · letzter Beitrag vom 18. Jan 2025
Antwort Antwort
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
711 Beiträge
 
Delphi 12 Athens
 
#1

AW: VCL Styles nur für einzelne Controls?

  Alt 6. Nov 2024, 15:52
Hast Du mal versucht, die StyleElements-Eigenschaft der betreffenden Controls zu ändern?
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: VCL Styles nur für einzelne Controls?

  Alt 6. Nov 2024, 16:16
Das will ich eigentlich vermeiden. Denn dann müßte ich von allen Controls die Properties erst einmal leeren und dann wieder einschalten, wo benötigt. Mir wäre eine Lösung ohne Default VCL-Stil insofern sypathischer, das sich dann hoffentlich nicht das VCL Skinning und das DX-Skinning in die Quere kommen können. Ich bin mir nicht sicher, ob DX Skinning immer ein mögliches VCL Skinning überschreibt. Es scheint zwar so zu sein, aber ich weiß es halt nicht sicher.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#3

AW: VCL Styles nur für einzelne Controls?

  Alt 6. Nov 2024, 16:30
Du kannst den VCL-Style in der Applikation aktivieren und trotzdem bei jedem Form den Windows-Style auswählen. Dann sollte es auch funktionieren, wenn du einzelne Controls im Form einen anderen Style gibst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
323 Beiträge
 
Delphi 12 Athens
 
#4

AW: VCL Styles nur für einzelne Controls?

  Alt 6. Nov 2024, 16:33
Ich hatte mal gewissermaßen das umgekehrte Problem:
Ich verwende einen dunklen VCL-Stil, der aber nicht bei allen Komponenten richtig greift (oftmals sind Drittanbieterkomponenten ein Problem).
Meine Lösung war es, eine generische Methode zu schreiben, die im FormCreate einer Form deren Komponentenliste durchgeht und, wenn sie auf einen Problemtyp stößt, bei der Komponente die problematischen StyleElements deaktiviert und manuell Farben etc anpasst.

Abhängig davon, um was für und wieviele Control-Typen es sich handelt, wäre das vielleicht eine Option.
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: VCL Styles nur für einzelne Controls?

  Alt 7. Nov 2024, 15:43
Vielen Dank für all die Tips. Leider haben diese alle in der realen Anwendung so ihre Probleme, so daß das Verwenden der VCL Skins entfällt.
Aber da es mir ja eigentlich nur um die Farben der Scrollbars geht, die manche Controls intern erstellen, da habe ich nun eine andere Lösung gefunden:

SetWindowTheme(AHandle,'DarkMode_Explorer', nil) zum Setzen einer dunklen Scrollbar bzw. SetWindowTheme(AHandle,'Explorer', nil); wenn es wieder die helle Version sein soll. AHandle ist dabei das Fensterhandle des Control (also z.B. einer TMemo-Instanz)

Man kann damit wohl auch noch über den letzten Parameter von SetWindowTheme genauer steuern, nur habe ich noch nicht herausgefunden, was da für Werte erwartet werden. Falls noch jemand Hinweise hat, wie man mögliche Werte für den zweiten Parameter bekommt (also das 'DarkMode_Explorer'), wäre ich auch sehr dankbar.

In meiner realen Anwendung funktioniert das alles bisher nun ganz gut und ich hab noch keine Probleme damit festgestellt.
  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 02:05 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