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;