Es kann sein, dass TIcon.SaveToFile nur 4bit-Icons unterstützt. Die Datei enthält aber das Icon fast genau so, wie es in einer ICO-Datei abgespeichert wird, das heißt du kannst es theoretisch direkt aus der Datei in eine ICO-Datei kopieren.
Wichtig: ein HICON ist kein Handle zu einem kompletten Icon, sondern nur zu EINEM einzigen Abbild innerhalb des Icons. Das bedeutet, wenn das Icon, das du extrahierst zum Beispiel in 4bit und in 24bit gespeichert ist, könnte ExtractIconEx eventuell einfach das erste nehmen. Vielleicht kannst du mit CreateIconFromResourceEx das gewünschte HICON erhalten, wenn du zuvor mit LookupIconIdFromDirectoryEx() oder LoadResource die Resource geladen hast.
Im PSDK gibt im Artikel "Using Icons" ganz unten ein Codebeispiel dazu.
_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.