系统图像列表到ImageList

时间:2010-03-03 17:32:11  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读: />// 取小图标,如果将SHGFI_SMALLICON替换成//SHGFI_LARGEICON则表示取大图标SysIL := SHGetFileInfo('', 0, SFI, SizeOf(SFI),SHGFI_SYSICONINDEX or SHGFI_SMALLICON);if SysIL <> 0 then begin//将imagelist的图像列表句柄指向系统图像句柄imagelist.Handle := SysIL;//防止组件释放时释...
  正文: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;

//获取一个文件的imageindex;

function GetIconIndex(const APath: string; Attrs: DWORD): integer;

var

SFI: TSHFileInfo;

begin

if FileExists(APath) or DirectoryExists(APath) then

// If the file or directory exists, just let Windows figure out it's attrs.

SHGetFileInfo(PChar(APath), 0, SFI, SizeOf(TSHFileInfo),

SHGFI_SYSICONINDEX)

else

// File doesn't exist, so Windows doesn't know what to do with it. We have

// to tell it by passing the attributes we want, and specifying the

// SHGFI_USEFILEATTRIBUTES flag so that the function knows to use them.

SHGetFileInfo(PChar(APath), Attrs, SFI, SizeOf(TSHFileInfo),

SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES);

Result := SFI.iIcon;

end;

实例调用:

//如在TreeView中得到c:的图标,因为是路径所以要加上路径的标志

aNode.ImageIndex := GetIconIndex('c:,

FILE_ATTRIBUTE_NORMAL or FILE_ATTRIBUTE_DIRECTORY);

//如在TreeView中得到c:.html的图标

aNode.ImageIndex := GetIconIndex('c:.html',FILE_ATTRIBUTE_NORMAL);
系统图像列表到ImageList》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/13022.html


关键字:

关于《系统图像列表到ImageList》文章的评论

站内搜索: 高级搜索

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