首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi7程序显示乱码,该怎么解决

2012-03-27 
delphi7程序显示乱码我使用一下一个函数获得文件的图标Function Get_ShellInfo(Const Filename:StringCon

delphi7程序显示乱码
我使用一下一个函数获得文件的图标
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出现乱码,显示都变成???等。
在线等待中……

[解决办法]

[解决办法]
我写过的代码,参考一下吧
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;

热点排行