1

Тема: AHK: GUI и Drop Down List

Имеем 4 DDL.
Нужно, чтобы при выборе значения в одном из них, остальные показывали пустоту.
Как такое сделать?
Пока пришло в голову через пробелы.

VideoEffects = |1|2|3
VideoTransitions = |1|2|3
AudioEffects = |1|2|3
AudioTransitions = |1|2|3

Gui, Add, Text, x50 y80 w90 Center,Видеоэффекты
Gui, Add, DropDownList, vEffectChoice1 gEffect1, %VideoEffects%
Gui, Add, Text, x50 y120 w90 Center,Видеопереходы
Gui, Add, DropDownList, vEffectChoice2 gEffect2, %VideoTransitions%
Gui, Add, Text, x50 y160 w90 Center,Аудиоэффекты
Gui, Add, DropDownList, vEffectChoice3 gEffect3, %AudioEffects%
Gui, Add, Text, x50 y200 w90 Center,Аудиопереходы
Gui, Add, DropDownList, vEffectChoice4 gEffect4, %AudioTransitions%
Gui, Show, h300, Effect Finder
return

Effect1:
GuiControl, Choose, EffectChoice2, 1
GuiControl, Choose, EffectChoice3, 1
GuiControl, Choose, EffectChoice4, 1
return

Effect2:
GuiControl, Choose, EffectChoice1, 1
GuiControl, Choose, EffectChoice3, 1
GuiControl, Choose, EffectChoice4, 1
return

Effect3:
GuiControl, Choose, EffectChoice1, 1
GuiControl, Choose, EffectChoice2, 1
GuiControl, Choose, EffectChoice4, 1
return

Effect4:
GuiControl, Choose, EffectChoice1, 1
GuiControl, Choose, EffectChoice2, 1
GuiControl, Choose, EffectChoice3, 1
return

2

Re: AHK: GUI и Drop Down List

Вроде и так нормально. Ещё варинат:

GuiControl, ChooseString, ControlID, String: Sets the selection (choice) in a ListBox, DropDownList, ComboBox, or Tab control to be the entry whose leading part matches String. The search is not case sensitive. For example, if a the control contains the item "UNIX Text", specifying the word unix (lowercase) would be enough to select it. The pipe and double-pipe prefix are also supported (see "Choose" above for details).

3

Re: AHK: GUI и Drop Down List

Но если запустить скрипт, то изначальные значения всех DDL ничему не равны.
Почему так?
И такое возможно сделать уже после выбора какого-либо значения?

4

Re: AHK: GUI и Drop Down List

А чему они должны быть равны? И что "такое" имеется в виду сделать?
Вообще, для чего нужно очищать остальные поля?

5

Re: AHK: GUI и Drop Down List

Я имею ввиду равны, не то, что они равны арифметически, а то что они пустые чисто зрительно без всякого пробела.
А очищать другие поля надо, чтобы можно было выбрать только один вариант из четырех.

6

Re: AHK: GUI и Drop Down List

Может быть, вот это вы имеете в виду.


VideoEffects = 1|2|3
VideoTransitions = 1|2|3
AudioEffects = 1|2|3
AudioTransitions = 1|2|3
 
Gui, Add, Text, x50 y80 w90 Center,Видеоэффекты
Gui, Add, DropDownList, vEffectChoice1 gEffect1, %VideoEffects%
Gui, Add, Text, x50 y120 w90 Center,Видеопереходы
Gui, Add, DropDownList, vEffectChoice2 gEffect2, %VideoTransitions%
Gui, Add, Text, x50 y160 w90 Center,Аудиоэффекты
Gui, Add, DropDownList, vEffectChoice3 gEffect3, %AudioEffects%
Gui, Add, Text, x50 y200 w90 Center,Аудиопереходы
Gui, Add, DropDownList, vEffectChoice4 gEffect4, %AudioTransitions%
Gui, Show, h300, Effect Finder
return
 
Effect1:
GuiControl,, EffectChoice2, |1|2|3
GuiControl,, EffectChoice3, |1|2|3
GuiControl,, EffectChoice4, |1|2|3
return
 
Effect2:
GuiControl,, EffectChoice1, |1|2|3
GuiControl,, EffectChoice3, |1|2|3
GuiControl,, EffectChoice4, |1|2|3
return
 
Effect3:
GuiControl,, EffectChoice1, |1|2|3
GuiControl,, EffectChoice2, |1|2|3
GuiControl,, EffectChoice4, |1|2|3
return
 
Effect4:
GuiControl,, EffectChoice1, |1|2|3
GuiControl,, EffectChoice2, |1|2|3
GuiControl,, EffectChoice3, |1|2|3
return

7 (изменено: Malcev, 2012-11-27 19:28:14)

Re: AHK: GUI и Drop Down List

Да, именно это я и имел в виду.
А можете объяснить, почему исчезают значения DDL.
Из-за этого?

To replace (overwrite) the list instead, include a pipe as the first character (e.g. |Red|Green|Blue)

Получается, что при замене списка, список (новый либо старый) перезапускается и соответственно возвращается в первоначальное состояние (когда видна только пустота, если не ставить двойную палочку), как и в момент запуска скрипта?

8 (изменено: ypppu, 2012-11-27 19:35:04)

Re: AHK: GUI и Drop Down List

Pipe - вертикальная черта (символ-"конвейер")
Для того, чтобы заменить (перезаписать) перечень,  в качестве первого символа поставьте вертикальную черту.

Получается, что при замене списка, список (новый либо старый) перезапускается и соответственно возвращается в первоначальное состояние (когда видна только пустота, если не ставить двойную палочку), как и в момент запуска скрипта?

Ну да, как будто его не трогали.

9

Re: AHK: GUI и Drop Down List

Честно говоря, не знаю, что там происходит "под капотом". Да, наверно, какая-то переинициализация.