TListViewFilterEdit

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

TListViewFilterEdit

Сообщение Ichthyander » 13.07.2015 12:42:26

Кто-нибудь использовал сей компонент? У меня что-то не работает: может я что-то упускаю. В интернете не нашел никакой информации, даже примеров использования.
При нажатии первых клавиш все элементы ListView исчезают, то есть видимо фильтруются(?). Но так никакой элемент списка и не отображается впоследствии, какие бы строки не вписывал, которые заведомо есть в элементах списка. Даже когда заново очищен фильтр ничего не появляется, TListView пустой, пока его не перезагрузить снова. Нужно самому прописывать какие-то действия по фильтрации, используя методы компонента TListViewFilterEdit?
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 675
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: TListViewFilterEdit

Сообщение alexs » 13.07.2015 15:54:35

Вроде нормально работает. Указал свойство ListViewFilterEdit1.FilteredListview и всё.

Lazarus 1.5 r49537M FPC 3.1.1 x86_64-linux-gtk 2
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: TListViewFilterEdit

Сообщение Ichthyander » 14.07.2015 05:33:52

alexs писал(а):Вроде нормально работает. Указал свойство ListViewFilterEdit1.FilteredListview и всё.
Lazarus 1.5 r49537M FPC 3.1.1 x86_64-linux-gtk 2

Проверил. Выяснилось вот что.
Создал проект с нуля, добавил в режиме дизайна элементы в ListView. Все работает.
Очистил элементы и попробовал создать те же элементы ListView динамически RunTime самой программой. Работать перестало...
Баг или какая-то фича непонятая мною?
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 675
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: TListViewFilterEdit

Сообщение Sharfik » 30.03.2020 18:53:04

Пять лет и никто не прокомментировал...
Компонент с юмором, как и все из фильтров пакета. Начинает работать если обновляться так:
procedure TFParameterEdit.btnRefreshClick(Sender: TObject);
var
i :integer;
Item :TListItem;
//...
begin
ListViewFilterEdit1.FilteredListview:=nil;
ListViewFilterEdit1.Clear;
ListViewFilterEdit1.Items.Clear;
lvDeclParam.BeginUpdate;
lvDeclParam.Clear;

//...

for i:=0 to SelCase.Count-1 do
begin
Item:=lvDeclParam.Items.Add;
//...
end;

lvDeclParam.AlphaSort;
lvDeclParam.EndUpdate;

ListViewFilterEdit1.FilteredListview:=lvDeclParam;
// Теперь все фильтруется, но поле Data у строк резко пустым становится при поиске
end;

В ином случае надо заполнять сам ListViewFilterEdit1 отправляя ему массивы строк, а не ListView как привычнее.
PS: а еще в 1.6 Lazarus если компонент фильтра привязан к LV, то при попытке вырезать последний из формы IDE падает.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 763
Зарегистрирован: 20.07.2013 01:04:30


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google Adsense [Bot] и гости: 43

Рейтинг@Mail.ru