Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
Delphi 10.4 Sydney
|
AW: Icons nicht existierender Dateien holen
28. Aug 2019, 14:02
bei den Attributen musst du noch SHGFI_USEFILEATTRIBUTES angeben.
Danke! Schubs hat gereicht
Delphi-Quellcode:
function GetFileInfo(AExt: string; var AInfo: TSHFileInfo): Boolean;
begin
ZeroMemory(@AInfo, SizeOf(TSHFileInfo));
Result := (
SHGetFileInfo(
PChar(AExt), FILE_ATTRIBUTE_NORMAL, AInfo, SizeOf(TSHFileInfo),
SHGFI_ICON + SHGFI_TYPENAME + SHGFI_USEFILEATTRIBUTES + SHGFI_LARGEICON
) <> 0
);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
I: Integer;
LExt, LStr: string;
LIcon: TIcon;
LInfo: TSHFileInfo;
LItem: TListItem;
LList: TStringList;
begin
LList := TStringList.Create;
try
LList.Add('test.txt');
LList.Add('test.exe');
LList.Add('test.xls');
ImageList1.Clear;
ListView1.Clear;
for LStr in LList do begin
LExt := ExtractFileExt(LStr);
if GetFileInfo(LExt, LInfo) then begin
I := -1;
LIcon := TIcon.Create;
try
LIcon.Handle := LInfo.hIcon;
LIcon.Transparent := true;
I := ImageList1.AddIcon(LIcon);
finally
LIcon.Free;
end;
LItem := ListView1.Items.Add;
LItem.Caption := LStr;
LItem.ImageIndex := I;
end;
end;
finally
FreeAndNil(LList);
end;
end;
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
|
|
Zitat
|