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

Поиск в TListview не только по "ListViewItem.Text"


xenon54

Вопрос

Всем привет! В компоненте TListView есть свойства SearchVisible. Установив его в true сверху компонента появляется строка поиска. Работает вполне сносно. В своем проекте я использую кастомыный ItemAppearance из примеров ("MultiDetailItem"). Как сделать так чтобы поиск фильтровал итемы не только по свойству "text" у итемов, но и ,например, по Detail1, Detail2, Detail3?

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

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

  • 0

Всем привет! В компоненте TListView есть свойства SearchVisible. Установив его в true сверху компонента появляется строка поиска. Работает вполне сносно. В своем проекте я использую кастомыный ItemAppearance из примеров ("MultiDetailItem"). Как сделать так чтобы поиск фильтровал итемы не только по свойству "text" у итемов, но и ,например, по Detail1, Detail2, Detail3?

Попробую предположить, что проще будет создать свой edit для строки фильтрации. Пробегать по итемам листа перебором и выставлять свойство item(i).Visible = false, где во всех нужных полях не содержится искомая комбинация. Хотя и изменить логику поведения в модуле FMX.SearchBox.pas наверное тоже возможно при желании.

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

 

Всем привет! В компоненте TListView есть свойства SearchVisible. Установив его в true сверху компонента появляется строка поиска. Работает вполне сносно. В своем проекте я использую кастомыный ItemAppearance из примеров ("MultiDetailItem"). Как сделать так чтобы поиск фильтровал итемы не только по свойству "text" у итемов, но и ,например, по Detail1, Detail2, Detail3?

Попробую предположить, что проще будет создать свой edit для строки фильтрации. Пробегать по итемам листа перебором и выставлять свойство item(i).Visible = false, где во всех нужных полях не содержится искомая комбинация. Хотя и изменить логику поведения в модуле FMX.SearchBox.pas наверное тоже возможно при желании.

 

Да хотелось бы хоть что-то сделать в ФМ без костылей, ибо потом они аукнутся через пару версий... А вот как этот поиск устроен в TListView при помощи SearchBox разобраться не могу...

Ссылка на комментарий
  • 0
если не хочешь править существующий создай свой класс на основе стандартного и в нем уже меняй. 
 
все действие происходит в классе TListViewItems процедуре ApplyFilter
 
      else if Filter(Item.Text) or Filter(Item.Detail) then
      begin
        FFilteredItems.Add(Item);
        Inc(SectionSize);
      end;
Ссылка на комментарий

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

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

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

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

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

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

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

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

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...