Пиша прост GUI в AutoHotkey, един от елементите е възможността за свързване на число с етикет на бутон:
Call:
{
book := {"Tel Maison": 8912, "Tel Mobile": 000000}
nr := book[%A_GuiControl%]
MsgBox %A_GuiControl% - number: %nr%
}
CapsLock::
Gui, Add, Button, gCall, Tel Maison
Gui, Add, Button, gCall, Tel Mobile
Gui, Show
Когато изпълнявам този скрипт, при натискане на бутон получавам съобщение за грешка (Следното име на променлива съдържа незаконен символ: „Tel Maison“), сочещо към
nr := book[%A_GuiControl%]
Смятам, че това се дължи на интервала в името на етикета.
В1: не е ли възможно да се използват хеш ключове с интервал?
Модифицирах скрипта на
Call:
{
book := {"TelMaison": 8912, "TelMobile": 000000}
nr := book[%A_GuiControl%]
MsgBox %A_GuiControl% - number: %nr%
}
CapsLock::
Gui, Add, Button, gCall, TelMaison
Gui, Add, Button, gCall, TelMobile
Gui, Show
Сега се изпълнява, но променливата nr
е празна.
В2: Етикетът се предава чрез A_GuiControl
като низ, нали? Ако е така, защо няма съвпадение за ключа в примера по-горе?
Аз също се опитах да използвам book := {TelMaison: 8912, TelMobile: 000000}
, но резултатът е същият