Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как добавлять в TListView полноцветные иконки?

01.01.2007
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;

Взято из https://forum.sources.ru

Автор: alexanderm