我使用一下一个函数获得文件的图标
Function Get_ShellInfo(Const Filename:String;Const SmallIcon:Boolean=false):TSHFILEINFO;
var //函数用于获得文件图标
Flags : Integer;
begin
Flags := SHGFI_DISPLAYNAME or SHGFI_TYPENAME or SHGFI_ICON or SHGFI_ATTRIBUTES;
if SmallIcon then Flags := Flags or SHGFI_SMALLICON
else Flags := Flags or SHGFI_LARGEICON;
FillChar(Result,SizeOf(TSHFILEINFO),0);
SHGetFileInfo(Pchar(Filename),0,Result,Sizeof(Result),Flags);
end;经测试如果程序调用的该函数就会导致之后的按钮标签等控件的caption出现乱码,显示都变成???等。
在线等待中……
Function Get_ShellInfo(Const Filename:String;Const SmallIcon:Boolean=false):TSHFILEINFO;
var //函数用于获得文件图标
Flags : Integer;
begin
Flags := SHGFI_DISPLAYNAME or SHGFI_TYPENAME or SHGFI_ICON or SHGFI_ATTRIBUTES;
if SmallIcon then Flags := Flags or SHGFI_SMALLICON
else Flags := Flags or SHGFI_LARGEICON;
FillChar(Result,SizeOf(TSHFILEINFO),0);
SHGetFileInfo(Pchar(Filename),0,Result,Sizeof(Result),Flags);
end;经测试如果程序调用的该函数就会导致之后的按钮标签等控件的caption出现乱码,显示都变成???等。
在线等待中……
解决方案 »
- 在Web Server Application里面可以建立TCP连接么?
- 怎么老出现这条错误
- 一个sql语句查询出错难题,不知怎么修改,请各位高手帮忙!!!!!
- 用流存储图象,在access数据库中,出现错误高手指点一下这该怎么办?
- Outlook是怎么发信的? 我要截获Outlook发送的邮件.
- DBComboBox与数据库连接之后,DBComboBox下拉框可以显示所连接数据库的有关信息,但是下拉框中的信息只能浏览不能选中,当电击下拉框中的
- 有谁用过windows2000下数据保密API(DPAPI),如CryptProtectData?
- 各位有谁被猎头找上过?
- 在DBGrid中使用了LookUP字段,会提示堆栈出错!怎么回事?
- 难题(我要自杀了),还是没有解决的难题,我校的教授不知如何是好,说foxbase大概能解决,欢迎灌水!!!!
- 保存数据时显示参数类型不正确?
- 强制重启电脑的程序在有的电脑上管用,有的不管用,为什么呢?
Drives := GetLogicalDrives;
for i := 0 to 25 do
if LongBool(Drives and ($0001 shl i)) = True then
begin
driver := Char(Ord('A') + i); VolumeName := '';
GetVolumeInformation(pwidechar(driver + ':\'),
VolumeName,
256,
@SerialNum,
MaxFilenameLength,
Flags,
FileSystemType,
256); Buttonitem := form1.CategoryButtons1.Categories[0].Items.add;
Buttonitem.Caption := string(VolumeName) + '(' + driver + ':)';
Icon := TIcon.Create;
Icon.Handle := Get_ShellInfo(driver + ':\', true).hIcon; //得到文件的图标
n := form1.drivesImageList.AddIcon(Icon);
Buttonitem.ImageIndex := n;
form1.CategoryButtons1.Height := form1.CategoryButtons1.Categories[0].Items.count * 24 + 30;
end;