Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Feststellen, ob Windows-Themes aktiviert sind?


galagher - Fr 15.09.17 10:25
Titel: Feststellen, ob Windows-Themes aktiviert sind?
Hallo!

Wie kann man per Code feststellen, ob Windows-Themes aktiviert sind? Geht das überhaupt?


Delete - Fr 15.09.17 11:24

- Nachträglich durch die Entwickler-Ecke gelöscht -


galagher - Fr 15.09.17 12:39

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
die bestehende Anwendung fragen, ob bei ihr das Theme aktiv ist.
Dann weiss ich zwar, ob die Anwendung das Theme hat oder nicht, ich möchte aber feststellen, ob in Windows selbst ein Theme oder die Standarddarstellung aktiv ist!


galagher - Fr 15.09.17 19:36

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Dann weiss ich zwar, ob die Anwendung das Theme hat oder nicht, ich möchte aber feststellen, ob in Windows selbst ein Theme oder die Standarddarstellung aktiv ist!
Seltsamerweise wird mein Programm nach Ausschalten der Laufzeitthemes zwar wie erwartet im Windows-Standard dargestellt (sieht furchtbar aus!), aber der Code if IsThemeActive() then close; funktioniert immer noch! Oder verstehe ich da etwas nicht? Möchte jetzt nicht das Windows-Theme ausschalten.

Werde mal googlen!

//Edit: Funktioniert: http://www.swissdelphicenter.ch/en/showcode.php?id=1639


Delete - Sa 16.09.17 02:33

- Nachträglich durch die Entwickler-Ecke gelöscht -


galagher - Sa 16.09.17 09:10

user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
In deinem verlinkten Beitrag wird genau diese Funktion importiert. Einen Unterschied dürfte es garnicht geben. :D

Da habe ich offenbar etwas missverstanden:
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
du kannst mit IsThemeActive() [https://msdn.microsoft.com/en-us/library/windows/desktop/bb759813(v=vs.85).aspx] die bestehende Anwendung fragen, ob bei ihr das Theme aktiv ist.
Also dachte ich an das Laufzeit-Theme meiner Anwendung und habe dieses deaktiviert. IsThemeActive bezieht sich aber auf Windows-Themes, also: Ja, es funktioniert beides! :zustimm: