Как добавлять в ListView полноцветные иконки?
Материал из DRKB
Как добовлять в ListView полноцветные иконки?[править | править код]
procedure TForm1.FormCreate(Sender: TObject);
var
SysIL : THandle;
SysSIL : THandle;
SFI : TSHFileInfo;
begin
SysImageList1 := TImageList.Create(self);
with SysImageList1 do
begin
Width := 16;
Height := 16;
SysSIL := SHGetFileInfo('', 0, SFI, SizeOf(SFI),
SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
if SysSIL <> 0 then
begin
SysImageList1.Handle := SysSIL;
ShareImages := True;
end;
end;
SysImageList2 := TImageList.Create(self);
with SysImageList2 do
begin
Width := 32;
Height := 32;
SysIL := SHGetFileInfo('', 0, SFI, SizeOf(SFI),
SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
if SysIL <> 0 then
begin
SysImageList2.Handle := SysIL;
ShareImages := True;
end;
end;
end;
function GetIconIndex(const AFile: string; Attrs: DWORD): integer;
var
SFI: TSHFileInfo;
begin
SHGetFileInfo(PChar(AFile), Attrs, SFI, SizeOf(TSHFileInfo),
SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES);
Result := SFI.iIcon;
end;
with ListView.Items.Add do
begin
Caption := FName;
ImageIndex := GetIconIndex(Caption, FILE_ATTRIBUTE_NORMAL);
SubItems.Add(FSize);
SubItems.Add(FType);
SubItems.Add(FDateTime);
end;
Author: alexanderm
Source: Взято из http://forum.sources.ru
ID: 00634