Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.111 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: SHGetFileInfo : Programmicon in Imagelist kopieren

  Alt 15. Jun 2004, 16:24
Moin Lume,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Was mir als erstes aufgefallen ist:
SHGetFileInfo liefert im gezeigten Zusammenhang nur 0 (Fehler) oder <> 0 (Erfolgreicher Aufruf) zurück.
Den Rückgabewert an das ImageList Handle zu übergeben hat also keinen Sinn.

Ausserdem fehlt ein Resourcenschutzblock (try/finally) für die Bitmap.
Zudem solltest Du die Imagelist nicht in der Routine erzeugen, wenn Du sie auch ausserhalb verwenden willst.

Wieso der erste Aufruf funktioniert hat ist mir allerdings ein Rätsel, denn mit

tmpImgLst.GetBitmap(FileInfo.iIcon,tmpBitmap); rufst Du ein Bild aus der Imagelist ab und kopierst es in die Bitmap. FileInfo.iIcon hat mit Deiner Imagelist aber nichts zu tun, sondern bezieht sich auf die Systemimagelist.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat