|
| Hente default-ikoner til en TImage Fra : ironman |
Dato : 23-08-01 00:31 |
|
Kunne nogen fortælle mig hvordan jeg får en TImage til at vise 16x16
pixels-udgaven af et ikon, som er associeret til en fil? (Fx 16x16
pixels ikonet for en .mp3 fil.)r gav mig et svar,men det var vist i exel og
--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"
| |
Thomas Rose (26-08-2001)
| Kommentar Fra : Thomas Rose |
Dato : 26-08-01 19:30 |
|
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
| |
|
|