Einzelnen Beitrag anzeigen

Leonard

Registriert seit: 12. Okt 2005
Ort: Lutherstadt Eisleben
64 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: 16x16 Icon vor dem SubItem eines ListViews anzeigen

  Alt 31. Aug 2006, 16:53
Hallo,

ein Ansatz wäre das hier:

Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
var
  rTmp: TRect;
  bTmp: TBitmap;
  lv: TListView;
  i: Integer;
  w: Integer;
begin
  DefaultDraw := False;
  lv := TListView(Sender);
  bTmp := TBitmap.Create;
  try
    ImageList1.GetBitmap(Item.SubItemImages[SubItem-1], bTmp);
    rTmp := Item.DisplayRect(drSelectBounds);
    w := lv.Columns[0].Width;
    for i := 1 to SubItem - 1 do
      w := w + lv.Columns[i].Width;
    lv.Canvas.Draw(w + 2, rTmp.Top, bTmp);
    lv.Canvas.TextOut(w + 2 + bTmp.Width + 2, rTmp.Top, Item.SubItems[SubItem-1]);
  finally
    FreeAndNil(bTmp);
  end;
end;
Zu beachten ist eigentlich nur, dass es die ImageList1 gibt. Alles andere musst du mal ein bissel probieren. Ich glaube es gibt auch noch ein Problem, wenn man die Spaltenbreite ändert. Aber das Icon wird ersteinmal an die von dir gewünschte Stelle gemalt.

mfg Leonard
Tobias
  Mit Zitat antworten Zitat