1 (изменено: McFree, 2016-08-13 16:01:32)

Тема: AHK: оптимизация меток в скрипте

Доброй ночи серые форумчане, у меня вопрос. Как сократить подобный код. Хотелось бы узнать реально ли уменьшить количество меток, если разница в метках изменяется лишь в изменении значения переменной var.


Key1:
var = 1
getfunc(var)
return

Key2:
var = 2 
getfunc(var)
return

Key3:
var = 3
getfunc(var)
return

Key4:
var = 4
getfunc(var)
return

Key5:
var = 5
getfunc(var)
return

Key6:
var = 6
getfunc(var)
return

2 (изменено: McFree, 2016-08-13 01:25:50)

Re: AHK: оптимизация меток в скрипте

Слегка изменил код для большей наглядности.

3

Re: AHK: оптимизация меток в скрипте

McFree, ознакомьтесь с этой темой, отредактируйте заголовок.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4

Re: AHK: оптимизация меток в скрипте

А  зачем тут вообще метки.
Почему не хотите сразу вызывать функцию?

5 (изменено: McFree, 2016-08-13 16:01:56)

Re: AHK: оптимизация меток в скрипте

Malcev мне нужна работа на 100 горячих клавиш. А разница в них лишь в том, что там меняется переменная.

6

Re: AHK: оптимизация меток в скрипте

Можно через массивы:

HotKeys := {F1: 1, F2: 2}
F1::
F2::
msgbox % getfunc(HotKeys[A_ThisHotkey])
return

getfunc(var)
{
   return, var
}

7

Re: AHK: оптимизация меток в скрипте

McFree, расставьте точки в своих постах.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8 (изменено: stealzy, 2016-08-14 12:22:20)

Re: AHK: оптимизация меток в скрипте

Hotkey("F1", "getfunc", 1)
Hotkey("F2", "getfunc", 2)
Hotkey("F3", "getfunc", 3)
Hotkey("F4", "getfunc", 4)

getfunc(var) {
	msgbox % var
}

Hotkey(hk, fun, args*)  {
	funcObj := Func(fun).Bind(args*)
	Hotkey, % hk, % funcObj
}