现在有10个应用程序……
C:\test1.exe
C:\ex2.exe
C:\ts1.exe
C:\ppy1.exe
C:\st5.exe
C:\es6.exe
C:\tct7.exe
C:\teb8.exe
C:\teq9.exe
C:\teww.exe
----------
把它们放入ListView里
程序名称|程序路径
----------
程序1 |C:\test1.exe
程序2 |C:\ex2.exe
程序3 |C:\ts1.exe
程序4 |C:\ppy1.exe
程序5 |C:\st5.exe
程序6 |C:\es6.exe
程序7 |C:\tct7.exe
程序8 |C:\teb8.exe
程序9 |C:\teq9.exe
程序10 |C:\teww.exe
获取它们的图标
function GetFileIcon(Const FileName:String; Smallicon:Boolean):HICON;
var
Info:TSHFILEINFO;
Flag:Integer;
begin
if Smallicon then
Flag:=(SHGFI_SMALLICON or SHGFI_ICON)
else
Flag:=(SHGFI_LARGEICON or SHGFI_ICON);
SHGetFileInfo(PChar(FileName),0,Info,SizeOf(Info),Flag);
Result:=Info.hicon;
end;
----------
如何利用自己写的GetFileIcon获取它们的图标一起存入Imagelist里……
请高手赐教……
C:\test1.exe
C:\ex2.exe
C:\ts1.exe
C:\ppy1.exe
C:\st5.exe
C:\es6.exe
C:\tct7.exe
C:\teb8.exe
C:\teq9.exe
C:\teww.exe
----------
把它们放入ListView里
程序名称|程序路径
----------
程序1 |C:\test1.exe
程序2 |C:\ex2.exe
程序3 |C:\ts1.exe
程序4 |C:\ppy1.exe
程序5 |C:\st5.exe
程序6 |C:\es6.exe
程序7 |C:\tct7.exe
程序8 |C:\teb8.exe
程序9 |C:\teq9.exe
程序10 |C:\teww.exe
获取它们的图标
function GetFileIcon(Const FileName:String; Smallicon:Boolean):HICON;
var
Info:TSHFILEINFO;
Flag:Integer;
begin
if Smallicon then
Flag:=(SHGFI_SMALLICON or SHGFI_ICON)
else
Flag:=(SHGFI_LARGEICON or SHGFI_ICON);
SHGetFileInfo(PChar(FileName),0,Info,SizeOf(Info),Flag);
Result:=Info.hicon;
end;
----------
如何利用自己写的GetFileIcon获取它们的图标一起存入Imagelist里……
请高手赐教……
=================================================================
如何理解?是获取该文件里面所有的ICO?还是获取在Windows资源管理器里代表它们的ICO?
ExtractIconFromFile取得图标
imagelist的add方法加入
procedure TForm1.Button1Click(Sender: TObject);
var b:TBitmap;
begin
b:=TBitmap.Create;
b.LoadFromFile('D:\1.bmp');
ImageList1.Add(b,b);//第一次用,第二个参数我也不是很清楚
ToolButton1.ImageIndex:=ImageList1.Count-1;
b.Free;
end;
var
xIco:TIcon;
begin
ImgLis.Clear;
xIco:=TIcon.Create;
try
xIco.Handle := GetFileIcon(FileName,True);
ImgList.Add(xIco);
finally
xIco.Free;
end;
end;