Что нового

[Элементы GUI] Форма с зависимыми выпадающими списками

NickGrava

Новичок
Сообщения
12
Репутация
0
Версия AutoIt: 3.3.14.2

Описание:

Добрый день, друзья! Необходима помощь в создании зависимых выпадающих списков. Суть в следующем - есть главный выпадающий список с пунктами Name1,Name2..Name30 и при выборе какой-либо позиции должен появляться другой выпадающий список содержащий те или иные пункты относящиеся к выбранному. Например у Name1 это будут Name11 и Name12, а у Name2 это Name21 и Name22. ну и тд. Я нашел на форуме решение для создания самого выпадающего списка с последующим действием при выборе пункта..а вот как привязать дальше - не знаю.

Примечания:

Вот решение которое нашел:
Код:
GUICreate("URL", 300, 30)
$combo = GUICtrlCreateCombo("", 5, 5, 290, 20)
GUISetState()

GUICtrlSetData($combo, "www.autoit-script.ru|www.yandex.ru|www.mail.ru")

Do
  Switch GUIGetMsg()
    Case -3
      Exit
    Case $combo
      Run(@ProgramFilesDir & "\Internet Explorer\iexplore.exe " & GUICtrlRead($combo))
      ; ShellExecute(GUICtrlRead($combo)) ; в браузере по умолчанию
      Exit
  EndSwitch
Until 0
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Код:
GUICreate("URL", 300, 60)
$combo = GUICtrlCreateCombo("", 5, 5, 290, 20)
$combo2 = GUICtrlCreateCombo("", 5, 35, 290, 20)
GUISetState()

GUICtrlSetData($combo, "www.autoit-script.ru|www.yandex.ru|www.mail.ru")

Do
  Switch GUIGetMsg()
    Case -3
      Exit
    Case $combo
      Switch GUICtrlRead($combo)
        Case "www.autoit-script.ru"
          GUICtrlSetData($combo2, "|Name11|Name12|Name13", "Name11")
        Case "www.yandex.ru"
          GUICtrlSetData($combo2, "|Name21|Name22|Name23", "Name21")
        Case "www.mail.ru"
          GUICtrlSetData($combo2, "|Name31|Name32|Name33", "Name31")
      EndSwitch
  EndSwitch
Until 0
 
Автор
N

NickGrava

Новичок
Сообщения
12
Репутация
0
Спасибо огромное!!!




Добавлено:
Сообщение автоматически объединено:

Еще вопрос появился - как сделать так чтобы при выборе нужного пункта из второго списка выдавалось сообщение с названием этого пункта? Попытался реализовать это так (но не работает чет):

Код:
.........
    Switch GUICtrlRead($combo)
        Case "www.autoit-script.ru"
            GUICtrlSetData($combo2, "|Name11|Name12|Name13", "Name11")
               While 0
                    Switch GUICtrlRead($combo2)
                         Case "Name11"
                             MsgBox("Name11")
......
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
NickGrava
при выборе нужного пункта из второго списка выдавалось сообщение
Код:
GUICreate("URL", 300, 60)
$combo = GUICtrlCreateCombo("", 5, 5, 290, 20)
$combo2 = GUICtrlCreateCombo("", 5, 35, 290, 20)
GUISetState()

GUICtrlSetData($combo, "www.autoit-script.ru|www.yandex.ru|www.mail.ru")

Do
  Switch GUIGetMsg()
    Case -3
      Exit
    Case $combo
      Switch GUICtrlRead($combo)
        Case "www.autoit-script.ru"
          GUICtrlSetData($combo2, "|Name11|Name12|Name13", "Name11")
        Case "www.yandex.ru"
          GUICtrlSetData($combo2, "|Name21|Name22|Name23", "Name21")
        Case "www.mail.ru"
          GUICtrlSetData($combo2, "|Name31|Name32|Name33", "Name31")
      EndSwitch
      ; MsgBox(0, "", GUICtrlRead($combo2))
    Case $combo2
      MsgBox(0, "", GUICtrlRead($combo2))
  EndSwitch
Until 0
 
Автор
N

NickGrava

Новичок
Сообщения
12
Репутация
0
Спасибо Всем за ответы! Все работает!
 
Верх