Подсчитайте количество предметов в группе TLISTVIEW
Вопрос
Когда я пытаюсь подсчитать количество предметов в группе, я получаю общее количество предметов в коллекции. Как вы получаете количество предметов в каждой группе?
Решение
Это, вероятно, самый простой способ.
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;
Другие советы
Под Vista и позже только LVM_GETGROUPINFO
а также LVM_GETGROUPINFOBYINDEX
сообщения возвращает структуру LVGROUP, которая имеет cItems
Участник указывает количество предметов в группе.
Не связан с StackOverflow