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:
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;
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.
Wenn ich etwas editiere oder einen Eintrag hinzufüge sollte es natürlich auch richtig sein, falls ein Item Checked=False hat.