HukpoFuJl
AццkuЙ HukpoFuJl
- Сообщения
- 98
- Репутация
- 38
Доброго времени суток, собственно в САБЖе указана идея, сейчас опишу подробнее.
Хочу разобрать всё на примере ListView, но если будут предложения более простого решения для других элементов - думаю тоже будет "в тему"...
В общем есть допустим список ListView, в нем что-то вроде прайс-листа, допустим с комповым железом. Есть Input для ввода текста фильтра. Нужно, что бы при вводе текста в поле фильтра в списке скрывались (!) элементы, в которых не содержится введенный текст...
Вот для примера:
Нужно, что бы при вводе "AM3" оставались только процы АМ3, а при вводе "AM2" оставались процы АМ2...
Теоретическое решение: При вводе текста пробегаться по элементам и скрывать/отображать те, которые не соответствуют/соответствуют введенному тексту...
Единственное не знаю как "скрыть" и "отобразить" элемент.
Ну и постоянный перебор списка при вводе может "подгружать" прогу, если список большой. (как вариант в таких случаях сделать фильтрацию по кнопке)
Хочу разобрать всё на примере ListView, но если будут предложения более простого решения для других элементов - думаю тоже будет "в тему"...
В общем есть допустим список ListView, в нем что-то вроде прайс-листа, допустим с комповым железом. Есть Input для ввода текста фильтра. Нужно, что бы при вводе текста в поле фильтра в списке скрывались (!) элементы, в которых не содержится введенный текст...
Вот для примера:
Код:
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
$GUI = GUICreate("Form1", 543, 410, 546, 239)
$lPrice = GUICtrlCreateListView("ID|Name|Price", 8, 40, 522, 358)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 300)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 150)
For $i=1 to 20
GUICtrlCreateListViewItem($i&"|processor"&$i&" AM"&Random(2,3,1)&"|"&Random(50,150,1), $lPrice)
Next
GUICtrlCreateLabel("Filter:", 8, 10, 29, 17)
$iFilter = GUICtrlCreateInput("AM3", 40, 8, 489, 21)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Теоретическое решение: При вводе текста пробегаться по элементам и скрывать/отображать те, которые не соответствуют/соответствуют введенному тексту...
Единственное не знаю как "скрыть" и "отобразить" элемент.
Ну и постоянный перебор списка при вводе может "подгружать" прогу, если список большой. (как вариант в таких случаях сделать фильтрацию по кнопке)