Boah, da hab ich doch glatt vergessen, meinen Vorschlag zu posten.
Hier ist er, bzw. sie (die Funktion):
Delphi-Quellcode:
uses
ShellAPI;
function GetIconFromFile(const szFilename: string;
fSmall: boolean = false): TIcon;
const
dwIconFlags : array[boolean]of dword =
(SHGFI_LARGEICON,SHGFI_SMALLICON);
var
fi : TSHFileInfo;
begin
Result := nil;
// Symbol der Datei aus dem System ermitteln
// Typ (= groß/klein) richtet sich nach dem
// Funktionsparameter "fSmall" (default = false)
ZeroMemory(@fi,sizeof(fi));
SHGetFileInfo(pchar(szFilename),0,fi,sizeof(fi),
SHGFI_ICON or dwIconFlags[fSmall]);
// Symbol ermittelt
if(fi.hIcon <> 0) then
begin
Result := TIcon.Create;
if(Result <> nil) then
Result.Handle := fi.hIcon;
end;
end;
Diese Funktion lädt standardmäßig die großen Symbole, was du auch am Funktionskopf erkennen kannst:
Code:
[b]function[/b] GetIconFromFile([b]const[/b] szFilename: [b]string[/b];
[color=#ff0000]fSmall: boolean = [b]false[/b][/color]): TIcon;
D.h. du musst den zweiten Parameter nicht mal benutzen, wenn du die großen Symbole haben willst:
ImageList1.AddIcon(GetIconFromFile('c:\autoexec.bat'));
Da du aber auf die kleinen Symbole wild bist,
, hängst du beim Aufruf einfach noch ein
true an:
Code:
ImageList1.AddIcon(GetIconFromFile('c:\autoexec.bat',[color=red]true[/color]));
Das war´s.