![]() |
Item in TListView einfärben
Hi
ich wollte mal frage ob und wie es geht das ich ein einzelnes Item in eine TListView in einer bestimmten Farbe einfärb wenn ein bestimmter Inhalt vorliegt. Habe es bereits hinbekommen jede zweite Zeile einzufärben. ich hab meine TListView auf vsRecord Ich hoffe ihr könt mir helfen MfG BastardOp |
Re: Item in TListView einfärben
Wenn du jedes 2. Item einfärben kannst, was hindert dich daran genau das gleiche nur mit einem einzigen zu machen? :gruebel:
|
Re: Item in TListView einfärben
Im mom kann ich nur jede 2. Zeile einfärben aber ich will jetzte nur einzellne Zellen einfärben wen in denen "ja" steht
|
Re: Item in TListView einfärben
|
Re: Item in TListView einfärben
also ich habe mir mal die links angeschyut aber werde nich wirklich schlau draus.
Delphi-Quellcode:
den code habe ich im mom nur leider färbt sich damit nichts zu vor hatte ich keine 2. if anweisung sondern ein normales else drin und da wurden alle zeilen bei mir schwarz gemacht. Was mache ich flasch?
procedure TForm1.ListView6CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); var Item2 : TListItems; begin Item2 := ListView6.Items; with ListView6.Canvas.brush do begin if string(Item2) = 'ja' then begin Color := clred; end; if string(Item2) = 'nein' then begin Color := clBlack; end; end; end; MfG BastardOp |
Re: Item in TListView einfärben
:gruebel: Und wie kommst du auf den Code?
Du kannst nicht einfach TListitems auf String casten. Ausserdem ist mir schleierhaft, was du damit überhaupt willst. Du bekommst das aktuelle Item + Subitem doch als Parameter. Versuchs mal so:
Delphi-Quellcode:
Ist ungetestet, könnte aber funktionieren ;)
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); begin with ListView1.Canvas.brush do begin if (Item.SubItems[Subitem] = 'ja') then begin Color := clred; end else begin Color := clBlack; end; end; end; *edit* da fehlte noch ein "s" :oops: |
Re: Item in TListView einfärben
Kleiner Verbesserungsvorschlag:
Delphi-Quellcode:
Später müsste man dann noch State auswerten, damit das ganze schöner aussieht.
with Sender.Canvas.Brush do
if Item.SubItems[Pred(SubItem)] = 'ja' then Color := clred else Color := clBlack; Grüße vom marabu |
Re: Item in TListView einfärben
thx der code funzt soweit auch ganz gut aber is nicht ganz das was ich möchte denn ich will das nur die zelle in der ja bzw. nein steht gefärbt wird nun wird immer alles außer die 1. splate gefärbt.
wie geht des? |
Re: Item in TListView einfärben
Wenn der Code in OnCustomDrawSubItem steht, dann wird nur die Zelle gefärbt - bei mir.
marabu |
Re: Item in TListView einfärben
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 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