Question

Je suis en train de regrouper les éléments à l'intérieur de TListView objet, mais je ne peux pas trouver la classe responsable de groupement les objets, ni que j'étais capable de trouver à l'intérieur de la documentation.

  • Qu'est-ce que la classe responsable sur le groupement d'éléments à l'intérieur de TListView objet, et comment l'utiliser correctement ?

La plate-forme est Firemonkey ( Android/iOS) / Delphi XE6

Était-ce utile?

La solution

La propriété, je crois que vous faites allusion à l'est TListGroups, une collection qui détient TListGroup éléments.Il y a un démo fournis dans le Delphi documentation.

Malheureusement, il est seulement disponible dans la VCL et pas FMX, comme la fonctionnalité sous-jacente est la partie de la Windows contrôle ListView qui TListView enveloppements.

Le plus proche que vous pouvez obtenir dans FMX est l'aide de TListBox et un TListBoxGroupHeader, qui est couvert dans le Multi-Dispositif de Tutoriel À l'aide de ListBox Composants pour Afficher une Vue de la Table (iOS et Android) dans le docwiki:

procedure TForm1.FormCreate(Sender: TObject);
var
  c: Char;
  i: Integer;
  Buffer: String;
  ListBoxItem : TListBoxItem;
  ListBoxGroupHeader : TListBoxGroupHeader;
begin
  ListBox1.BeginUpdate;
  for c := 'a' to 'z' do
  begin
    // Add header ('A' to 'Z') to the List
    ListBoxGroupHeader := TListBoxGroupHeader.Create(ListBox1);
    ListBoxGroupHeader.Text := UpperCase(c);
    ListBox1.AddObject(ListBoxGroupHeader);

    // Add items ('a', 'aa', 'aaa', 'b', 'bb', 'bbb', 'c', ...) to the list
    for i := 1 to 3 do
    begin
      // StringOfChar returns a string with a specified number of repeating characters.
      Buffer := StringOfChar(c, i);
      // Simply add item
      // ListBox1.Items.Add(Buffer);

      // or, you can add items by creating an instance of TListBoxItem by yourself
      ListBoxItem := TListBoxItem.Create(ListBox1);
      ListBoxItem.Text := Buffer;
      // (aNone=0, aMore=1, aDetail=2, aCheckmark=3)
      ListBoxItem.ItemData.Accessory := TListBoxItemData.TAccessory(i);
      ListBox1.AddObject(ListBoxItem);
    end;
  end;
  ListBox1.EndUpdate;
end;

Ce produit (image du docwiki)

Sample table view listbox appearance in iOS and Android

Autres conseils

Ceci est facilement accompli dans le contrôle TlistView FMX tout en utilisant LiveBindings en connectant votre champ TlistViewItem.header.beder.Break au fieled, vous souhaitez regrouper (ce sera un champ de votre DB qui est redondant sur de nombreux enregistrements).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top