Функция AutoIt v3 с необязательным параметром / параметром по умолчанию - PullRequest
2 голосов
/ 30 августа 2011

Я пытаюсь вызвать функцию, объявленную следующим образом:

Func doCall($indexNumber = "1")
MsgBox(0, "Test", $indexNumber) 
EndFunc

, но я получаю сообщение о том, что переменная $indexNumber не была объявлена ​​перед использованием.Я хочу иметь возможность вызывать doCall() без параметра $indexNumber, MsgBox должен отображать 1, верно?

Можно ли это сделать?Или любое другое решение?

Ответы [ 2 ]

1 голос
/ 30 августа 2011

Если вы объявляете свою переменную, у вас не должно быть проблем.Добавьте это в верхней части вашего скрипта (до ссылки $indexNumber):

Global $indexNumber

РЕДАКТИРОВАТЬ

Я не уверен, почему по умолчаниюзначение не определяется при использовании GUICtrlSetOnEvent.В качестве обходного пути попробуйте изменить свою функцию следующим образом:

Func doCall($indexNumber = "1")
    If $indexNumber = '' Then $indexNumber = '1'
    MsgBox(0, "Test", $indexNumber)
EndFunc
1 голос
/ 30 августа 2011

Я поместил это в файл и успешно запустил ... он отображал окно сообщения с 1.

doCall()

Func doCall($indexNumber = "1")
  MsgBox(0, "Test", $indexNumber) 
EndFunc

РЕДАКТИРОВАТЬ

Попробуйте добавить функцию обработчика:

Func doCallHandler()
  doCall()
EndFunc

Затем сделайте это:

GUICtrlSetOnEvent($Button1, "doCallHandler")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...