AW: Ermitteln ob im Manifest "Themes" aktiviert wurde?
Zitat:
FreeLibrary(dwm10); (Die Namensgebung ist aber falsch weil es nichts mit DWM zu tun hat) Aber gehört zu einem anderen Thema.. |
AW: Ermitteln ob im Manifest "Themes" aktiviert wurde?
Zitat:
Zitat:
Delphi-Quellcode:
procedure kzTheme.SetDwmMode(const AMode: ShortInt);
const WCA_ACCENT_POLICY = 19; ACCENT_DISABLE = 0; ACCENT_ENABLE_GRADIENT = 1; ACCENT_ENABLE_TRANSPARENT = 2; ACCENT_ENABLE_BLURBEHIND = 3; GRADIENT_COLOR = $01000000; DrawLeftBorder = $20; DrawTopBorder = $40; DrawRightBorder = $80; DrawBottomBorder = $100; var dwm10: THandle; data: TWinCompAttrData; accent: AccentPolicy; begin if (not ((AMode = 0) or (AMode = 2) or (AMode = 3))) then Exit; dwm10 := LoadLibrary(user32); try @SetWindowCompositionAttribute := GetProcAddress(dwm10, 'SetWindowCompositionAttribute'); if @SetWindowCompositionAttribute <> nil then begin accent.AccentState := AMode; accent.AccentFlags := DrawLeftBorder or DrawTopBorder or DrawRightBorder or DrawBottomBorder; if ((FStyleTheme = ThemeSystem) or (FStyleTheme = ThemeWallpaper)) then accent.GradientColor := FColorBackground; data.attribute := WCA_ACCENT_POLICY; data.dataSize := SizeOf(accent); data.pData := @accent; SetWindowCompositionAttribute(FForm.Handle, data); end; finally FreeLibrary(dwm10); end; end; |
AW: Ermitteln ob im Manifest "Themes" aktiviert wurde?
Er mein du mußt user32 nicht laden. (Weil immer geladen)
ein GetModuleHandle('user32') sollte reichen anstatt FreeLibrary dann einfach CloseHandle(dwm10) Aber wie ich schon sagte ist ja aus deinem anderen Thread. ;) EDIT: @himitsu Mit dwm10 := 'fails'; meinte ich das die Namensgebung nicht stimmt (nicht das LoadLibrary falsch ist oder das laden nicht funktioniert) |
AW: Ermitteln ob im Manifest "Themes" aktiviert wurde?
Garkein Close nötig :wink:
und auch Try-Finally weg. GetModuleHandle gibt einfach das aktuelle Handle zurück (oder 0 wenn nicht geladen wäre), kein neues Handle (was man freigeben müsste) User32 gehört mit zu den DLLs, welche durch die RTL und vorallem VCL/FMX automatisch drin sind. |
AW: Ermitteln ob im Manifest "Themes" aktiviert wurde?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz