1 (изменено: Gh0sTG0, 2021-02-05 23:16:44)

Тема: AHK: Checked Listview Space выделяет только один элементов

Всем привет.
Использую:

Gui, Add, ListView, w1288 h870 Checked glwFileList, Way

Дальше в Gui я выделяю, допустим, 5 элементов. Нажимаю на пробел и галочка появляется только на последнем.
Т.е. я делаю:
1) лкм на первый,
2) шифт зажать,
3) лкм на последний,
4) шифт отжать,
5) нажать пробел.
После чего галочка появляется только на том файле в который я ткнул в п.3, остальные 4 остаются выделенными но без галочек.
Можно ли как то сделать чтобы п.5 ставил галочки на всех выделенных файлах?
Искать пробовал, но походу как то формулирую не правильно...

2

Re: AHK: Checked Listview Space выделяет только один элементов

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

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3 (изменено: Gh0sTG0, 2021-02-05 23:40:24)

Re: AHK: Checked Listview Space выделяет только один элементов

__Михаил__
Я читал ту справку... И даже сейчас перечитал дважды, понятия не имею про что ты...
Можешь цитату?

4

Re: AHK: Checked Listview Space выделяет только один элементов

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

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

5

Re: AHK: Checked Listview Space выделяет только один элементов

Использовать нужно это 'LV_GetNext([StartingRowNumber, "Checked"])', тогда будет брать отмеченные элементы. Всё определяет, но пробел использовать наверно не лучший вариант для мульти выделения.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

6 (изменено: Gh0sTG0, 2021-02-06 00:42:29)

Re: AHK: Checked Listview Space выделяет только один элементов

__Михаил__
Ок. Походу разобрался, буду тыкаться дальше. Спасибо.

Gui, Add, ListView, w1288 h870 AltSubmit Checked glwFileList, Way

...

lwFileList:
	if A_GuiEvent = K
	{
		If GetKeyState("W","P")
			Loop
		    {
				RowNumber := LV_GetNext(RowNumber)
				if not RowNumber
				        break
			    LV_Modify(RowNumber, "+Check")
		    }
	}
Return

Похоже работает.

Upd:
Исправил код, вот так все прямо работает, да.

PS осталось понять как сделать чтобы он при нажатии на W не бдзинькал каждый раз, да... Пока буду использовать Space, он молчит.

7

Re: AHK: Checked Listview Space выделяет только один элементов

ListView является списком, в котором можно при нажатии клавиш находить элементы. Если первая буква / цифра нажатой клавиши не нашлось - произойдёт уведомление звуком, звук можно отключить в настройках микшера звука - 'Системные звуки', через трей.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

8

Re: AHK: Checked Listview Space выделяет только один элементов

__Михаил__
Т.е. guievent не перехватывает эту функцию?

9

Re: AHK: Checked Listview Space выделяет только один элементов

В справке думаю лучше написано чем я могу объяснить A_GuiEvent.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

10

Re: AHK: Checked Listview Space выделяет только один элементов

Можно попробовать через отрицание


		If (not GetKeyState("W","P"))
break
else
			Loop
		    {
				RowNumber := LV_GetNext(RowNumber)
				if not RowNumber
				        break
			    LV_Modify(RowNumber, "+Check")
		    }
Return

11

Re: AHK: Checked Listview Space выделяет только один элементов

Да через пробел норм.