Автор Тема: Как добавлять и удалять элементы в текущую позицию List  (Прочитано 290 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vaf [?]

  • Новичок
  • *
  • Сообщений: 152
  • Репутация: 2
    • Награды
Всем привет. Возникла следующая задача.
Необходимо добавлять элементы в список GUICtrlCreateList, но добавлять не просто чтобы добавлялись в конец списка, а так что если курсор стоит на каком нибудь элементе, то добавление было перед этим элементом, точно так же и удаление, не просто удалять последнее значение из списка, а то на котором стоит курсор. И подскажите пожалуйста, как вывести весть список значений GUICtrlCreateList
Вот что у меня пока получилось, если подкорректируете под выше описанную задачу, буду очень рад.
Заранее огромное спасибо.

Код: AutoIt [Выделить]
#include <ListBoxConstants.au3>
#include <GUIConstantsEx.au3>

; Create a GUI
#include <GUIConstantsEx.au3>

Opt("GUICoordMode", 2)

$hGUI = GUICreate("Настройка", 500, 500)

; Create the combo
$hCombo = GUICtrlCreateCombo("", 10, 10, 200, 20)
$BtnIns = GUICtrlCreateButton("Добавить", 10, -18, 70)
$BtnDel = GUICtrlCreateButton("Удалить", 10, -20, 70)
$BtnOk = GUICtrlCreateButton("Ok", 10, -20, 50)
$mylist = GUICtrlCreateList("", -420, 10, 420, 100, $GUI_SS_DEFAULT_LIST + $LBS_NOINTEGRALHEIGHT)

GUICtrlSetLimit(-1, 200) ; ограничить прокрутку по горизонтали

GUICtrlSetData($hCombo, '|Авто|Автоспорт|Армия и оружие|Баскетбол|В мире|Важное за сутки|Гаджеты|Главное|Единоборства|ЖКХ|Здоровье|Игры|Интернет|Кино|Космос|Культура|Лесные пожары|Музыка|Наука|Недвижимость|Общество|Погода|Политика|Происшествия|Путешествия|Рекомендуем почитать|Религия|Спорт|Театры|Теннис|Технологии|Транспорт|Финансы|Футбол|Хоккей|Шоу-бизнес|Экология|Экономика|Энергетика|')

GUISetState()

While 1
    $msg = GUIGetMsg()
    Switch $msg
        Case $GUI_EVENT_CLOSE
            ExitLoop
         Case $hCombo
         ;Case $BtnIns
        ;   MsgBox(4096, 'Тест', GUICtrlRead($hCombo) , 0, $hGUI)
         Case $BtnIns
            GUICtrlSetData($mylist, GUICtrlRead($hCombo) & "|")
         Case $BtnDel
            $tmp = GUICtrlSendMsg($mylist, $LB_DELETESTRING, 3, 0)
         Case $BtnOk
    EndSwitch
WEnd
 


Русское сообщество AutoIt


Оффлайн vaf [?]

  • Новичок
  • *
  • Сообщений: 152

  • Автор темы
  • Репутация: 2
    • Награды
С сортировкой и удалением текущей позиции разобрался, осталось самое сложное - как добавить значение в GUICtrlCreateList не в конец списка, а в позицию курсора

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3975
  • Репутация: 1056
    • Награды
  • Версия AutoIt: 3.3.14.0
Для расширенной работы со списком см. UDF GuiListBox.au3
Конкретно см. примеры по следующим функциям
Код: AutoIt [Выделить]
А для вывода всех значений нужно узнать количество строк через
Код: AutoIt [Выделить]
и в цикле получать их текст через
Код: AutoIt [Выделить]


Добавлено: Октябрь 09, 2018, 21:06:32
Для преобразования ControlID в hWnd используйте
Код: AutoIt [Выделить]
« Последнее редактирование: Октябрь 09, 2018, 21:06:32 от InnI, Причина: Объединение сообщений »

Оффлайн vaf [?]

  • Новичок
  • *
  • Сообщений: 152

  • Автор темы
  • Репутация: 2
    • Награды
Для расширенной работы со списком см. UDF GuiListBox.au3
Конкретно см. примеры по следующим функциям
Код: AutoIt [Выделить]
А для вывода всех значений нужно узнать количество строк через
Код: AutoIt [Выделить]
и в цикле получать их текст через
Код: AutoIt [Выделить]


Добавлено: Октябрь 09, 2018, 21:06:32
Для преобразования ControlID в hWnd используйте
Код: AutoIt [Выделить]
ура, спасибо за _GUICtrlListBox_GetText(), не знал. задача решена

Русское сообщество AutoIt

Re: Как добавлять и удалять элементы в текущую позицию List
« Ответ #3 Отправлен: Октябрь 09, 2018, 21:17:54 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
7224 Просмотров
Последний ответ Ноябрь 10, 2010, 20:27:11
от dwerf
1 Ответов
2851 Просмотров
Последний ответ Декабрь 30, 2010, 17:54:38
от Guezt Gutsy
2 Ответов
4107 Просмотров
Последний ответ Июнь 01, 2011, 23:43:07
от shakur
2 Ответов
2056 Просмотров
Последний ответ Март 26, 2012, 03:01:07
от vanekzver
3 Ответов
2728 Просмотров
Последний ответ Апрель 13, 2012, 18:42:29
от madmasles
4 Ответов
1492 Просмотров
Последний ответ Февраль 21, 2014, 17:22:13
от nsgenn
1 Ответов
1125 Просмотров
Последний ответ Июль 29, 2014, 18:29:35
от madmasles
0 Ответов
526 Просмотров
Последний ответ Апрель 16, 2016, 10:05:21
от Danya98
4 Ответов
1687 Просмотров
Последний ответ Январь 02, 2017, 16:20:45
от astanid
1 Ответов
283 Просмотров
Последний ответ Февраль 05, 2018, 14:47:14
от Tempo