Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Словить исполняемое событие на форме с записями / 17 сообщений из 17, страница 1 из 1
17.09.2019, 14:09
    #39862862
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
Здравствуйте, подскажите пожалуйста, есть один вопрос по поводу отлова событий, на которые мы обычно вешаем исполнение наших процедур.
К примеру ,как вы знаете у формы есть такие события, как - до обновления, после обновления, удаление, после подтверждения del и куча других. Которые мы время от времени используем при проектировании нашей логики обработки информации.

А можно как нибудь словить тип исполняемого события с формы?

К примеру как то так : Если тип события Form_Dirty (ну то есть внесены изменения) то вывести msgbox " Событие -внесены изменения- отловлено"

Просто пощупать как отлавливать их. Если они выводятся в числовой кодификации, то ничего страшного. Просто вообще как за них зацепиться и послушать? Как то WithEvents на форму повесить можно, не из общего модуля, а локально в модуле формы, чтобы покороче ?
...
Рейтинг: 0 / 0
17.09.2019, 14:20
    #39862870
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
Подписку на события контролов и интерфейса Form в бэк-модуле самой формы уже организовали за нас ребята из MS.
Нам остается только описать саму процедуру обработки (при наличии модуля), например так:
...
Рейтинг: 0 / 0
17.09.2019, 14:38
    #39862886
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
PredeclaredПодписку на события контролов и интерфейса Form в бэк-модуле самой формы уже организовали за нас ребята из MS.
Нам остается только описать саму процедуру обработки (при наличии модуля), например так:

Не не, это все понятно.
Нужно зацепиться за сам обработчик события, слушать нужно с более высокого уровня. Нужно не прописывать само событие ,а именно отловить в системе его исполнение. Смысл вопроса такой: если исполняемое событие текущей формы к примеру Form_Dirty, то что то там, парам пам пам) К примеру вылетает msgbox.

То есть повесить listener возникновения самих событий. Это практикуется , но пример пока не могу найти.

(представьте такой абстрактный пример - программно на форме создается 20 кнопок. Не прописывать же для каждой отдельно событие _onClick() Можно же написать обработчик для всего массива/коллекции свежесозданных кнопок.)
...
Рейтинг: 0 / 0
17.09.2019, 15:32
    #39862917
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
Сергей Лалов(представьте такой абстрактный пример - программно на форме создается 20 кнопок. Не прописывать же для каждой отдельно событие _onClick() Можно же написать обработчик для всего массива/коллекции свежесозданных кнопок.)
Именно создается, а не показывается? А потом удаляется?
Я пробовал делать так(здесь отговаривали:)) - то ли счетчик контролов на форме переполняется то ли еще что.... Ломается форма в один прекрасный момент и приходится ее пересоздавать.
...
Рейтинг: 0 / 0
17.09.2019, 15:35
    #39862918
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
Сергей Лалов... Нужно не прописывать само событие ,...
А мы и не имеем возможности прописывать события интерфейса Form. Это сделано за нас.

Сергей Лалов Смысл вопроса такой: если исполняемое событие текущей формы к примеру Form_Dirty, то что то там, парам пам пам) К примеру вылетает msgbox...
Для того, чтобы что то вылетало, нужно подписаться и обрабатывать(описать процедуру обработки события/назначить макрос).

Сергей Лалов...Не прописывать же для каждой отдельно событие _onClick() ...
Не "событие", а "процедуру обработки события". Это разные вещи.
И именно для каждой.
Для статичного количества кнопок можно и простынкой.
Для варианта динамичного количества кнопок, для каждой кнопки создается свой инстанс класса-обертки,
в котором и подписка, и процедура обработки событий описана.
...
Рейтинг: 0 / 0
17.09.2019, 15:50
    #39862931
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
Сергей Лалов...абстрактный пример - программно на форме создается 20 кнопок....абстрактный вопрос - а за нахрена на форме 20 кнопок с одним и тем же обработчиком
Конкретный пример при создании фильтра по нескольким полям:создать процедуру SUB вызываемую после обновления любого поля для ввода критерия,сформировать строку WHERE и применить фильтр
...
Рейтинг: 0 / 0
17.09.2019, 15:59
    #39862935
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
sdkuСергей Лалов...абстрактный пример - программно на форме создается 20 кнопок....абстрактный вопрос - а за нахрена на форме 20 кнопок с одним и тем же обработчиком
Конкретный пример при создании фильтра по нескольким полям:создать процедуру SUB вызываемую после обновления любого поля для ввода критерия,сформировать строку WHERE и применить фильтр

Вопрос то не про кнопки, а про отлов событий)
Да я уже разобрался со своей проблемой, дописываю небольшой класс модуль. Решение на свой вопрос сейчас выложу.
...
Рейтинг: 0 / 0
17.09.2019, 16:47
    #39862968
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
Вот небольшой пример базы , класс модуль в которой позволяет повесить "прослушку" на исполняемые события объекта (у меня форма в частности, event procedures из объекта типа форма. Просто можно попробовать в подчиненной форме добавить/удалить/изменить запись. И в msgbox будет вылетать извещение, о том, какое событие формы было исполнено. Я в качестве примера описал не все события, интересовали на после обновления, до подтверждения удаления, перед добавлением, после добавления . Их и слушал. Пример простенький , но рабочий.
Обратите внимание, что модуль самой формы практически пуст)
Поюзать функционал можно попробовав добавить/изменить/удалить записи на табличной форме.
Пример приложил.
...
Рейтинг: 0 / 0
17.09.2019, 17:15
    #39862987
