Как назначить кнопке процедуру с необязательным параметром

Автор Борис_С, 28 августа 2020, 12:50

0 Пользователи и 1 гость просматривают эту тему.

Борис_С

Всем доброго дня!
Есть процедура с необязательным параметром:

Sub ReportSetLinks(Optional sessionId)
If IsMissing(sessionId) Then
    sessionId = api.SetlinkLogger.GetLastSessionId("LO")
EndIf
Exit Sub
End Sub

Когда вызываю эту процедуру без параметра из скрипта, все работает замечательно.
Когда вешаю ее на кнопку и вызываю из диалоговой формы, она не понимает, что параметра нет и не входит в оператор If.
Где я не прав?

mikekaganski

Вы неправы в том, что параметра нет при таком вызове. Он есть. Любой обработчик события получает параметр-событие.
С уважением,
Михаил Каганский

mikekaganski

Цитата: rami от 28 августа 2020, 13:34Если нарисовать кнопку в диалоге и назначить ей этот макрос, то параметр передавать не будет

Я могу ошибаться, но по-моему, там всё равно передаётся параметр - через него (и его контекст) можно выйти на родительский диалог... или я всё-таки неправ?
С уважением,
Михаил Каганский

rami

Цитата: mikekaganski от 28 августа 2020, 13:40
Цитата: rami от 28 августа 2020, 13:34Если нарисовать кнопку в диалоге и назначить ей этот макрос, то параметр передавать не будет

Я могу ошибаться, но по-моему, там всё равно передаётся параметр - через него (и его контекст) можно выйти на родительский диалог... или я всё-таки неправ?
Правильно, это я поторопился ответить, ошибся. Помнится, если назначить макрос фигуре на листе Calc, тогда параметр не передаётся.

Борис_С