Search code examples
delphitlistview

Count the number of items in a TListview Group


When I attempt to count the number of items in a group I get the total number of items in the collection. How do you get the number of items in each group?


Solution

  • This is probably the simplest way.

    procedure TForm1.Click(Sender: TObject);
    begin
      ShowMessage(IntToStr(GetNumItemsInGroup(1)));
    end;
    
    function TForm1.GetNumItemsInGroup(const GroupID: integer): integer;
    var
      i: Integer;
    begin
      result := 0;
      assert((GroupID >= 0) and (GroupID <= ListView1.Groups.Count - 1));
      for i := 0 to ListView1.Items.Count - 1 do
        if ListView1.Items.Item[i].GroupID = GroupID then
          inc(result);
    end;