Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Контекстные меню в экземплярах класса формы.
 
 автор: Lukas   (11.03.2009 в 17:04)   личное сообщение
 
 

В форме, при открытии, функция создает временные контекстные меню форме и двум спискам формы.
Функции OnAction создаваемых контекстных менюшек в модуле класса этой же формы (Private Function ...).
Создаю экземпляры класса формы. Далее варианты:
1. Форма, свойство - "Модальное окно" = Нет, кнопки контекстныхе менюшек работают.
2. Форма, свойство - "Модальное окно" = Да, кнопки контекстныхе менюшек не видят назначенных им на OnAction функций.

Пробовал:
1. Private функций менять на Public - не помогает.
2. Открывать форму штатно DoCmd.OpenForm ..... acDialog - кнопки менюшек работают.

Ограничения: Функции контекстных менюшек должны быть в модуле класса формы (там много ссылок на Private переменные, массивы и пр.)

Вопрос:
Как все-таки научить кнопки контекстных менюшек видеть назначенные им на OnAction функции, расположенные в модуле этой формы, при установлении свойства формы - "Модальное окно" = Да, и открывании ее экземплярами класса?

  Ответить  
 
 автор: KrukVN   (11.03.2009 в 17:58)   личное сообщение
 
 

Совершенно невменяемая ситуация :)
сталкивался (только если форма подчиненная). выкрутился как-то так:

'Обход глюка при выборе команды из контекстного меню
'Если эта форма подчиненная, то вызов функции должен происходить примерно так:
'=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

криво/хреново. но вроде работает... и забил на этом :/

  Ответить  
 
 автор: Lukas   (11.03.2009 в 18:15)   личное сообщение
 
 

Спасибо.
Я вот тоже пока на диалоговый режим забил, до лучших времен.
Можно конечно "псевдодиалог" организовать по Гетцу для экземпляра класса формы, но тоже не супер как-то.

  Ответить  
 
 автор: Bellerofont   (11.03.2009 в 21:09)   личное сообщение
 
 

А может вообще не использовать OnAction, а просто использовать событие Click объекта CommandBarButton?

  Ответить  
 
 автор: Lukas   (11.03.2009 в 21:24)   личное сообщение
 
 


...просто использовать...


Кому просто, а кому не очень.
Спасибо, буду почитать.

  Ответить  
 
 автор: Lukas   (12.03.2009 в 15:00)   личное сообщение
 
 

"Ну что, Данила мастер, не выходит каменный цветок?"
Ннннннеттттт!

к Bellerofont
Если будет времечко, небольшой примерчик показать или снабдить ссылочкой, было-бы замечательно. Спасибо.

  Ответить  
 
 автор: Bellerofont   (12.03.2009 в 18:00)   личное сообщение
 
 

приложите заготовку с вашим примером, я попробую

  Ответить  
 
 автор: Lukas   (12.03.2009 в 18:51)   личное сообщение
17 Кб.
 
 

Пока готовил образчик, заметил где я ошибался.
Оказывается менюшки работают и при "Модальное окно"=Да, при условии, что "Всплывающее окно"=Нет.

Точнее:
Менюшки не видят функции при установке "Всплывающее окно"=Да при любом значении "Модальное окно"

Однако, вопрос с Click все равно интересен.

В файле прицепа свойства формы:
"Модальное окно"=Да
"Всплывающее окно"=Да - менюшка ругается.

  Ответить  
 
 автор: Bellerofont   (12.03.2009 в 20:21)   личное сообщение
13 Кб.
 
 

как-то так

  Ответить  
 
 автор: Lukas   (12.03.2009 в 20:50)   личное сообщение
 
 

Спасибо.
А я отдельным классом пытался, да не сумел.

Сложность использования этого метода у меня в том, что в трех менюшках одной формы суммарно может быть от 3 до 45 кнопок. Причем некоторым из них, я назначаю на OnAction функции глобального модуля, имена которых считываю из таблицы настроек формы (на OnAction очень это удобно и просто делать).
Но, в любом случае, этот вариант буду иметь в резерве.

Еще раз благодарю.

  Ответить  
 
 автор: KrukVN   (12.03.2009 в 22:07)   личное сообщение
18 Кб.
 
 

Private Sub mbtnOne_Click... - хм. будем знать :)
***
А вот о чем я говорил
двойное срабатывание функции + невозможность передать параметр

  Ответить  
 
 автор: Lukas   (13.03.2009 в 01:31)   личное сообщение
 
 

Да, этот вариант срабатывает всегда дважды, независимо от значений "Модальное" и "Всплывающее", да вдобавок требует публичности функции.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList