取系统图标 ( 积分: 100 )

H

hkcbz

Unregistered / Unconfirmed
GUEST, unregistred user!
//取得小图标集句柄
imagelist1.Handle:=SHGetFileInfo(nil,0,FileInfo,
SizeOf(FileInfo),SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
ImageList1.ShareImages:=true;

//取得大图标集句柄
imagelist2.Handle:= SHGetFileInfo(nil,0,FileInfo,SizeOf(FileInfo),
SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
ImageList2.ShareImages:=true;

procedure TForm1.Button1Click(Sender: TObject);
begin
WITH listview1.items.add DO
begin
Imageindex:=GetIconIndex(edit1.text,checkbox1.Checked);
Caption:=inttostr(imageindex);
form1.Caption:='图标列表长度'+inttostr(imagelist1.Count);
end;
end;

这样做虽能根据扩展名返回图标序号,但要怎么返回光驱,U盘的图标呢,我是说假如本机没有光盘,但我想用光盘图标,怎么得到
 
难道没有高人吗,顶一下
 
uses shellapi, CommCtrl;
procedure Tfm_getSysDefIcon.Button6Click(Sender: TObject);
function AGetSysDefaultICON(PathFileType: string = 'C:/'): HICON;
var sinfo: SHFILEINFO;
begin
ZeroMemory(@sinfo, sizeof(sinfo));

SHGetFileInfo(pchar(PathFileType),
FILE_ATTRIBUTE_NORMAL,
sinfo, sizeof(sinfo),
SHGFI_USEFILEATTRIBUTES or SHGFI_ICON);

Result := sinfo.hIcon;

self.Icon.Handle := Result;
self.Refresh;
DrawIconEx(Canvas.Handle, 10, 10, Result, 0, 0, 0, 0, DI_NORMAL);
end;
begin
AGetSysDefaultICON('d:/')
end;
 
保存 评价 游戏规则 免费注册 资料下载 关于本站
问题分类 编程问题 非技术题 富翁列表 我的信息 提出问题 在线富翁 富翁日历 笔记列表 我的笔记 写作笔记 全文检索 《专家门诊》

请确认帐号
--------------------------------------------------------------------------------

富翁名称: mcs_5152
专 家 分: 0
可用积分: 200

退出论坛


--------------------------------------------------------------------------------

友站直通车 !


管理我的信息
富翁之家模板
聊天室记事本
我的待答问题
我的已答问题
我收藏的问题
我参与的问题
查关键词
检索LID

--------------------------------------------------------------------------------


--------------------------------------------------------------------------------

大富翁论坛版权所有
问题:取系统图标 ( 积分:100, 回复:2, 阅读:13 )
分类:控件 - 使用 ( 版主:amo, cAkk )
来自:hkcbz, 时间:2007-7-25 21:08:00, ID:3815053 [显示:小字体 | 大字体]

//取得小图标集句柄
imagelist1.Handle:=SHGetFileInfo(nil,0,FileInfo,
SizeOf(FileInfo),SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
ImageList1.ShareImages:=true;

//取得大图标集句柄
imagelist2.Handle:= SHGetFileInfo(nil,0,FileInfo,SizeOf(FileInfo),
SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
ImageList2.ShareImages:=true;

procedure TForm1.Button1Click(Sender: TObject);
begin
WITH listview1.items.add DO
begin
Imageindex:=GetIconIndex(edit1.text,checkbox1.Checked);
Caption:=inttostr(imageindex);
form1.Caption:='图标列表长度'+inttostr(imagelist1.Count);
end;
end;

这样做虽能根据扩展名返回图标序号,但要怎么返回光驱,U盘的图标呢,我是说假如本机没有光盘,但我想用光盘图标,怎么得到


来自:hkcbz, 时间:2007-7-26 15:07:43, ID:3815364
难道没有高人吗,顶一下


来自:jfyes, 时间:2007-7-26 16:07:05, ID:3815390
uses shellapi, CommCtrl;
procedure Tfm_getSysDefIcon.Button6Click(Sender: TObject);
function AGetSysDefaultICON(PathFileType: string = 'C:/'): HICON;
var sinfo: SHFILEINFO;
begin
ZeroMemory(@sinfo, sizeof(sinfo));

SHGetFileInfo(pchar(PathFileType),
FILE_ATTRIBUTE_NORMAL,
sinfo, sizeof(sinfo),
SHGFI_USEFILEATTRIBUTES or SHGFI_ICON);

Result := sinfo.hIcon;

self.Icon.Handle := Result;
self.Refresh;
DrawIconEx(Canvas.Handle, 10, 10, Result, 0, 0, 0, 0, DI_NORMAL);
end;
begin
AGetSysDefaultICON('d:/')
end;




问题讨论没有结束 ...
mcs_5152,对此问题,您可以:


8 8 8
8 添加您对此问题的注释(请注意换行)

--------------------------------------------------------------------------------
正文标题一标题二标题三标题四黑色红色蓝色棕色绿色金色黄色紫色 --程序 更多 ...
--------------------------------------------------------------------------------


8如果有人回答了这个问题,请用 email 通知我。



在这里发贴,表示您接受了大富翁论坛的 游戏规则 和 版权协议







(C) 版权所有,大富翁编程网站 1998-2004 粤ICP备05016107号
感谢您的惠顾,如有任何建议和意见,请 联系版主。2004.3.20
 

Similar threads

I
回复
0
查看
361
import
I
I
回复
0
查看
562
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部