1

Тема: AHK: Удаление пунктов в ListBox

Помогите мне, никак не могу разобраться.Как удалить выделенный мышкой пункт в ListBox'e?

Как сказал мой дед - Я твой дед

2

Re: AHK: Удаление пунктов в ListBox

В принципе этот элемент управления не предназначен для удаления отдельных пунктов. Но можно по нажатию горячей клавиши, например Delete, выполнить Gui, Submit, затем GUIControl.

3

Re: AHK: Удаление пунктов в ListBox

Есть код

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, а этот код стирает все пункты сразу.

Как сказал мой дед - Я твой дед

4

Re: AHK: Удаление пунктов в ListBox

И в догонку еще один вопрос, как сделать чтобы например я выделил один пункт мышкой, жму удалить и удалится C:\Wndows, а если выделю другой пункт то удалится C:\Windows\System32, а если третий то уже другое действие.

Как сказал мой дед - Я твой дед

5

Re: AHK: Удаление пунктов в ListBox

ypppu пишет:

В принципе этот элемент управления не предназначен для удаления отдельных пунктов.

Что вы имеете ввиду?


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

---

sergeiplugatyr пишет:

Только у меня одна проблема, у меня переменная List содержит другое значение выдаваемое RegRead, а этот код стирает все пункты сразу.

sergeiplugatyr пишет:

И в догонку еще один вопрос, как сделать чтобы например я выделил один пункт мышкой, жму удалить и удалится C:\Wndows, а если выделю другой пункт то удалится C:\Windows\System32, а если третий то уже другое действие.

Ничего непонятно.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6

Re: AHK: Удаление пунктов в ListBox

Да, насчёт ListBox я "погорячился".

msdn пишет:

Элемент управления ListBox позволяет отобразить список позиций, из которых пользователь может выбрать нужную щелчком мыши.
...
Кроме функций отображения и выбора, ListBox также реализует возможности, позволяющие эффективно добавлять элементы в ListBox и выполнять поиск текста в элементах списка.

7

Re: AHK: Удаление пунктов в 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

Спасибо, работает.

Как сказал мой дед - Я твой дед

8 (изменено: sergeiplugatyr, 2013-10-26 20:17:55)

Re: AHK: Удаление пунктов в ListBox

Кстати есть ли аналогичные команды этой

Control, Add

А то что-то она у меня не работает или я не правильно как то делаю.

Как сказал мой дед - Я твой дед

9

Re: AHK: Удаление пунктов в ListBox

sergeiplugatyr пишет:

Кстати есть ли аналогичные команды этой

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).

10

Re: AHK: Удаление пунктов в ListBox

В том то и дело, я читал документацию и всё так делаю как там написано, возможно не получается потому что я отправляю эту команду в основное окно Gui, а отправляю ее из второго окна.

Как сказал мой дед - Я твой дед

11

Re: AHK: Удаление пунктов в ListBox

Что тут может не получится?


Gui, Add, Listbox, hwndhListbox r25 
Gui, Show 
Sel := 0
Loop
{
    Control, Add, % ++Sel " строка", , ahk_id %hListbox%  
    Sleep 300
} 
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui