Pergunta

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?

Foi útil?

Solução

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;

Outras dicas

Under Vista and later only, the LVM_GETGROUPINFO and LVM_GETGROUPINFOBYINDEX messages return a LVGROUP structure that has a cItems member specifying the number of items in the group.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top