Einzelnen Beitrag anzeigen

IYuky

Registriert seit: 29. Jan 2016
14 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Listview CustomDrawItem - Icons

  Alt 12. Jan 2017, 10:00
Hallo,

ich zeichne in einer Listview die Selektierung selber, leider verschwinden dadurch ja die SmallImages.
Wie bekomme ich die wieder drauf gezeichnet? Kann mir jmd mal helfen und mir sagen wie ich das machen kann.

Vielen dank schonmal im vorraus.

Lg IYuky

Code:
    with Sender.Canvas do
     begin
     if Item.Selected then
        begin
            Font.Color := clWhite;
            Brush.Color := TColor($8CA500);

            r := Item.DisplayRect(drBounds);
            FillRect(r);
            r.Left := 30;
            r.Right := r.Left + TListView(Sender).Columns[0].Width;
            s := Item.Caption;
            PrepareTextRect;
            TextRect(rt, s,[tfSingleLine, tfEndEllipsis]);
            for i := 0 to Item.SubItems.Count - 1 do
            begin
                r.Left := r.Left + TListView(Sender).Columns.Items[i].Width;
                r.Right := r.Left + TListView(Sender).Columns.Items[i + 1].Width;
                PrepareTextRect;
                s := Item.SubItems[i];
                TextRect(rt, s, [tfSingleLine, tfEndEllipsis]);
            end;
     end
     else begin
        Font.Color := TListView(Sender).Font.Color;
        Brush.Color := TListView(Sender).Color;

        r := Item.DisplayRect(drBounds);
        FillRect(r);
        r.Left := 30;
        r.Right := r.Left + TListView(Sender).Columns[0].Width;
        s := Item.Caption;
        PrepareTextRect;
        TextRect(rt, s,[tfSingleLine, tfEndEllipsis]);
        for i := 0 to Item.SubItems.Count - 1 do
        begin
            r.Left := r.Left + TListView(Sender).Columns.Items[i].Width;
            r.Right := r.Left + TListView(Sender).Columns.Items[i + 1].Width;
            PrepareTextRect;
            s := Item.SubItems[i];
            TextRect(rt, s, [tfSingleLine, tfEndEllipsis]);
        end;
     end;

     DefaultDraw := false;

  end;
  Mit Zitat antworten Zitat