如何在你的程序中使用系统图标
点击次数:51 次 发布日期:2008-11-09 08:40:31 作者:源代码网
|
源代码网推荐 下面给出相关的例程,以及简单的调用实例。 源代码网推荐 源代码网推荐 uses shellapi; 源代码网推荐 源代码网推荐 第一步 取得系统的图标列表的句柄,将之赋予一个图像列表控件。 源代码网推荐 procedure GetSystemImageList(imagelist:TImageList); 源代码网推荐 var 源代码网推荐 SysIL: THandle; 源代码网推荐 SFI: TSHFileInfo; 源代码网推荐 begin 源代码网推荐 // 取小图标,如果将SHGFI_SMALLICON替换成 源代码网推荐 //SHGFI_LARGEICON则表示取大图标 源代码网推荐 SysIL := SHGetFileInfo("", 0, SFI, SizeOf(SFI), 源代码网推荐 SHGFI_SYSICONINDEX or SHGFI_SMALLICON); 源代码网推荐 if SysIL <> 0 then begin 源代码网推荐 //将imagelist的图像列表句柄指向系统图像句柄 源代码网推荐 imagelist.Handle := SysIL; 源代码网推荐 //防止组件释放时释放图像句柄,很重要 源代码网推荐 imagelist.ShareImages := TRUE; 源代码网推荐 end; 源代码网推荐 end; 源代码网推荐 源代码网推荐 第二步 取得要处理文件的图标索引 源代码网推荐 //取一个文件的图标索引 源代码网推荐 function GetIconIndex(const AFile: string; Attrs: DWORD): integer; 源代码网推荐 //Attrs可以为表示文件或路径FILE_ATTRIBUTE_NORMAL or FILE_ATTRIBUTE_DIRECTORY 源代码网推荐 var 源代码网推荐 SFI: TSHFileInfo; 源代码网推荐 begin 源代码网推荐 SHGetFileInfo(PChar(AFile), Attrs, SFI, SizeOf(TSHFileInfo), 源代码网推荐 SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES); 源代码网推荐 Result := SFI.iIcon; 源代码网推荐 end; 源代码网推荐 源代码网推荐 实例调用: 源代码网推荐 //如在TreeView中得到c:mydir的图标,因为是路径所以要加上路径的标志 源代码网推荐 aNode.ImageIndex := GetIconIndex("c:mydir", 源代码网推荐 FILE_ATTRIBUTE_NORMAL or FILE_ATTRIBUTE_DIRECTORY); 源代码网推荐 //如在TreeView中得到c:index.html的图标 源代码网推荐 aNode.ImageIndex := GetIconIndex("c:index.html",FILE_ATTRIBUTE_NORMAL); 源代码网推荐 源代码网供稿. |
