|
|
|
| В форме, при открытии, функция создает временные контекстные меню форме и двум спискам формы.
Функции OnAction создаваемых контекстных менюшек в модуле класса этой же формы (Private Function ...).
Создаю экземпляры класса формы. Далее варианты:
1. Форма, свойство - "Модальное окно" = Нет, кнопки контекстныхе менюшек работают.
2. Форма, свойство - "Модальное окно" = Да, кнопки контекстныхе менюшек не видят назначенных им на OnAction функций.
Пробовал:
1. Private функций менять на Public - не помогает.
2. Открывать форму штатно DoCmd.OpenForm ..... acDialog - кнопки менюшек работают.
Ограничения: Функции контекстных менюшек должны быть в модуле класса формы (там много ссылок на Private переменные, массивы и пр.)
Вопрос:
Как все-таки научить кнопки контекстных менюшек видеть назначенные им на OnAction функции, расположенные в модуле этой формы, при установлении свойства формы - "Модальное окно" = Да, и открывании ее экземплярами класса? | |
|
| |
|
|
|
| Совершенно невменяемая ситуация :)
сталкивался (только если форма подчиненная). выкрутился как-то так:
'Обход глюка при выборе команды из контекстного меню
'Если эта форма подчиненная, то вызов функции должен происходить примерно так:
'=Screen.ActiveForm.frm_MGrFind.Form.NewRecMnu
'Но в этом случае происходит ДВойное ее срабатывание. Кроме того, этой функции невозможно
'передать какой-либо параметр (из контекстного меню) - виснет Access :/
Function NewRecMnu()
Static dblEvent As Boolean
If dblEvent = False Then
Call NewRec(True)
End If
dblEvent = Not dblEvent
End Function
|
криво/хреново. но вроде работает... и забил на этом :/ | |
|
| |
|
|
|
| Спасибо.
Я вот тоже пока на диалоговый режим забил, до лучших времен.
Можно конечно "псевдодиалог" организовать по Гетцу для экземпляра класса формы, но тоже не супер как-то. | |
|
| |
|
|
|
| А может вообще не использовать OnAction, а просто использовать событие Click объекта CommandBarButton? | |
|
| |
|
|
|
|
...просто использовать...
|
Кому просто, а кому не очень.
Спасибо, буду почитать. | |
|
| |
|
|
|
| "Ну что, Данила мастер, не выходит каменный цветок?"
Ннннннеттттт!
к Bellerofont
Если будет времечко, небольшой примерчик показать или снабдить ссылочкой, было-бы замечательно. Спасибо. | |
|
| |
|
|
|
| приложите заготовку с вашим примером, я попробую | |
|
| |
|
17 Кб. |
|
| Пока готовил образчик, заметил где я ошибался.
Оказывается менюшки работают и при "Модальное окно"=Да, при условии, что "Всплывающее окно"=Нет.
Точнее:
Менюшки не видят функции при установке "Всплывающее окно"=Да при любом значении "Модальное окно"
Однако, вопрос с Click все равно интересен.
В файле прицепа свойства формы:
"Модальное окно"=Да
"Всплывающее окно"=Да - менюшка ругается. | |
|
| |
|
13 Кб. |
|
| как-то так | |
|
| |
|
|
|
| Спасибо.
А я отдельным классом пытался, да не сумел.
Сложность использования этого метода у меня в том, что в трех менюшках одной формы суммарно может быть от 3 до 45 кнопок. Причем некоторым из них, я назначаю на OnAction функции глобального модуля, имена которых считываю из таблицы настроек формы (на OnAction очень это удобно и просто делать).
Но, в любом случае, этот вариант буду иметь в резерве.
Еще раз благодарю. | |
|
| |
|
18 Кб. |
|
| Private Sub mbtnOne_Click... - хм. будем знать :)
***
А вот о чем я говорил
двойное срабатывание функции + невозможность передать параметр | |
|
| |
|
|
|
| Да, этот вариант срабатывает всегда дважды, независимо от значений "Модальное" и "Всплывающее", да вдобавок требует публичности функции. | |
|
| |