![]() |
ListView: Text einer Zelle in einer anderen Farbe
Hallo,
wie kann ich einen Text einer Zelle in einer anderen Farbe darstellen? mfg Helmi |
Re: ListView: Text einer Zelle in einer anderen Farbe
Hi,
das geht im Eventhandler "CustomDrawItem" des Listviews.
Code:
IF item.Index=2 THEN // färbe 3. Zeile
begin Sender.Canvas.Brush.Color := clYellow; // gelben "Pinsel" für den Hintergrund Sender.Canvas.Font.Color := clRed; // Schrift-Farbe rot DefaultDraw := True; // item normal zeichnen end; |
Re: ListView: Text einer Zelle in einer anderen Farbe
Hallo,
danke für den Code. Nur leider ist das nicht das was ich brauche. Ich möchte nicht eine ganze Zeile markieren, sondern nur eine bestimmte Zelle also z. B. die Zelle(Zeile 3, Spalte 3) mfg Helmi |
Re: ListView: Text einer Zelle in einer anderen Farbe
Dann nimm anstatt CustomDrawItem CustomDrawSubItem ...
Habe dazu sogar einen Thread gefunden ... [dp]Hintergrundfarbe Zeile ListView Inhalt-Abhängig[/dp] :hi: |
Re: ListView: Text einer Zelle in einer anderen Farbe
danke für den Link
leider wird dort auch immer nur die Zeile markiert - aber nicht eine Zelle |
Re: ListView: Text einer Zelle in einer anderen Farbe
irgendwie soetwas sollte funktionieren...
Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); var R: TRect; Text: String; begin if (Item.Index = 1) and (SubItem = 1) then begin //get subitems rect ListView_GetSubItemRect(Sender.Handle, Item.Index, SubItem, LVIR_BOUNDS, @R); Text := Item.SubItems[SubItem]; //data Sender.Canvas.Brush.Color := clSkyBlue; Sender.Canvas.Font.Color := clGreen; Sender.Canvas.FillRect(R); //paint text DrawText(Sender.Canvas.Handle, PCHAR(Text), Length(Text), R, DT_SINGLELINE or DT_END_ELLIPSIS); DefaultDraw := False; end end; |
Re: ListView: Text einer Zelle in einer anderen Farbe
danke - dieser Code funktioniert
mit einem kleinem Schönheitsfehler der restliche Text ausser der in der Zelle, in der Zeile ist fett |
Re: ListView: Text einer Zelle in einer anderen Farbe
habe beobachtet, dass wenn man was in dem Event "CustomDrawItem" tut, und sei es nur eine linie ziehen mit draw, werden alle items genrell FETT geschrieben - warum?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:24 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