![]() |
ListView :: Zeile markieren : funktioniert nicht komplett
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich möchte in einer ListView eine Zeile, also ein Item, markieren, wenn diese nicht gechecked ist. Dazu verwende ich folgenden Code:
Delphi-Quellcode:
Es werden zwar alle Items am Anfang markiert, aber im folgendem Screenshot ist das Problem gezeigt (Siehe roteingehramte Checkbox). Dies ist aber nur ein Beispiel für einen mir nicht bekannten Codefehler.
procedure TfrmMain.lvCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); var i: integer; begin for i := 0 to lvTasks.Items.Count - 1 do begin if lvTasks.Items[i].Checked = False then begin Sender.Canvas.Brush.Color := $00006CEB end else Sender.Canvas.Brush.Color := clWhite; end; end; Wenn ich etwas editiere oder einen Eintrag hinzufüge sollte es natürlich auch richtig sein, falls ein Item Checked=False hat. |
Re: ListView :: Zeile markieren : funktioniert nicht komplet
Du brauchst keine Schleife über alle Items machen, da er Event für jedes Item ausgelöst wird, welcher als Parameter Item übergeben
|
Re: ListView :: Zeile markieren : funktioniert nicht komplet
Also:
Delphi-Quellcode:
Florian
procedure TfrmMain.lvCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); var i: integer; begin if Item.Checked = False then begin Sender.Canvas.Brush.Color := $00006CEB end else Sender.Canvas.Brush.Color := clWhite; end; |
Re: ListView :: Zeile markieren : funktioniert nicht komplet
und bitte niemals Boolsche Vergleiche gegen True oder False machen --> siehe diverse Threads in der DP
#Ich schlage also vor:
Delphi-Quellcode:
Gruß
procedure TfrmMain.lvCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); begin if Item.Checked then Sender.Canvas.Brush.Color := clWhite; else Sender.Canvas.Brush.Color := $00006CEB end; onlinekater |
Re: ListView :: Zeile markieren : funktioniert nicht komplet
thx.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 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