4d_monster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
Казус "Закона Архимеда" в чистом виде.
...
Рейтинг: 0 / 0
17.09.2019, 17:22
    #39862992
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
Сергей ЛаловДа я уже разобрался со своей проблемой, дописываю небольшой класс модуль.
Возьмите Гетца Access 2000 , Глава 2 . Все подробно описано , а в прилагаемом диске есть пример .
...
Рейтинг: 0 / 0
17.09.2019, 17:26
    #39862995
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
PredeclaredСергей Лалов... Нужно не прописывать само событие ,...
А мы и не имеем возможности прописывать события интерфейса Form. Это сделано за нас.

Сергей Лалов Смысл вопроса такой: если исполняемое событие текущей формы к примеру Form_Dirty, то что то там, парам пам пам) К примеру вылетает msgbox...
Для того, чтобы что то вылетало, нужно подписаться и обрабатывать(описать процедуру обработки события/назначить макрос).

Сергей Лалов...Не прописывать же для каждой отдельно событие _onClick() ...
Не "событие", а "процедуру обработки события". Это разные вещи.
И именно для каждой.
Для статичного количества кнопок можно и простынкой.
Для варианта динамичного количества кнопок, для каждой кнопки создается свой инстанс класса-обертки,
в котором и подписка, и процедура обработки событий описана.

Да, вы правы, именно "процедура обработки событий", её вызов нужен в конечном итоге, но из одного места. Пишу уже около трех дней функцию достаточно большую, которая должна перехватывать управление на основные действия типа удалить, изменить, добавить итд. (пишу реализацию трехзвенки Ms asccess+php+mysql. Преимущества в том, что вообще не нужно использовать MySQL odbc. Сам аксесс (его таблицы и формы включаются в функцию как аргументы и пользователь вообще не видит разницы , он также как и обычно продолжает работать в обычном аксессе)) Функция берет на себя организацию select,update,delete,insert с таблиц и формы Access
В общем то почти написал уже. Блок с класс модулем, который я написал - это скорей приятное дополнение к функционалу , не надо в функцию вводить дополнительные аргументы, и на форме на каждое событие обращаться к одной и той же функции неоднократно.
...
Рейтинг: 0 / 0
17.09.2019, 17:42
    #39863009
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
DarkManСергей ЛаловДа я уже разобрался со своей проблемой, дописываю небольшой класс модуль.
Возьмите Гетца Access 2000 , Глава 2 . Все подробно описано , а в прилагаемом диске есть пример .

У меня есть в распечатке, лет 8 наверное пользуюсь,кирпич бумаг размером с небольшую тумбочку, потрепало страницы за эти годы
...
Рейтинг: 0 / 0
17.09.2019, 17:59
    #39863026
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
4d_monsterКазус "Закона Архимеда" в чистом виде.

Вы имеете в виду, что разницы никакой нет и переместилось все из локального модуля в класс модуль) Те же яйца только сбоку?) Не, не совсем так.
По задаче в определенный момент нужно использовать наш обычный способ написания процедур (в модуле формы к примеру), а потом при нажатии определенной кнопки нужно изменить чтобы те же самые процедуры событий начали работать кардинально по новому, по определенному шаблону. Можно настрочить конечно кучи if в обычных процедурах, дописать дополнительные обработчики вариантов. Но мне хочется чтобы управление данным при определенных условиях было из одной функции. В общем то накатал уже львиную долю.
...
Рейтинг: 0 / 0
17.09.2019, 18:18
    #39863037
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
Serg197311.....
.... - то ли счетчик контролов на форме переполняется то ли еще что.... Ломается форма в один прекрасный момент и приходится ее пересоздавать.

Ну тогда тем, кто пишет в аксессе игры типа змейка, с динамически задаваемым количеством клеток/кнопок не повезло )
...
Рейтинг: 0 / 0
17.09.2019, 20:05
    #39863060
zimkon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
Сергей ЛаловSerg197311.....
.... - то ли счетчик контролов на форме переполняется то ли еще что.... Ломается форма в один прекрасный момент и приходится ее пересоздавать.

Ну тогда тем, кто пишет в аксессе игры типа змейка, с динамически задаваемым количеством клеток/кнопок не повезло )
Уже :) http://softwaretopic.informer.com/snake-vba-access/
...
Рейтинг: 0 / 0
17.09.2019, 23:24
    #39863111
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
zimkonУже :) http://softwaretopic.informer.com/snake-vba-access/

Скачал, поиграл, спасибо:) Помню сделал консольную версию, на Java. Там с автоматическим обновлением (перерисовкой без участия дополнительного нажатия на клавишу человеком ) консоли были проблемы с движением. Сама змейка получилась, только рядом сидел второй человек ,который путем нажатия на дополнительную клавишу (которая служила якорем прерывания бесконечного цикла) очищал консоль и автоматом отрисовывался массив значений со следующим шагом змеи ))
...
Рейтинг: 0 / 0
17.09.2019, 23:41
    #39863114
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Словить исполняемое событие на форме с записями
Если выбирать потенциал геймдева между access или excel, то лучше excel, там можно уменьшить клетку до размера пикселя и обрабатывать её)) Люди создают целые шедевры, кто то 3d движок даже сделал на VBA Excel, и создал игру типа Doom.
Другой вообще Марио под эксель переписал)

[youtube=
YouTube Video
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Словить исполняемое событие на форме с записями / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]