AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi ListView :: Zeile markieren : funktioniert nicht komplett
Thema durchsuchen
Ansicht
Themen-Optionen

ListView :: Zeile markieren : funktioniert nicht komplett

Ein Thema von Nils_13 · begonnen am 8. Jun 2006 · letzter Beitrag vom 8. Jun 2006
Antwort Antwort
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

ListView :: Zeile markieren : funktioniert nicht komplett

  Alt 8. Jun 2006, 15:14
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.
Miniaturansicht angehängter Grafiken
lv_102.jpg  
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: ListView :: Zeile markieren : funktioniert nicht komplet

  Alt 8. Jun 2006, 16:39
Du brauchst keine Schleife über alle Items machen, da er Event für jedes Item ausgelöst wird, welcher als Parameter Item übergeben
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: ListView :: Zeile markieren : funktioniert nicht komplet

  Alt 8. Jun 2006, 16:46
Also:
Delphi-Quellcode:
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;
Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#4

Re: ListView :: Zeile markieren : funktioniert nicht komplet

  Alt 8. Jun 2006, 17:00
und bitte niemals Boolsche Vergleiche gegen True oder False machen --> siehe diverse Threads in der DP

#Ich schlage also vor:
Delphi-Quellcode:
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;
Gruß

onlinekater
Thomas Breitkreuz
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#5

Re: ListView :: Zeile markieren : funktioniert nicht komplet

  Alt 8. Jun 2006, 18:10
thx.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:09 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