Перейти к содержанию
Fire Monkey от А до Я
  • 0

ListView скрывает повторяющийся текст заголовков


x11

Вопрос

Рекомендуемые сообщения

  • 0

Наверное я не совсем понятно пояснил.

Я имел ввиду, что в режиме DynamicApearance есть заголовок HEADER у всех Item`ом.

Так вот если заголовок повторяется, то повторяющиеся заголовки не выводятся, а должны.

На картинке "Заголовок3" повторяется 2 раза подряд, поэтому в красном прямоугольник название заголовка отсутствует, а оно должно  быть в любом случае.

Screenshot_37.png

Ссылка на комментарий
  • 0
1 час назад, x11 сказал:

Так вот как отключить эту "группировку"?

Думаю, что в вашем случае, не надо использовать группировку, а рисовать просто кастомные итемы, такие какие нужно!

Ссылка на комментарий
  • 0

Данные тянутся из базы и всё заполняется через LiveBinding. Item имеет разные метки, кнопки, картинку.

Пришлось создать в SQL запросе новое поле из двух других, где данные на 100% уникальны и заполнять этим полем header.

Кстати, LiveBinding подвал у Item`а не видит и непонятно как его заполнять.

Ссылка на комментарий
  • 0

да. в onUpdate или в onUpdating я их все время путаю

фигачим по 10 однотипных строк на каждый элемент итема и получаем полный контроль

Изменено пользователем krapotkin
Ссылка на комментарий
  • 0

вот кусок из рабочего кода.

Скрытый текст

procedure TJudgesFrame.lvMainUpdatingObjects(const Sender: TObject;
  const AItem: TListViewItem; var AHandled: Boolean);
var
  T,D:TListItemText;
  img:TListItemImage;
  acc:TListItemAccessory;
  jd:TJudgeData;
begin
  jd:=FJudgesList[AItem.Index];

  T:=aitem.Objects.FindObjectT<TListItemText>('T');
  D:=aitem.Objects.FindObjectT<TListItemText>('D');
  img := aitem.Objects.FindObjectT<TListItemImage>('I');;
  acc := AItem.Objects.FindObjectT<TListItemAccessory>('A');

  if T<>NIL then
  begin
    t.Font.size := 14.001;
    t.Font.Style := [TFontStyle.fsBold];
  end;
  if D<>NIL then
    D.Font.size := 13.001;
  if Acc<>NIL then
    acc.Visible:=false;
  if (img<>NIL) then
    img.ImageIndex := -1;
  AHandled := (t<>NIL)or(d<>NIL)or(img<>NIL);

  if (jd.Entered) then
  begin
    if T<>NIL then
      t.TextColor := TAlphaColorRec.Silver;
    if D<>NIL then
      d.TextColor := TAlphaColorRec.Silver;
  end
  else
  begin
    if T<>NIL then
      t.TextColor := TAlphaColorRec.Black;
    if D<>NIL then
      d.TextColor := TAlphaColorRec.Black;
  end;

end;
 

если протрассировать по FindObject, то можно найти все элементы, которые создаются автоматом при создании итема 

и заполнить тут, в коде

Ссылка на комментарий
  • 0

С месяц назад у меня стояла подобная задача отображения многострочной информации в списке. Парился я с кастомами в *list* в итоге понял, что единственный вариант - это TGrid. У него надо прописывать самому обработку нажатий с тачскрина, так как из коробки - это глюкалово. Но это по ходу единственный метод вывести список именно так, как хочется. Но тут конечно надо прописать немного кода будет....
 

Ссылка на комментарий
  • 0

Вот так делать, я считаю, нельзя

FindObjectT<TListItemText>('T'); 

 

Что-то переименовал, удалил и забыл в коде поменять. И на этапе компиляции пропускаешь кучу ошибок.

Ссылка на комментарий
  • 0

с чего бы мелочь. несколько (а не стандартные текст/детейл)  элементов с разным оформлением и раскладкой, зависящих  от данных,  управление высотой итема, рисование самодельных элементов, иконок, реакция на клики 

Ссылка на комментарий
  • 0
3 часа назад, krapotkin сказал:

с чего бы мелочь. несколько (а не стандартные текст/детейл)  элементов с разным оформлением и раскладкой, зависящих  от данных,  управление высотой итема, рисование самодельных элементов, иконок, реакция на клики 

Было бы Интересно посмотреть.... думаю многие бы что-нибудь полезного подчерпнули...:)

Ссылка на комментарий
  • 0

 

А что такое Adapter и с чем его едят?

 

Что делает эта строка? Для чего она?

item.Adapter.ResetView(item);

В справке очень скудное и непонятное описание.

И ещё про ResetView - что это и для чего? Когда применять?

Спасибо.

 

Изменено пользователем x11
Ссылка на комментарий
  • 0

и header и footer это такие же текстовые элементы как и прочие и заполнять их можно точно так же

 item:=lvWallets.Items.Add;
 item.Purpose := TListItemPurpose.Header;

и при отрисовке проверять item.Purpose и рисовать по-другому...

Изменено пользователем krapotkin
Ссылка на комментарий
  • 0

В ручную всё создавать, когда есть визуальный редактор? Нет уж, увольте.

Прописывать каждое свойство всех меток: расположение, размеры, место и т.д.

Я как подумаю, что каждую метку "центрировать" в коде, запускать приложение, проверять, если не понравилось, сновать высчитывать и так по кругу....

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...