1

Тема: AHK: Работа с DropDownList

Уважаемые форумчане
Подскажите пожалуйста, как сделать правильно.  Если я делаю только выбор из выпадающего списка один раз, то все ок. Как только после первого выбора я пытаюсь сделать второй выбор (например сначала выбрал опцию 3, а потом опцию 2, скрипт "ругается" на попытку использовать дважды одну и ту же переменную. Как это можно решить?
Заранее благодарю


{
 Gui, +AlwaysOnTop +LastFound  -SysMenu
 ;Gui, Font, s12,  Arial
 Gui, Color, 0xF0FFF0
 Gui, Font, s10 bold,  Arial 
 


Gui, Add, DropDownList, gChoice x60 y15 w200 h250, 1|2|3
Gui, Show, xCenter yCenter w350 h250, Введите данные
Return


Choice:
   if A_GuiControl = 1
      Goto, Choice1
   if A_GuiControl = 2
      Goto, Choice2
   if A_GuiControl = 3
      Goto, Choice3
   Return


Choice1:

 Gui, Add, Text, x20 y50 w120 h30, Логин в Программу1:
 Gui, Add, Text, x20 y80 w120 h30, Пароль в Программу1:
 Gui, Add, Text, x20 y130 w120 h30, Логин в Программу2:
 Gui, Add, Text, x20 y160 w120 h30, Пароль в Программу2:
 Gui, Show, xCenter yCenter w350 h250, Введите данные
 Gui, Font, s9 Normal,  Arial
 Gui, Add, Edit, x155 y50 w150 h20  vLoginA , 
 Gui, Add, Edit, Password x155 y77 w150 h20  vPassA , 
 Gui, Add, Edit, x155 y130 w150 h20  vLoginE, 
 Gui, Add, Edit, Password x155 y157 w150 h20  vPassE, 
 Gui, Add, Button, Default X150 g123, Подтвердить
 
 Return
 
  Choice2:
 Gui, Add, Text, x20 y50 w120 h30, Логин в Программу1:
 Gui, Add, Text, x20 y80 w120 h30, Пароль в Программу1:
 Gui, Show, xCenter yCenter w350 h250, Введите данные
 Gui, Font, s9 Normal,  Arial
 Gui, Add, Edit, x155 y50 w150 h20  vLoginA , 
 Gui, Add, Edit, Password x155 y77 w150 h20  vPassA ,
 Gui, Add, Button, Default X150 g123, Подтвердить
 Return
 
 Choice3:
 
 Gui, Add, Text, x20 y50 w120 h30, Логин в Программу2:
 Gui, Add, Text, x20 y80 w120 h30, Пароль в Программу2:
 Gui, Show, xCenter yCenter w350 h250, Введите данные
 Gui, Font, s9 Normal,  Arial
 Gui, Add, Edit, x155 y50 w150 h20  vLoginE , 
 Gui, Add, Edit, Password x155 y77 w150 h20  vPassE ,
 Gui, Add, Button, Default X150 g123, Подтвердить
  Return
 
  
}
Return


123:
{
Gui, submit, NoHide
Gui, Destroy
}
Return

2 (изменено: stealzy, 2017-04-10 03:57:06)

Re: AHK: Работа с DropDownList

После привязывания переменной к контролу, ее больше нельзя использовать для иного контрола на все время жизни связанного контрола.
Заводите на каждый контрол свою переменную и не пересоздавайте контрол дважды (подумайте, ведь сейчас если я выберу 1 а потом попробую опять выбрать 1, все контролы для данного выбора просто создаются поверх старых, а переменные уже связаны со старыми контролами, которые никуда ни делись).
Либо пересоздавайте гуи при каждом выборе:

Gui, +AlwaysOnTop +LastFound -SysMenu
Gui, Color, 0xF0FFF0
Gui, Font, s10 bold,  Arial 
Gui, Add, DropDownList, gChoice x60 y15 w200 h250, 1|2|3
Gui, Show, xCenter yCenter w350 h250, Введите данные
Return

Choice:
	Goto Choice%A_GuiControl%
	Return

Choice1:
	Gui, Destroy
	Gui, Add, DropDownList, gChoice x60 y15 w200 h250  Choose1, 1|2|3
	Gui, Add, Text, x20 y50 w120 h30, Логин в Программу1:
	Gui, Add, Text, x20 y80 w120 h30, Пароль в Программу1:
	Gui, Add, Text, x20 y130 w120 h30, Логин в Программу2:
	Gui, Add, Text, x20 y160 w120 h30, Пароль в Программу2:
	Gui, Show, xCenter yCenter w350 h250, Введите данные
	Gui, Font, s9 Normal,  Arial
	Gui, Add, Edit, x155 y50 w150 h20  vLoginA , 
	Gui, Add, Edit, Password x155 y77 w150 h20  vPassA , 
	Gui, Add, Edit, x155 y130 w150 h20  vLoginE, 
	Gui, Add, Edit, Password x155 y157 w150 h20  vPassE, 
	Gui, Add, Button, Default X150 g123, Подтвердить
	Gui, Show, xCenter yCenter w350 h250, Введите данные
	Return

Choice2:
	Gui, Destroy
	Gui, Add, DropDownList, gChoice x60 y15 w200 h250  Choose2, 1|2|3
	Gui, Add, Text, x20 y50 w120 h30, Логин в Программу1:
	Gui, Add, Text, x20 y80 w120 h30, Пароль в Программу1:
	Gui, Show, xCenter yCenter w350 h250, Введите данные
	Gui, Font, s9 Normal,  Arial
	Gui, Add, Edit, x155 y50 w150 h20  vLoginA , 
	Gui, Add, Edit, Password x155 y77 w150 h20  vPassA ,
	Gui, Add, Button, Default X150 g123, Подтвердить
	Gui, Show, xCenter yCenter w350 h250, Введите данные
	Return

Choice3:
	Gui, Destroy
	Gui, Add, DropDownList, gChoice x60 y15 w200 h250  Choose3, 1|2|3
	Gui, Add, Text, x20 y50 w120 h30, Логин в Программу2:
	Gui, Add, Text, x20 y80 w120 h30, Пароль в Программу2:
	Gui, Show, xCenter yCenter w350 h250, Введите данные
	Gui, Font, s9 Normal,  Arial
	Gui, Add, Edit, x155 y50 w150 h20  vLoginE , 
	Gui, Add, Edit, Password x155 y77 w150 h20  vPassE ,
	Gui, Add, Button, Default X150 g123, Подтвердить
	Gui, Show, xCenter yCenter w350 h250, Введите данные
	Return

123:
	Gui, submit, NoHide
	Gui, Destroy
	Return

3

Re: AHK: Работа с DropDownList

Заключи переменные в знаки процента.

4 (изменено: stealzy, 2017-04-10 02:23:16)

Re: AHK: Работа с DropDownList

svoboden, мимо. То есть мимо, свободен .

5 (изменено: serzh82saratov, 2017-04-10 03:09:30)

Re: AHK: Работа с DropDownList


Gui, +AlwaysOnTop +LastFound -SysMenu +HWNDhGui -DPIScale
 ; Gui, Font, s12,  Arial
Gui, Color, 0xF0FFF0
Gui, Font, s10 bold,  Arial
Gui, Add, DropDownList, gChoice x60 y15 w200 h250, 1|2|3
Gui, Show, xCenter yCenter w350 h250, Введите данные

Gui, Choice1:Default
Gui, +Parent%hGui% -Caption -DPIScale
Gui, Color, 0xF0FFF0
Gui, Font, s10 bold,  Arial
Gui, Add, Text, x20 y0 w120 h30, Логин в Программу1:
Gui, Add, Text, xp y+0 wp hp, Пароль в Программу1:
Gui, Add, Text, xp y+20 wp hp, Логин в Программу2:
Gui, Add, Text, xp y+0 wp hp, Пароль в Программу2:
Gui, Font, s9 Normal,  Arial
Gui, Add, Edit, x+0 y0 w150 vLoginA
Gui, Add, Edit, Password xp y+15 wp vPassA
Gui, Add, Edit, xp y+20 wp vLoginE
Gui, Add, Edit, Password xp y+15 wp vPassE
Gui, Add, Button, Default xp y+20 g123, Подтвердить

Gui, Choice2:Default
Gui, +Parent%hGui% -Caption -DPIScale
Gui, Color, 0xF0FFF0
Gui, Font, s10 bold,  Arial
Gui, Add, Text, x20 y0 w120 h30, Логин в Программу1:
Gui, Add, Text, xp y+0 wp hp, Пароль в Программу1:
Gui, Font, s9 Normal,  Arial
Gui, Add, Edit, x+0 y0 w150 vLoginA
Gui, Add, Edit, Password xp y+15 wp vPassA 
Gui, Add, Button, Default xp y+20 g123, Подтвердить
 
Gui, Choice3:Default
Gui, +Parent%hGui% -Caption -DPIScale
Gui, Color, 0xF0FFF0
Gui, Font, s10 bold,  Arial
Gui, Add, Text, x20 y0 w120 h30, Логин в Программу2:
Gui, Add, Text, xp y+0 wp hp, Пароль в Программу2:
Gui, Font, s9 Normal,  Arial
Gui, Add, Edit, x+0 y0 w150 vLoginE
Gui, Add, Edit, Password xp y+15 wp vPassE 
Gui, Add, Button, Default xp y+20 g123, Подтвердить
Return

Choice:
	Gui, Choice%PrChoice%:Show, Hide
	Gui, Choice%A_GuiControl%:Show, x0 y55
	PrChoice := A_GuiControl
	Return

123: 
	Gui, Submit, NoHide
	Gui, 1:Submit, NoHide
	Gui, 1:Destroy
	Return
По вопросам возмездной помощи пишите в личку
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.25.02 (Unicode 32-bit).

6

Re: AHK: Работа с DropDownList

stealzy пишет:

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

Только к контролу в том же окне, стоило бы добавить.

По вопросам возмездной помощи пишите в личку
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.25.02 (Unicode 32-bit).

7

Re: AHK: Работа с DropDownList

stealzy

Спасибо огромное!
Использовал Ваш вариант

8

Re: AHK: Работа с DropDownList

Уважаемые коллеги, большое спасибо за помощь!