Hallo,
ich benutze den unteren Code um mir in ner ListView das Icon eines bestimmten Dateityps anzeigen zu lassen. Klappt soweit auch ganz gut nur hab ihc das Problem, dass die Icons nur ganz winzig dargestellt werden. Achso und ich weis auch nicht welchen Parameter ich der function "GetAssociatedIcon" übergeben muss damit ich das Icon von einem Verzeichnis bekomme.
Delphi-Quellcode:
function GetAssociatedIcon(const AExtension: string; ASmall: Boolean): HIcon;
var
Info: TSHFileInfo;
Flags: Cardinal;
begin
if ASmall then
Flags := SHGFI_ICON or SHGFI_SMALLICON or SHGFI_USEFILEATTRIBUTES
else
Flags := SHGFI_ICON or SHGFI_LARGEICON or SHGFI_USEFILEATTRIBUTES;
SHGetFileInfo(PChar(AExtension), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), Flags);
Result := Info.hIcon;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ListItem: TListItem;
icon : TIcon;
begin
ListView1.ViewStyle:=vsIcon;
ListView1.LargeImages := Imagelist1;
Icon := TIcon.Create;
Icon.Handle := GetAssociatedIcon('.wma', false);
icon.Transparent := true;
ListView1.Items.BeginUpdate;
ListItem := ListView1.Items.Add;
ListItem.ImageIndex := ImageList1.AddIcon(Icon);
ListItem.Caption := 'Test.wma';
ListView1.Items.EndUpdate;
Icon.Free;
end;
Gruß
Sir K