Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переменная не хочет становиться withEvents / 17 сообщений из 17, страница 1 из 1
26.10.2004, 18:03:27
    #32755598
Осел
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
Я в модуле формы генерю событие, хочу, чтобы код в модуле класса его отловил, пишу
Private WithEvents t As clsNewDocID, а копилятор говорит - object does not source automation events
...
Рейтинг: 0 / 0
26.10.2004, 18:06:53
    #32755606
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
А в модуле clsNewDocID какие-нибудь события описаны?
...
Рейтинг: 0 / 0
26.10.2004, 18:08:41
    #32755611
Осел
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
Нет, они описаны в модуле формы. В модуле класса описаны их обработчики.
...
Рейтинг: 0 / 0
26.10.2004, 18:09:50
    #32755615
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
ну так и опиши их в класе
...
Рейтинг: 0 / 0
26.10.2004, 18:12:24
    #32755618
Осел
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
Kelme, они и так в классе - классе формы, там, где происходит RaiseEvent
...
Рейтинг: 0 / 0
26.10.2004, 18:21:14
    #32755654
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
я классы ни разу не писал, но предполагаю, что описание событий должно быть в самом классе, а не в модуле какой-то формы.
...
Рейтинг: 0 / 0
26.10.2004, 18:28:26
    #32755677
Осел
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
В примере, который в Help (про секундомер) они действительно, в классе. Но там смысл другой. В их примере Event-ы там (в модуле класса) и генерятся. Там код формы открывает функцию в классе с описанными eventa-ами, и по Event-у происходит вызов обработчиков, которые в модуле формы (там данные обновляются).
У меня же, наоборот, код открывает форму, и по Event-у в форме надо передать параметр всем, кому надо.
...
Рейтинг: 0 / 0
26.10.2004, 18:35:57
    #32755702
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
автор
В примере, который в Help (про секундомер) они действительно, в классе. Но там смысл другой

Cмысл написания класов везде один и тот же, все что относится к классу должно быть в нем ОПИСАНО, все св-ва, методы и события (про наследование речь не идёт).
...
Рейтинг: 0 / 0
26.10.2004, 18:41:54
    #32755718
Осел
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
Ну, не смысл, а ситуация другая. В их примере события и описания их лежат в независимом модуле класса, а обработчики - в модуле формы. У меня - наоборот.
...
Рейтинг: 0 / 0
26.10.2004, 18:48:01
    #32755733
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
автор
Ну, не смысл, а ситуация другая. В их примере события и описания их лежат в независимом модуле класса, а обработчики - в модуле формы. У меня - наоборот.



тебе же русским языком говорят и Access по английски говорит:
описание событий должно быть в ТЕЛЕ КЛАССА!
...
Рейтинг: 0 / 0
26.10.2004, 18:50:11
    #32755736
Кузька
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
Не надо WithEvents...
WithEvents нужна в том коде, КОТОРЫЙ будет ловить сообщения. Просто генерьте и усё будет...
...
Рейтинг: 0 / 0
26.10.2004, 18:51:45
    #32755742
>>
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
При том, что описание событий должно быть в теле класса :)
...
Рейтинг: 0 / 0
26.10.2004, 18:56:47
    #32755750
Осел
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
Кузька ,
А зачем мне их так просто генерить, мне надо, чтобы их кто-то ловил.
...
Рейтинг: 0 / 0
26.10.2004, 18:57:56
    #32755751
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
Private WithEvents t As Form 'clsNewDocID
'WithEvents - тот, кто тебе (классу) педераст "сообщение" о своих событиях, т.е. "сервер". Твой класс - его "клиент".
В своем классе (клиенте) ты и пишешь процедуры запускаемые событиями "сервера", -т.е. определенными (и наступающими) для "сервера событий" (в твоем случае - Form). Если ты попытаешься определить в серверы событий класс, не реализующий событий - то его клиентам нечего будет получать. Если ты хочешь последовательно переслать от своего (промежуточного класса -клиента) сообщение (событие) другому классу - вызови в нем уже его, собственный RaiseEvent (которы и будет слаться дальше).


в языке просто скрыта реализация "передачи" управления от "серверов" - "клиентам" (или организация параллельных нитей - ит депендс - т.к., если сервер должен дождаться завершения одного _своего_ события, до возникновения следующего - он, думается, будет ждать завершения всех обработчиков "получателей", хотя в аналогии программирования событий с асинхронно читаемой почтой этого не просматривается - сервер не обязан ждать отклика клиентов, их, откликов, просто "не существует" в языке), и организация общего "вычислительного процесса" по синтаксическим меткам вида:
{Объявить_мне_клиенту WithEvents "сервер" AS "класс-рассыльщик-событий"}
...
Рейтинг: 0 / 0
26.10.2004, 19:14:26
    #32755774
Кузька
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
Осел, ты всё понял, что 4321пуск сказал? Ну тогда я на пальцах :) //не обижаться!

У тебя есть класс clsNewDocID? Есть.
Обработчики событий (код, который будет выполнен при возникновении события в классе) в нем есть? Есть.
Форма в которой генерируется событие есть? Есть.
Ну так и объяви в форме переменную (без WithEvents), ссылающуюся на твой класс и генерь для этого класса события.

WithEvents нужен для того, чтобы ссылаться на некий объект и ПОЛУЧАТЬ ВСЕ СОБЫТИЯ ДАННОГО ОБЪЕКТА . Какие события у тебя генерит класс, чтобы ты пытался получить их в форме, описывая переменную с WithEvents?
...
Рейтинг: 0 / 0
26.10.2004, 19:18:29
    #32755784
Осел
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
4321,
Интересно, попытаюсь в этом разобраться.
Но как же все же решить мою простую задачку? Я просто хотел, чтобы параметр, выбранный в форме, вернулся в запускающий эту форму код, но чтобы этот код не юзал контролы формы, чтоб он глобальные переменные не юзал. Так нельзя что-ли в VBA сделать?
...
Рейтинг: 0 / 0
26.10.2004, 19:26:42
    #32755797
Осел
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная не хочет становиться withEvents
Кузька,
В форме у меня описано событие
Public Event sendDocid(DocID As Long),
которое наступает один раз, когда после ввода данных посчитан DocID, который и надо передать в тот код, что форму запустил.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переменная не хочет становиться withEvents / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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