![]() |
Nur 32x32 Shell System Icons In Imglist verwenden
Hallo,
ich möchte wie oben schon erwähnt einfach nur 32x32 Große System Icons verwenden. Momenten lese ich die icons so aus.
Delphi-Quellcode:
Das funktioniert auch nur es tritt ein problem auf falls der user unter den Desktop Eigenschaften Dialog unter dem Tas "Darstellung" und Effekte->Große Symbole aktiviert hat. Die Large SysIcons sind jetzt ja 48x48 groß, jedoch möchte ich nur 32x32 große Icons verwenden, da ich noch zusätzlich aus einer ressource 32x32 icons in die "LargeSystemImages" Imagelist hinzufüge und es so zu einer Exception kommt logischerweise. Wie Kann ich nur 32x32 System icons laden obwohl "Große Symbole" aktiviert ist.
hImgBig := SHGetFileInfo('', 0, SHFileInfo, SizeOf(SHFileInfo), SHGFI_SYSICONINDEX or SHGFI_LARGEICON or SHGFI_SHELLICONSIZE);
if (hImgBig <> 0) then LargeSystemImages.Handle := hImgBig; habe folgendes versucht
Delphi-Quellcode:
funktioniert jedoch auch nicht.
function TUtils.ImageListLarge: HIMAGELIST;
type TSHGetImageList = function (iImageList: integer; const riid: TGUID; var ppv: Pointer): hResult; stdcall; var hInstShell32: THandle; SHGetImageList: TSHGetImageList; const SHIL_LARGE= 0;//32X32 <------ SHIL_SMALL= 1;//16X16 SHIL_EXTRALARGE= 2; //48x48 IID_IImageList: TGUID= '{46EB5926-582E-4017-9FDF-E8998DAA0950}'; begin Result:= 0; hInstShell32:= LoadLibrary('Shell32.dll'); if hInstShell32<> 0 then try SHGetImageList:= GetProcAddress(hInstShell32, PChar(727)); if Assigned(SHGetImageList) and (Win32Platform = VER_PLATFORM_WIN32_NT) then SHGetImageList(SHIL_LARGE, IID_IImageList, pointer(Result)); finally FreeLibrary(hInstShell32); end; end; hImgBig := util.ImageListLarge; if (hImgBig <> 0) then LargeSystemImages.Handle := hImgBig; hmm ich hoffe mir kann jemand weiterhelfen. danke fürs lesen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 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