Как определить, что включён режим фильтрации в DI_LISTBOX-е Topic is solved

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
buniak_a_h
Posts: 4266
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Как определить, что включён режим фильтрации в DI_LISTBOX-е

Post by buniak_a_h »

Имеется диалог с DI_LISTBOX-ом. В обработчике сообщений на нажатые символы (маска ^(.|Space|BackSlash)$) предусмотрена обработка (например, поиск по списку). НО! Эта обработка должна действовать только при неактивной фильтрации (не было нажато CtrlAltF). Если режим фильтрации включен, то обработка должна быть стандартной.
Я попытался определить, активен ли фильтр по Menu.Filter(2) . Эта функция возвращает 1, если фильтр активен и фильтрующая строка (Menu.FilterStr) не пуста.

Как мне отловить ситуацию, когда режим фильтрации включен, а строка ещё не введена? Самому запоминать факт нажатия CtrlAltF ? Есть ли другой, более цивилизованный способ?
Last edited by buniak_a_h on Wed 08 Jan, 2020 02:52, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Как определить, что включён режим фильтрации в DI_LISTBOX-е

Post by John Doe »

buniak_a_h wrote: Wed 08 Jan, 2020 02:52 Как мне отловить ситуацию, когда режим фильтрации включен, а строка ещё не введена?
Menu.Filter(0,-1)
Post Reply

Return to “Нужна помощь”