سؤال

أحاول تجميع العناصر داخل كائن TListView، لكن لا يمكنني العثور على الفئة المسؤولة عن تجميع الكائنات، ولم أتمكن من العثور عليها داخل الوثائق.

  • ما هي الفئة المسؤولة عن تجميع العناصر داخل كائن TListView، وكيفية استخدامها بشكل صحيح؟

النظام الأساسي هو Firemonkey (Android/iOS) / Delphi XE6

هل كانت مفيدة؟

المحلول

الخاصية التي أعتقد أنك تشير إليها هي TListGroups, ، مجموعة تحمل TListGroup أغراض.هناك تجريبي المنصوص عليها في وثائق دلفي.

لسوء الحظ، فهو متوفر فقط في VCL وليس FMX، حيث أن الوظيفة الأساسية هي جزء من عنصر تحكم Windows ListView الذي TListView يلتف.

أقرب ما يمكنك الحصول عليه في FMX هو الاستخدام TListBox و أ TListBoxGroupHeader, ، والتي يتم تناولها في البرنامج التعليمي للأجهزة المتعددة استخدام مكونات ListBox لعرض طريقة عرض الجدول (iOS وAndroid) في ال 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;

ينتج عن هذا (صورة من docwiki المشار إليه)

Sample table view listbox appearance in iOS and Android

نصائح أخرى

يتم إنجاز هذا بسهولة في عنصر تحكم FMX TALEDVOVEVOVERVOVERVEVERVENDINGS أثناء استخدام حقل LiveBindings عن طريق توصيل حقل TVIEVIVIEVIEDEM.HEADER.Break الخاص بك في Fieled الذي تريد تجميعه (سيكون حقلا في DB الخاص بك والتي لا جدال في العديد من السجلات).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top