Sooo... Ich hasse es, wenn DeddyH immer Recht hat.
Selbermalen funktioniert pinzipiell so... (Komponentennamen zum Schutz der Beteiligten geändert
)
Delphi-Quellcode:
uses CommCtrl;
.
.
.
procedure TForm1.Listview1UsersCustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
var
aRect: TRect;
aIcon: TIcon;
begin
if SubItem = 2 then // 3. Spalte
begin
aIcon:= TIcon.Create;
try
DefaultDraw:= False; // Überzeichnen verhindern
ListView_GetSubItemRect(Sender.Handle,Item.Index,SubItem,LVIR_BOUNDS,@aRect); // TRect des SubItems holen
ImageList1.GetIcon(20,aIcon); // Icon aus Imagelist holen
Listview1.Canvas.Draw(aRect.Left + ((aRect.Right - aRect.Left - aIcon.Width) div 2),aRect.Top,aIcon);
// Icon auf Canvas zeichnen (mittig)
finally
aIcon.Free;
end;
end;
end;