Тема: AHK: Удаление пунктов в ListBox
Помогите мне, никак не могу разобраться.Как удалить выделенный мышкой пункт в ListBox'e?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Помогите мне, никак не могу разобраться.Как удалить выделенный мышкой пункт в ListBox'e?
В принципе этот элемент управления не предназначен для удаления отдельных пунктов. Но можно по нажатию горячей клавиши, например Delete, выполнить Gui, Submit, затем GUIControl.
Есть код
List := "1 строка|2 строка|3 строка"
Gui, Add, Button, gDelete, Удалить
Gui, Add, Listbox, ym+30 xm h500 w500 vMyList, %List%
Gui, Show
return
Delete:
GuiControlGet, MyList
If MyList=
{
Msgbox, 0x10, Заголовок, Не выбран пункт
return
}
StringReplace, List, List, %MyList%,
StringReplace, List, List, ||, |, All
GuiControl,, MyList, |
GuiControl,, MyList, %List%
Только у меня одна проблема, у меня переменная List содержит другое значение выдаваемое RegRead, а этот код стирает все пункты сразу.
И в догонку еще один вопрос, как сделать чтобы например я выделил один пункт мышкой, жму удалить и удалится C:\Wndows, а если выделю другой пункт то удалится C:\Windows\System32, а если третий то уже другое действие.
В принципе этот элемент управления не предназначен для удаления отдельных пунктов.
Что вы имеете ввиду?
Gui, Add, Listbox, hwndhListbox gDelete, 1 строка|2 строка|3 строка
Gui, Show
return
Delete:
SendMessage, 0x188, 0, 0, , ahk_id %hListbox% ; If (ErrorLevel = 0xffffffff) Not Selected
Control, Delete, % ++ErrorLevel, , ahk_id %hListbox%
return
---
Только у меня одна проблема, у меня переменная List содержит другое значение выдаваемое RegRead, а этот код стирает все пункты сразу.
И в догонку еще один вопрос, как сделать чтобы например я выделил один пункт мышкой, жму удалить и удалится C:\Wndows, а если выделю другой пункт то удалится C:\Windows\System32, а если третий то уже другое действие.
Ничего непонятно.
Да, насчёт ListBox я "погорячился".
Элемент управления ListBox позволяет отобразить список позиций, из которых пользователь может выбрать нужную щелчком мыши.
...
Кроме функций отображения и выбора, ListBox также реализует возможности, позволяющие эффективно добавлять элементы в ListBox и выполнять поиск текста в элементах списка.
Ничего непонятно.
Я уже сам разобрался.
Gui, Add, Listbox, hwndhListbox gDelete, 1 строка|2 строка|3 строка
Gui, Show
return
Delete:
SendMessage, 0x188, 0, 0, , ahk_id %hListbox% ; If (ErrorLevel = 0xffffffff) Not Selected
Control, Delete, % ++ErrorLevel, , ahk_id %hListbox%
return
Спасибо, работает.
Кстати есть ли аналогичные команды этой
Control, Add
А то что-то она у меня не работает или я не правильно как то делаю.
Кстати есть ли аналогичные команды этой
Control, Add
А то что-то она у меня не работает или я не правильно как то делаю.
Полная документация на официальном сайте:
Control, Cmd [, Value, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]
Add, String: Adds String as a new entry at the bottom of a ListBox, ComboBox (and possibly other types).
В том то и дело, я читал документацию и всё так делаю как там написано, возможно не получается потому что я отправляю эту команду в основное окно Gui, а отправляю ее из второго окна.
Что тут может не получится?
Gui, Add, Listbox, hwndhListbox r25
Gui, Show
Sel := 0
Loop
{
Control, Add, % ++Sel " строка", , ahk_id %hListbox%
Sleep 300
}
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться