Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Seltsames Problem bei TListView Checkboxen (https://www.delphipraxis.net/123366-seltsames-problem-bei-tlistview-checkboxen.html)

stockholm 31. Okt 2008 16:34


Seltsames Problem bei TListView Checkboxen
 
Nabend,

folgender Code funktioniert 1a bei der lstBooks, aber die lstBookItems bleibt vollkommen unberührt.

Delphi-Quellcode:
procedure TfrmMain.CheckBox2Click(Sender: TObject);
var
 i: integer;
begin

 for i := 0 to lstBooks.Items.Count-1 do
 lstBooks.Items[i].Checked := CheckBox2.Checked;
 refreshBooks(self);

end;

procedure TfrmMain.CheckBox3Click(Sender: TObject);
var
 i: integer;
begin
 for i := 0 to lstBookItems.Items.Count-1 do
 lstBookItems.Items[i].Checked := CheckBox3.Checked;
 refreshBooks(self);
end;
Ich hoffe das ist irgendein Fehler, den ich einfach übersehe weil ich kaputt bin.

Hier das DFM dazu...

Delphi-Quellcode:
      object lstBookItems: TListView
        Left = 243
        Top = 50
        Width = 537
        Height = 352
        Anchors = [akLeft, akTop, akRight, akBottom]
        Checkboxes = True
        Columns = <
          item
            Caption = 'test'
            Width = 200
          end
          item
            Caption = 'test1'
            Width = 150
          end
          item
            Caption = 'test2'
            Width = 140
          end>
        ColumnClick = False
        GridLines = True
        ReadOnly = True
        RowSelect = True
        SmallImages = imgSmall
        TabOrder = 0
        ViewStyle = vsReport
      end
      object lstBooks: TListView
        Left = 26
        Top = 50
        Width = 211
        Height = 352
        Anchors = [akLeft, akTop, akBottom]
        Checkboxes = True
        Columns = <
          item
            Caption = 'test0'
            Width = 186
          end>
        ColumnClick = False
        GridLines = True
        ReadOnly = True
        RowSelect = True
        SmallImages = imgSmall
        TabOrder = 1
        ViewStyle = vsReport
        OnClick = refreshTest
      end
Danke!

DeddyH 31. Okt 2008 16:39

Re: Seltsames Problem bei TListView Checkboxen
 
Sieht eigentlich OK aus. Zeigst Du uns mal die Methode RefreshBooks?

stockholm 31. Okt 2008 16:43

Re: Seltsames Problem bei TListView Checkboxen
 
Zitat:

Zitat von DeddyH
Sieht eigentlich OK aus. Zeigst Du uns mal die Methode RefreshBooks?

Das dachte ich eigentlich auch :(

Delphi-Quellcode:
procedure TfrmMain.refreshBooks(Sender: TObject);
var
 i: integer;
 s: string;
 ANode : IXMLNode;
begin

 //lstBooks.Enabled := false;

 s := '';

 for i := 0 to lstBooks.Items.Count-1 do
 if lstBooks.Items[i].Checked then
 s := s + lstBooks.Items[i].SubItems[1]+'|';

 delete(s, length(s), 1);

 try

  s := httpGET(httpCli, REQUEST_URL);

  XMLDoc.LoadFromXML(s);
  XMLDoc.Active := true;

  lstBookItems.Clear;

  ANode := XMLDoc.DocumentElement.ChildNodes.First;

  while Assigned(ANode) do
  begin

    with lstBookItems.Items.Add do
     begin
      imageindex := 57;
      caption := ANode.ChildNodes['forename'].Text;
      subitems.Add(ANode.ChildNodes['surename'].Text);
      subitems.Add(ANode.ChildNodes['number'].Text);
      subitems.Add(ANode.ChildNodes['id'].Text);
      subitems.Add(ANode.ChildNodes['book'].Text);
     end;

    ANode := ANode.NextSibling;
  end;



 except
   // catch me
 end;

end;
Sollte damit nichts zu tun haben?

DeddyH 31. Okt 2008 16:45

Re: Seltsames Problem bei TListView Checkboxen
 
Scheint mir auch so. Da hilft wohl nur ein Breakpoint. Oder hast Du versehentlich die Methodenreferenz im OI gelöscht?

Dunkel 31. Okt 2008 16:48

Re: Seltsames Problem bei TListView Checkboxen
 
Was soll denn passieren? Sollen die Items der lstBookItems selektiert werden? Das wird so nämlich nicht funktionieren. In refreshBooks löscht Du doch die komplette Liste und legst neue, unselektierte!!! Items an. Denk nochmal drüber nach! :wink:

stockholm 31. Okt 2008 16:49

Re: Seltsames Problem bei TListView Checkboxen
 
Zitat:

Zitat von Dunkel
Was soll denn passieren? Sollen die Items der lstBookItems selektiert werden? Das wird so nämlich nicht funktionieren. In refreshBooks löscht Du doch die komplette Liste und legst neue, unselektierte!!! Items an. Denk nochmal drüber nach! :wink:

... danke ;)

edith sagt:

ne wat ma :D
in der CheckBox3 wird ja gar nichts neu generiert.
Das passiert ja nur in der refreshBooks, die nur bei CheckBox2 getriggert wird...

hm.

ah lol - sorry.
doch du hast recht :D

danke ;)

DeddyH 31. Okt 2008 16:54

Re: Seltsames Problem bei TListView Checkboxen
 
:lol: Ich bin heute mit Blindheit geschlagen, das muss am Feiertag liegen.

Dunkel 31. Okt 2008 16:57

Re: Seltsames Problem bei TListView Checkboxen
 
Jo, es ist Freitag. Mein Hirn hat anscheinend auch schon auf Wochenende umgeschaltet... aber das habe ich noch so gerade eben erkannt.

Schönes Wochenende! :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 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