|
Помогите с CreateEventProc
|
|||
---|---|---|---|
#18+
Мое почтение уважаемым форумчанам! Прежде чем создать тему уже успел залистать до дыр сей прекрасный форум и гугл. И только на форуме были найдены наиболее близкие темы 1 , 2 , 3 . Используя Фы1 находим код, который успешно отрабатывает (см. под спойлером) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Но мне необходимо прописать событие не для контрола, а для формы, поэтому заменяю строку lngReturn = mdl.CreateEventProc("Click", ctl.Name) на lngReturn = mdl.CreateEventProc("Unload", frm.Name) после чего получаю сообщение об ошибке "57017 :Event handler is invalid". Собственно вопрос в том, как привязать процедуру обработки события к форме? Что делаю не так? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
З.Ы. [event procedure] не помогает, т.к. вызов функции возникает позже события, которое необходимо обработать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2012, 05:50 |
|
Помогите с CreateEventProc
|
|||
---|---|---|---|
#18+
vremennyy Код: vbnet 1.
Должно быть Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2012, 06:15 |
|
Помогите с CreateEventProc
|
|||
---|---|---|---|
#18+
Если lngReturn = mdl.CreateEventProc("Unload", "Form"), то создается блок Код: vbnet 1. 2. 3. 4.
но получаем сообщение "Can't enter break mode at this time" с вариантами Continue, End, Help. По Helpу получаем Can't enter break mode at this time Break mode is the state in which a program is still running, but its activity is suspended. This error has the following cause and solution: You tried to enter break mode, for example, by pressing CTRL+BREAK (Windows) or COMMAND+PERIOD (Macintosh), pressing the Break button on the Standard toolbar or the Debug toolbar, or by executing a breakpoint in the running code. A change was made programmatically to the project using the extensibility (add-in) object model. This prevents the program from having execution suspended. You can continue running, or end execution, but can't suspend execution. For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh). что перевел гугл Не могу войти в режим приостановки в настоящее время Перерыв режим государства, в котором программа еще работает, но его деятельность приостановлена. Эта ошибка имеет следующие причины и решения: Вы попытались войти в режим приостановки, например, нажав CTRL + BREAK (Windows) или COMMAND + ПЕРИОД (Macintosh), нажав кнопку Перерыв на стандартной панели инструментов или панели инструментов Отладка или выполнить контрольную точку в исполняемый код. Изменение было сделано программно в проект с помощью расширения (надстройки) объектной модели. Это предотвращает программа от того, выполнение приостановлено. Вы можете продолжать работу, или в конце исполнения, но не может приостановить исполнение. Для получения дополнительной информации, выберите элемент в Формуле-1 вопрос и нажмите кнопку (в Windows) или ПОМОЩЬ (на Macintosh). после нажатия "Continue" получаем MsgBox "Way cool!" Код: vbnet 1. 2. 3. 4.
Как программно пройти "Continue" (а лучше и не видеть его, и обойти эту ошибку) и закрыть программно окно модуля формы? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2012, 06:53 |
|
Помогите с CreateEventProc
|
|||
---|---|---|---|
#18+
спасибо огромное, Serge Gavrilov , ваш ответ здесь процедуру создает и здесь закрывает окно модуля формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2012, 07:00 |
|
Помогите с CreateEventProc
|
|||
---|---|---|---|
#18+
Сумбурный ответ получился. В общем, ответы Serge Gavrilov в этой теме и указанной в предыдущем сообщении решают вопрос, за что огромное спасибо (и как только люди такими умными становятся). Непонятно только почему при первом запуске выводится сообщение "Can't enter break mode at this time", а после контина во всех последующих запусках его уже нет... как-то это подозрительно... как бы при первом запуске его обходить? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2012, 07:10 |
|
Помогите с CreateEventProc
|
|||
---|---|---|---|
#18+
vremennyy, А Вы как программно создаёте код для событии формы? Покажите полный листинг программы. Может Вы пытаетесь добавить код, когда ещё модуль формы не существует? Или ещё "не готов"? Я имею ввиду, когда мы создаём форму, то она ещё не имеет модуль. Если же мы в свойство "HasModule" ставим True, то Access создаёт модуль для формы. Возможно (это моё предположение не более того) Access'у нужно пусть хоть ничтожное, но время для создания модуля. Т.е. нужно дать "передышку" и только потом продолжать. Ну чтобы "вступило в силу" свойство "HasModule". Ну точный ответ даст только эксперимент! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2012, 07:49 |
|
Помогите с CreateEventProc
|
|||
---|---|---|---|
#18+
studierenvremennyy, HasModule. Ну точный ответ даст только эксперимент! Проверку "работает - не работает" проверял на функции из хелпа (под первым спойлером в первом посте), в своем же модуле HasModule = True стоял (игры с бубном были долгими), потом его закомментил, прочитал ваше сообщение - снова раскомментировал (на всякий случай:). Эксперимент конечно сильная штука, но блин, окно с ошибкой уже не выпадает... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2012, 08:11 |
|
Помогите с CreateEventProc
|
|||
---|---|---|---|
#18+
Эксперимент конечно сильная штука, но блин, окно с ошибкой уже не выпадает... хоть с хазмодуля хоть без... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2012, 08:12 |
|
Помогите с CreateEventProc
|
|||
---|---|---|---|
#18+
vremennyy, А "on error resume next" попробовали тупо отключить сообщение об ошибке? Можно ещё с помощью Do While продолжать до тех пор, пока ошибки не исчезнут. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2012, 09:38 |
|
Помогите с CreateEventProc
|
|||
---|---|---|---|
#18+
studierenvremennyy, А "on error resume next" попробовали тупо отключить сообщение об ошибке? Можно ещё с помощью Do While продолжать до тех пор, пока ошибки не исчезнут. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
так в том-то и дело, что ошибка появилась только первый раз. А теперь ошибок нет (код не менял), даже после перезапуска проекта. Может и вопрос уже исчерпан. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2012, 10:01 |
|
|
start [/forum/topic.php?fid=45&msg=37764240&tid=1623234]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 127ms |
0 / 0 |