Тема: AHK: Работа с массивами
Здравствуйте. Есть скрипт:
Mass := {One:{color: 1, var: 1, name: 1, leadtime: 1, seed: 1, enabled: 1}, two:{color: 1, var: 1, name: 2, leadtime: 1 , seed: 1, enabled: 1}, three:{color: 1, var: 1, name: 3, leadtime: 1, seed: 1, enabled: 1}, four:{color: 1, var: 1, name: 4, leadtime: 1, seed: 1, enabled: 1}}
key0 = *~$F
Hotkey, %key0%, start, UseErrorLevel
stringreplace, key0, key0, *~$
Gui, +resize
Gui, Add, DDL, vChoice g, A|B|C|D
Gui, Show, h85
return
start:
Gui, Submit, NoHide
While !GetKeyState(key0, "T")
{
if (Choice="A")
{
Go(mass.one.color, mass.one.var, mass.one.name, mass.one.leadtime, mass.one.seed)
}
if (Choice="B")
{
Go(mass.two.color, mass.two.var, mass.two.name, mass.two.leadtime, mass.two.seed)
}
if (Choice="C")
{
Go(mass.three.color, mass.three.var, mass.three.name, mass.three.leadtime, mass.three.seed)
}
if (Choice="D")
{
Go(mass.four.color, mass.four.var, mass.four.name, mass.four.leadtime, mass.four.seed)
}
}
return
Go(color,var,name,leadtime,seed)
{
global
msgbox % name
}
Это небольшой пример. В label start на самом деле очень много проверок if, из-за этого код выглядит громоздко, да и не совсем правильное написание выходит. Количество вариантов в DLL совпадает с количеством ключей 1 уровня в массиве Mass.
Предполагаю, что все это дело в "start" можно как-то укомплектовать и поместить в несколько строк. Помогите с решением. Спасибо.