![]() |
abfragen, ob XPman eingebunden ist
Moin Leute :hi:
Ich konnte dazu leider nichts passendes finden. Wie frage ich ab, ob die Unit "XPman" eingebunden ist? In manchen Fällen muss man dann etwas anderes machen. Beispiel: Ein Label mit anderer Hintergrundfarbe. Mit Manifest möchte ich ein Panel dahinter packen, ParentBackGround = False und mit der gewünschten Farbe. Ohne XPman brauche ich das nicht. |
AW: abfragen, ob XPman eingebunden ist
XPMan ist doch schon längst wieder hinfällig.
Du musst abfragen ob die Anwendung/das Control gethemed ist. Vermutlich am einfachsten mit der Entsprechenden WinAPI-Methode: ![]() |
AW: abfragen, ob XPman eingebunden ist
Vielleicht hilft dir
Delphi-Quellcode:
aus der Unit Themes.pas hier weiter.
ThemeServices.ThemesEnabled
|
AW: abfragen, ob XPman eingebunden ist
Danke für die Antworten.
IsAppThemed gibt mir immer True zurück, auch wenn XPman nicht eingebunden ist. Uwes Lösung funktioniert. |
AW: abfragen, ob XPman eingebunden ist
XPMan wurde nur bei älteren Delphiversionen benötigt.
|
AW: abfragen, ob XPman eingebunden ist
Man könnte notfalls auch die Version der "CommonControls" prüfen, bzw. ob bestimmte Features vorhanden/aktiv sind.
PS: XP-Manifest ist nicht gleich XP-Manifest. Es gibt mehrere Teile innerhalb der Manifest-Ressource und nur ein winziger Teil kümmtert sich im die Anzeige. (hier ob die alten oder die neuen CommonControls verwendet werden sollen, was sich nicht nur auf die Anzeige, sondern vorallem auch verfügbare Funktionalitäten und die verwendete API bezieht) Zitat:
Zitat:
Die Remarks in ![]() Die Application kann die Funktionalitäten haben, aber sie müssen nicht aktiv sein. Also mindestens
Delphi-Quellcode:
.
IsAppThemed and IsThemeActive
Delphi-Quellcode:
{function TThemeServices.GetThemesEnabled: Boolean;
begin Result := FThemesAvailable and FUseThemes and FNewComCtrls; end;} function TThemeServices.GetThemesEnabled: Boolean; begin Result := (GetModuleHandle('uxtheme.dll') <> 0) // FThemesAvailable and (IsAppThemed and IsThemeActive) // FUseThemes and (GetFileVersion('comctl32.dll') >= {ComCtlVersionIE6}$00060000); // FNewComCtrls end; |
AW: abfragen, ob XPman eingebunden ist
Zitat:
Mit neuen Delphis ist das natürlich die zu verwendente Lösung. |
AW: abfragen, ob XPman eingebunden ist
Bei mir ist die Funktion <IsAppThemed> in der Unit <UxTheme> deklariert. Die Unit ist bei Turbo-Delphi dabei.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 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