Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ListView - Item färben (https://www.delphipraxis.net/72779-listview-item-faerben.html)

xZise 6. Jul 2006 16:28


ListView - Item färben
 
Kann ich in einer ListView mit der Einstellung Report ein Item färben?

Weil ich gerne ein Item, wenn es nicht gefunden wurde, rot hinterlegen (oder den Text rot einfärben).

BenjaminH 6. Jul 2006 16:45

Re: ListView - Item färben
 
Das hier ist doch das, was du suchtest, oder?

xZise 6. Jul 2006 17:08

Re: ListView - Item färben
 
Nicht ganz... Ich möchte es zur Luafzeit ändern.

D.h. sie wird ausgeführt, während sie schon längst gezeichnet wurde.

Allerdinsg könnte ma es umformen:
Dazu fehlt mir leider TCustumListView!

Nils_13 6. Jul 2006 17:32

Re: ListView - Item färben
 
Hier ein Beispiel:
Delphi-Quellcode:
procedure TfrmMain.lvTasksCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if Item.Checked then
  begin
    Sender.Canvas.Brush.Color := clWhite;
    Sender.Canvas.Font.Color := clBlack;
  end else
  begin
    Sender.Canvas.Brush.Color := $00006CEB;
    Sender.Canvas.Font.Color := clWhite;
  end;
end;

xZise 6. Jul 2006 18:35

Re: ListView - Item färben
 
Wann wird denn diese Funktion ausgeführt?

Zacherl 6. Jul 2006 18:36

Re: ListView - Item färben
 
Immer, wenn ein Eintrag neu gezeichnet werden muss, weil er z.B. von einem Fenster verdeckt war, oder sich geändert hat.
Das macht die Komponente aber selbstständig.

Florian

xZise 6. Jul 2006 18:47

Re: ListView - Item färben
 
Ich hätte es lieber "kontrollierbar" machen.
Und zwar gibt es eine Liste mit Dateien.
Diese soll er auf einem Buttonklick rot einfärben, wenn es diese Datei nicht mehr gibt (umbenannt, gelöscht).

Nils_13 6. Jul 2006 19:24

Re: ListView - Item färben
 
Dann wird doch etwas verändert, oder ?

DGL-luke 6. Jul 2006 19:30

Re: ListView - Item färben
 
dann mach dir einfach irgendwo ein boolean, das du bei buttonclick auf true setzt, listview.invalidate aufrufst und im ownerdraw prüfst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.

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