Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: abfragen, ob XPman eingebunden ist

  Alt 5. Dez 2017, 11:17
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 MSDN-Library durchsuchenIsAppThemed 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;
$2B or not $2B

Geändert von himitsu ( 5. Dez 2017 um 11:33 Uhr)
  Mit Zitat antworten Zitat