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

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

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

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

2
Manny Calavera 30 Авг 2011 в 13:58

2 ответа

Лучший ответ

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

doCall()

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

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

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

Func doCallHandler()
  doCall()
EndFunc

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

GUICtrlSetOnEvent($Button1, "doCallHandler")
1
aphoria 30 Авг 2011 в 12:37

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

Global $indexNumber

ИЗМЕНИТЬ

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

Func doCall($indexNumber = "1")
    If $indexNumber = '' Then $indexNumber = '1'
    MsgBox(0, "Test", $indexNumber)
EndFunc
1
Daniel Haley 30 Авг 2011 в 19:23