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;