uses
ShellAPI;
procedure TForm1.btn1Click(Sender: TObject); //大图标视图
var
LgImg: THandle;
sfi: TSHFileInfo;
sName, fName: string;
begin
Lgimg := SHGetFileInfo(pchar('c:\'), 0, sfi, SizeOf(sfi),
SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
ListView1.ViewStyle := vsIcon;
if OpenDialog1.Execute then
begin
ImageList1.Handle := LgImg;
fName := OpenDialog1.FileName;
sName := ExtractFileName(fName);
with ListView1.Items.add do
begin
if SHGetFileInfo(pchar(fName), 0, sfi, SizeOf(sfi),
SHGFI_ICON or SHGFI_LARGEICON or SHGFI_ATTRIBUTES) <> 0 then
ImageIndex := sfi.iIcon
else
ImageIndex := -1;
Caption := sName;
SubItems.Add(IntToStr(sfi.dwAttributes));
end;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject); //vsReport详细报告视图
var
smallImg: THandle;
sfi: TSHFileInfo;
sName, fName: string;
begin
//ImageList2.Width := 32;
//ImageList2.Height := 32;
//ListView1.ViewStyle := vsSmallIcon;
ListView1.GridLines := true;
ListView1.SmallImages := ImageList2;
if OpenDialog1.Execute then
begin
smallImg := SHGetFileInfo(pchar('c:\'), 0, sfi, SizeOf(sfi),
SHGFI_ICON or SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
ImageList2.Handle := smallImg;
fName := OpenDialog1.FileName;
sName := ExtractFileName(fName);
with ListView1.Items.add do
begin
SHGetFileInfo(pchar(fName), 0, sfi, SizeOf(sfi),
SHGFI_ICON or SHGFI_LARGEICON);
ListView1.Items.Item[ListView1.Items.Count - 1].ImageIndex := sfi.iIcon;
Caption := sName;
SubItems.Add(IntToStr(sfi.dwAttributes));
end;
end;
end;