AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Welche Auflösungen besitzt ein *.ico-File
Thema durchsuchen
Ansicht
Themen-Optionen

Welche Auflösungen besitzt ein *.ico-File

Ein Thema von SittingDuck · begonnen am 15. Feb 2007 · letzter Beitrag vom 1. Jul 2012
Antwort Antwort
SittingDuck

Registriert seit: 11. Jan 2006
Ort: Leverkusen
159 Beiträge
 
Delphi 2010 Professional
 
#1

Re: Welche Auflösungen besitzt ein *.ico-File

  Alt 15. Feb 2007, 12:07
Hi ...

Nee, hift leider nicht, denn es wird immer 32x32 zurückgegeben,
auch wenn das Icon höhere Auflösungen enthält. Ich glaube das
muss über GetIconInfo ablaufen.

Das Handle auf mein Icon in meiner gewünschten Auflösung bekomme ich so:
(aus den 'Abgründen' des Internets)

Delphi-Quellcode:
function GethIcon(FileName: String; icoSize: Cardinal; icoIndex: integer = 0): Cardinal;
var DeskTopISF: IShellFolder; IExIcon: IExtractIcon; PathPidl: PItemIDList; hIconL, hIconS: HIcon;
begin
 Result := 0;
 {this function uses the IExtractIcon to get an e.g. 48x48 icon Handle
from a file that Has the Icon Bitmaps in it, like an Icon File (.ICO),
an executable (.EXE) and a library (.DLL)}


 if SHGetDesktopFolder(DeskTopISF) <> NOERROR then Exit;
 PathPidl := nil;
 if DeskTopISF.GetUIObjectOf(0, 1, PathPidl, IID_IExtractIconA, nil, IExIcon) <> NOERROR then Exit;
 if (IExIcon.Extract(PChar(FileName), icoIndex, hIconL, hIconS,
     icoSize or (16 shl 16)) = NOERROR) and (hIconL <> 0) then Result := hIconL;
 DestroyIcon(hIconS);
end;
Das funktioniert (leider) auch, wenn die entsprechende Datei kein Icon in meiner gewünschten Auflösung besitzt. Windows vergrößert das Icon dann und das möchte ich (in besserer Qualität) lieber selber machen.
Hinterher geht das wohl nicht mehr, deshalb möchte ich irgendwie vorher erfragen ob z.B. ein 48x48-Icon enthalten ist und falls nicht, dann lese ich lieber das 32x32-Icon aus und vergrößere es selber (per gr32)

Dankbar für jeden weitern Ansatz, grüßt ...
Ciao ... SittingDuck
iPhone Backup und mehr: iTwin v3.9 Beta ... Alternative Startleiste: Launcher v3.8 !
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 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