技巧:如何在ListItem显示相关文件图标

时间:2010-01-26 12:53:38  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:hi编写了一程序,能在ListItem中根据ListItem的文件名称(不管文件存不存在)的扩展名,获取与文件关联的图标。希望能给予各位参考。打开Delphi新建一工程project1,在表单form1中添加listItem,任意在ListItem中添加Item,比如:file.doc,file.xls,file.zip,file.rar等。源程序如下:
  正文:

Windows中对各种不同的文件以不同的图标显示出来,是Windwos操作系统的一大特色,并显得越来越重要,漂亮的图标也为各应用程序增添了不少的特色,如果能在我们自己编制的程序中根据文件的扩展名显示不同的图标,我想是很多编程爱好者非常感兴趣的东西?收哂Delphi编写了一程序,能在ListItem中根据ListItem的文件名称(不管文件存不存在)的扩展名,获取与文件关联的图标。希望能给予各位参考。
打开Delphi新建一工程project1,在表单form1中添加listItem,任意在ListItem中添加Item,比如:file.doc,file.xls,file.zip,file.rar等。
源程序如下:


unit Unit1;
interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls,ShellAPI,ImgList;
type
TForm1 = class(TForm)
ListView1: TListView;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
myImageList:TImageList;
end;
var
Form1: TForm1;
ShFileInfo: TSHFILEINFO;
implementation
{$R *.DFM}
//获取图标编号
function GetFileIconIndex(FileName:string):integer;
begin
  ShGetFileInfo(Pchar(FileName), 0, SHFileInfo,SizeOf(SHFileInfo),
  SHGFI_LARGEICON or SHGFI_SYSICONINDEX or SHGFI_TYPENAME or SHGFI_SMALLICON);
  Result:=SHFileInfo.iIcon;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
FStream:TFileStream;
i:integer;
begin
  MyImageList:=TImageList.CreateSize(32,32);
  myImageList.ShareImages:=True;
  myImageList.Handle:=ShGetFileInfo('',0,SHFileInfo, SizeOf(SHFileInfo),SHGFI_LARGEICON
  or SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_SMALLICON);    ListView1.SmallImages:=myImageList;
  ListView1.LargeImages:=myImageList;
  for i:=0 to ListView1.Items.Count-1 do
  begin
    FStream:=TFileStream.Create('c:'+ListView1.Items[i].Caption,fmCreate);
    FStream.Write(i,sizeof(integer));
    FStream.Free;
    ListView1.Items.Item[i].ImageIndex:=GetFileIconIndex('c:'+ListView1.Items[i].Caption);
    deletefile('c:'+ListView1.Items[i].Caption);
  end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
  myImageList.Free;
end;
end.

F5运行之后,程序就会根据ListItem中的Item中的名称提取windows中不同文件关联的图标。

"技巧:如何在ListItem显示相关文件图标"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/12429.html


关键字:

关于《技巧:如何在ListItem显示相关文件图标》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td