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:
XPMan wurde nur bei älteren Delphiversionen benötigt.
Und die zugehörige TXPManifest-Komponente war auch voll der Fail. (war nur dafür da die
Unit "automatisch" einzubinden, aber entfernen tat sie diese
Unit nie nicht wieder)
IsAppThemed gibt mir immer True zurück, auch wenn XPman nicht eingebunden ist.
Wo/Wann hast du diese Funktion aufgerufen?
Die Remarks in
IsAppThemed hast du gesehn?
Die Application kann die Funktionalitäten haben, aber sie müssen nicht aktiv sein.
Also mindestens
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;