Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi 16x16 Icon vor dem SubItem eines ListViews anzeigen (https://www.delphipraxis.net/76223-16x16-icon-vor-dem-subitem-eines-listviews-anzeigen.html)

Zacherl 31. Aug 2006 14:44


16x16 Icon vor dem SubItem eines ListViews anzeigen
 
Hi,

wie kann ich ein 16x16px Icon vor einem SubItem eines ListViews anzeigen lassen?

Florian

Leonard 31. Aug 2006 15:53

Re: 16x16 Icon vor dem SubItem eines ListViews anzeigen
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz