![]() |
Farbe einer Spalte in ListView ändern
Hallo,
(wie) ist es möglich, die farbe einer der Spalten eines ListViews zu ändern? Gruß, ManuMF |
Re: Farbe einer Spalte in ListView ändern
|
Re: Farbe einer Spalte in ListView ändern
Hallo,
danke erst mal für den Ansatz. Es funktioniert auch bei der 3. Spalte, bei der 1. aber nicht. Mein Code:
Delphi-Quellcode:
Was ist da falsch? :gruebel:
if (LatNSortMenue.Checked) then
begin if (SubItem = 0) then Sender.Canvas.Brush.Color := RGB(221, 236, 255) else Sender.Canvas.Brush.Color := ClWhite; end else begin if (SubItem = 2) then Sender.Canvas.Brush.Color := RGB(221, 236, 255) else Sender.Canvas.Brush.Color := clWhite; end; Gruß, ManuMF |
Re: Farbe einer Spalte in ListView ändern
Du hast nicht wirklich was falsch gemacht - für die erste Spalte musst du deine Einstellung aber in OnCustomDrawItem machen.
marabu |
Re: Farbe einer Spalte in ListView ändern
Hallo,
danke, das hat funktioniert. Aber (ja, ich bin anspruchsvoll ;-) ): Es werden dadurch nur die Items gefärbt. Ist das auch für die ganze Spalte möglich? Gruß, ManuMF |
Re: Farbe einer Spalte in ListView ändern
Hallo,
ich muss diesen Thread nochmal aufgreifen. In meiner ersten Spalte sind nur die CheckBoxen und kein Text. Wenn nun eine Zeile ausgewählt wird, dann wird auch die CheckBox selectiert dargestellt. Das möchte ich aber nicht. Deswegen dacht ich mir, ich könnte die 1. Spalte neu zeichnen. Nur leider funktioniert das nicht so wie ich mir das vorstell.
Delphi-Quellcode:
Das geht leider nicht (clRed ist nur testweise dort).
procedure TMainForm.ListView_DateienCustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); begin If SubItem = 0 then Listview_Dateien.Brush.Color := clRed; end; Wie könnt ich die 1. Zeile ändern? |
Re: Farbe einer Spalte in ListView ändern
Hi!
Nur selektiert dargestellt, oder haben die CB's auch den Wert TRUE? |
Re: Farbe einer Spalte in ListView ändern
sie haben auch nen zustand
also true oder false |
Re: Farbe einer Spalte in ListView ändern
Dann negiere Deinen Klick, den die ListView als Auswahl interpretiert, einfach. So musst Du nix neuzeichnen, jedenfalls nicht zwangsläufig.
Delphi-Quellcode:
An dieser Stelle stellt sich die Frage, weshalb die CheckBoxes den Zustand ändern, wenn nur ein RowSelect ausgeführt wird. Hast Du denn ein OnClick-Ereignis definiert o.ä., wo vielleicht eine Selektion durchgeführt wird??
ListView1.Items.Item[XYZ].Checked:=NOT ListView1.Items.Item[XYZ].Checked;
|
Re: Farbe einer Spalte in ListView ändern
Liste der Anhänge anzeigen (Anzahl: 1)
Ich denke du hast mich missverstanden.
Mit der CheckBox will ich ja nichts anstellen. Wie du im Bild siehst, ist die letzte Zeile markiert (blau hinterlegt). Die CheckBox selbst aber auch. eine nicht markierte CheckBox siehst du drüber. Nun möchte ich aber, dass die CheckBox trotz markierter Zeile nicht markiert aussieht - also so wie die vorletzte Zeile. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:44 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 by Thomas Breitkreuz