Registriert seit: 16. Sep 2009
Ort: 127.0.0.1
288 Beiträge
Delphi 2007 Professional
|
Re: Extrahieren des ICONs von BELIEBIGEM Dateityp?
26. Mär 2010, 10:13
Zitat von Deep-Sea:
Delphi-Quellcode:
uses ShellAPI, Math;
function GetFileIcon(AFileName: String; ASmall: Boolean = True; AIndex: Integer = 0): HIcon;
var
LDummy: HIcon;
LInfo: TSHFileInfo;
begin
LDummy := 0;
If ExtractIconEx(PChar(AFileName), -1, LDummy, LDummy, 0) <> 0 then
begin
If ASmall then ExtractIconEx(PChar(AFileName), AIndex, LDummy, Result, 1)
else ExtractIconEx(PChar(AFileName), AIndex, Result, LDummy, 1);
end else begin
SHGetFileInfo(PChar(SysUtils.ExtractFileExt(AFileName)),
FILE_ATTRIBUTE_NORMAL, LInfo, SizeOf(TSHFileInfo),
IfThen(ASmall, SHGFI_SMALLICON, SHGFI_LARGEICON) or
SHGFI_ICON or SHGFI_USEFILEATTRIBUTES);
Result := LInfo.HIcon;
end;
end;
Die Funktion gibt das Icon- Handle von jeder beliebigen Datei zurück - wenn die Datei keines besitzt, wird eben das Standard-Windows-Icon geholt. Läuft bei mir auf D2009, sollte aber auch auf anderen laufen ...
Wenn ASmall true ist gibt es an, dass kleine Icons geholt werden (16x16), bei false große (32x32). Warum Windows das so komisch macht und man keine Chance hat an evtl. vorhandene andere Größen ran zu kommen weiß ich net
Ich hoffe das läuft und ist das, was du wolltest
PS: Die Unit Math kann raus, wenn man das "IfThen" umgeht.
ich bedanke mich vielmals für deine hilfe ^^
Ich kann den Code leider erst heute abend ausprobieren. (bin an der arbeit...)
Ich melde mich dann aber wenn ich es damit geschafft habe
|
|
Zitat
|