// TImagelist an XP
anpassen, damit XP-Icons korrekt dargestellt werden.
{$R XPSTYLE.res} // siehe Buttons im XP-Style anzeigen uses commctrl; var Mask: array[Boolean] of Integer = (0, ILC_MASK); procedure Convert(const IL: TImageList); var hlp: TImageList; begin if Assigned(IL) then begin hlp := TImageList.Create(nil); hlp.Assign(IL); with IL do Handle := ImageList_Create(Width, Height, ILC_COLOR32 or Mask[Masked], 0, AllocBy); IL.AddImages(hlp); hlp.free; end; end; // Beispielaufruf procedure TForm1.Button2Click(Sender: TObject); var tli: TLIstitem; datei: string; FileInfo: SHFileInfo; begin Listview1.LargeImages := IMagelist1; Listview1.ViewStyle := vsIcon; Datei := 'C:\info.txt'; Imagelist1.Width := 32; Imagelist1.Height := 32; tli := Listview1.items.add; tli.Caption := ExtractFileName(Datei); SHGetFileInfo(pchar(Datei), 0, FileInfo, sizeof(FileInfo), SHGFI_USEFILEATTRIBUTES or SHGFI_Icon); tli.imageindex := ImageList_AddIcon(ImageList1.handle, FileInfo.HIcon); Convert(Imagelist1); tli := Listview1.items.add; tli.Caption := Listview1.items[0].caption; tli.imageindex := ImageList_AddIcon(ImageList1.handle, FileInfo.HIcon); end; |
Zugriffe seit 6.9.2001 auf Delphi-Ecke