Hej "Ironman",
for at udtrække et registreret ikon kan du anvende SHGetFileInfo, der er
defineret i ShellAPI modulet. Følgende funktion kan udtrækker et HICON
(handle til et ikon) ud fra et givent filnavn:
function GetSmallIconHandle(const aFileName : string):HICON;
// Returns the HICON (icon handle) corresponding to the small icon
// associated with aFileName
var
SFI: TSHFileInfo;
begin
SHGetFileInfo(PChar(aFileName), 0, SFI, SizeOf(TSHFileInfo), SHGFI_ICON or
SHGFI_SMALLICON);
Result := SFI.hIcon;
end;
Funktionen trækker 16x16 ikonet ud... for at få 32x32 versionen, anvendes
"SHGFI_LARGEICON" istedet for "SHGFI_SMALLICON". For at få dette handle til
et mere konkret ikon, skal du blot oprette et TIcon object og tildele
handle't til objektet:
var
HandleSmall : HICON;
IconSmall : TIcon;
begin
// Extract the small icon
HandleSmall := GetSmallIconHandle(aFileName);
// Initialize the small icon
IconSmall := TIcon.Create;
IconSmall.Width := 16; IconSmall.Height := 16;
IconSmall.Handle := HandleSmall;
Herefter skulle det være en smal sag at få skrevet ikonet ud... håber det
kan bringe dig videre.
Cheers,
Thomas