Domanda

Quando si tenta di contare il numero di elementi in un gruppo ottengo il numero totale di elementi della collezione. Come si ottiene il numero di elementi in ogni gruppo?

È stato utile?

Soluzione

Questo è probabilmente il modo più semplice.

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;

Altri suggerimenti

In Vista e versioni successive, i messaggi LVM_GETGROUPINFO e LVM_GETGROUPINFOBYINDEX restituiscono una struttura LVGROUP che ha un membro cItems specificando il numero di articoli di questa categoria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top