Flags:=SHGFI_SYSICONINDEX or SHGFI_PIDL or SHGFI_ICON;//SHGFI_ICON or SHGFI_LARGEICON Or SHGFI_PIDL; New(lpItemID);
SHGetFileInfo(Pointer(lpItemID),0,FileInfo,SizeOf(FileInfo),Flags);
ShowMessage(IntToStr(lpItemID.mkid.cb));
imgHIcon:= FileInfo.hIcon;
LRtn:=ImageList_AddIcon(ImageList1.Handle,ImgHIcon);这个代码能实现吗?怎么改?
SHGetFileInfo(Pointer(lpItemID),0,FileInfo,SizeOf(FileInfo),Flags);
ShowMessage(IntToStr(lpItemID.mkid.cb));
imgHIcon:= FileInfo.hIcon;
LRtn:=ImageList_AddIcon(ImageList1.Handle,ImgHIcon);这个代码能实现吗?怎么改?
解决方案 »
- 如果更新字段的值(字段是不固定的)
- 一个简单的函数的问题!
- 请教windows media player 风格的调节音量的控件,(就是三角型的那种,非标准的TTrachbar), 有解决思路也给分
- 关于流操作 分数就100给不了太多 别见怪
- SQL语句问题
- 很是简单的问题。送分了。请问:ctrl和z的ASCII值是多少呀,给分现在就结贴
- 在Report中分组的问题
- 谁能提供borland公司delphi下载区的registered账号,或者delphi的update下载及eToys下载
- 怎样动态改变hp打印机属性中缓冲内存大于1M
- 请问如何在局域网中向某台机发送一个程序并让它立即执行?
- 要设计一个程序,要求当在一个窗体上输入以分号分割的一串数字时在其他的窗体上会立即将这串数字以坐标轴上的离散点、柱状图、饼图三种形
- 安装了Raize控件后,DELPHI不能正常运行了,怎么回事
#14: How can I get a system icons?
If you want to fill in TImageList the system icon list, then you can write the next: var FileInfo: TSHFileInfo;
begin
{to get a small icons}
imgListSysSmall := TImageList.Create(nil);
with imgListSysSmall do
begin
Handle := SHGetFileInfo('', 0, FileInfo, SizeOf(TSHFileInfo),
SHGFI_SMALLICON or SHGFI_SYSICONINDEX );
ShareImages := True;
end; {to get a small icons}
imgListSysLarge := TImageList.Create(nil);
with imgListSysLarge do
begin
Handle := SHGetFileInfo('', 0, FileInfo, SizeOf(TSHFileInfo),
SHGFI_LARGEICON or SHGFI_SYSICONINDEX );
ShareImages := True;
end;
end;Also if you want to get a "My Computer" icon, you must use the next
function:var FileInfo: TSHFileInfo;
PIDL: PItemIDList;
begin
SHGetSpecialFolderLocation(Application.Handle, CSIDL_DRIVES, PIDL);
if SHGetFileInfo(PChar(PIDL), 0, FileInfo, SizeOf(TSHFileInfo),
SHGFI_PIDL or SHGFI_SYSICONINDEX ) <> 0 then
Result := FileInfo.iIcon;
end;In this function you can use the constants from shlobj.pas: CSIDL_DESKTOP = $0000;
CSIDL_PROGRAMS = $0002;
CSIDL_CONTROLS = $0003;
CSIDL_PRINTERS = $0004;
CSIDL_PERSONAL = $0005;
CSIDL_FAVORITES = $0006;
CSIDL_STARTUP = $0007;
CSIDL_RECENT = $0008;
CSIDL_SENDTO = $0009;
CSIDL_BITBUCKET = $000a;
CSIDL_STARTMENU = $000b;
CSIDL_DESKTOPDIRECTORY = $0010;
CSIDL_DRIVES = $0011;
CSIDL_NETWORK = $0012;
CSIDL_NETHOOD = $0013;
CSIDL_FONTS = $0014;
CSIDL_TEMPLATES = $0015;
CSIDL_COMMON_STARTMENU = $0016;
CSIDL_COMMON_PROGRAMS = $0017;
CSIDL_COMMON_STARTUP = $0018;
CSIDL_COMMON_DESKTOPDIRECTORY = $0019;
CSIDL_APPDATA = $001A;
CSIDL_PRINTHOOD = $001B;