![]() |
Re: TListView, in 1. Spalte Rechteck in bestimmter Farbe
Soo..hab dich falsch verstanden, jedoch weiß ich glaube ich jetzt was du genau meintest..
Hab mal den Code geschrieben:
Delphi-Quellcode:
Du musst halt noch die Sachen an dein Projekt anpassen, wichtig ist die ListView am anfang auf die Farbe zu setzen die du in der ersten Spalte haben möchtest...
procedure TForm1.ListView1AdvancedCustomDraw(Sender: TCustomListView;
const ARect: TRect; Stage: TCustomDrawStage; var DefaultDraw: Boolean); var rect : Trect; begin //Anpassen rect.Left := Listview1.Column[0].Width; rect.Top := ListView1.Top; //Färbt die 2 Spalte Sender.Canvas.Brush.Color := clWhite; Sender.Canvas.Brush.Style := bsSolid; Sender.Canvas.Pen.Style := psClear; Sender.Canvas.Pen.Color := clBlack; Sender.Canvas.FillRect(Rect); end; procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); begin (Sender As TListView).Canvas.Brush.Color := clWhite; (Sender As TListView).Canvas.Font.Color := clBlack; end; lg |
Re: TListView, in 1. Spalte Rechteck in bestimmter Farbe
Hallo,
danke, ich habe mich leider nicht genau ausgedrückt. Die Farbe der Spalte soll natürlich in Abhängigkeit des jeweiligen ListItems gefärbt werden. Jetzt habe ich folgende Situation.
Delphi-Quellcode:
ARect ist da, aber kein Item
procedure TForm.LV_DataAdvancedCustomDraw(
Sender: TCustomListView; const ARect: TRect; Stage: TCustomDrawStage; var DefaultDraw: Boolean);
Delphi-Quellcode:
Item ist da, aber kein Rect, Item.DisplayRect (drLabel) bringt auch nichts.
procedure TForm.LV_DataAdvancedCustomDrawItem(
Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean); Da muss ich wohl wirklich auf VST umsteigen, Mann, Mann, Mann ;( Heiko |
Re: TListView, in 1. Spalte Rechteck in bestimmter Farbe
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: TListView, in 1. Spalte Rechteck in bestimmter Farbe
Hallo,
ahhhh, nichts bringen war falsch ausgedrückt, er hatte immer die komplette Ziele gefärbt.
Delphi-Quellcode:
die letzte Zeile ist wichtig !
Sender.Canvas.FillRect(r);
Sender.Canvas.Font.Color := Graphics.clBtnText; Sender.Canvas.TextOut(r.Left + 2, r.Top, Item.Caption); Sender.Canvas.Brush.Color := TListView(Sender).Color; und hier noch mal der Code zum kopieren ;)
Delphi-Quellcode:
Deine Unterscheidung nach selected oder nicht habe ich übrigens
procedure TForm.LV_DataAdvancedCustomDrawItem(
Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean); var Rect : TRect; // ListItem.Data contains our own class DataItem : TDataItem; begin DataItem:= Item.Data; if DataItem<>NIL then begin if DataItem.iColor>-1 then begin begin Rect:= Item.DisplayRect(drLabel); Sender.Canvas.Brush.Color := DataItemm.iColor; Sender.Canvas.FillRect(Rect); Sender.Canvas.Brush.Color := TListView(Sender).Color; Exit; end; end; end; end; { LV_DataAdvancedCustomDrawItem } absichtlich nicht drin, damit beim Blättern immer die Farbe angezeigt wird. 1000 Dank jipppiiii :cheers: Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:37 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