Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как получить ссылку на control, вызвавший событие %) (при том что он не активный) / 15 сообщений из 15, страница 1 из 1
17.07.2004, 01:57:35
    #32609151
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
?
...
Рейтинг: 0 / 0
17.07.2004, 02:01:40
    #32609152
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
Бред
Человек, задавший этот вопрос - не понимает, что такое события
На вопрос можно не отвечать, топик я удалю.
...
Рейтинг: 0 / 0
17.07.2004, 02:33:09
    #32609158
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
лох, не могли бы вы все таки пояснить - чего я не понимаю.
есть надпись - по MouseMove хочется ее подчеркнуть - надписей таких много -единственный вариант - с перебором - всех контролов и проверкой координат?
...
Рейтинг: 0 / 0
17.07.2004, 04:23:09
    #32609168
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
лох, может быть вас покоробило слово "вызвавший" - ок, элемент, которому принадлежит событие.
...
Рейтинг: 0 / 0
17.07.2004, 10:32:32
    #32609193
Deminik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
>>> есть надпись - по MouseMove хочется ее подчеркнуть

MouseMove, наверное и принадлежит этой надписи... правильно ?
...
Рейтинг: 0 / 0
17.07.2004, 11:05:01
    #32609210
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
____Дмитрий___лох, не могли бы вы все таки пояснить - чего я не понимаю.
есть надпись - по MouseMove хочется ее подчеркнуть - надписей таких много -единственный вариант - с перебором - всех контролов и проверкой координат?
для "полётов" мышью других вариантов науке не известно
(либо один обработчик+координаты
либо каждой надписе по личному обработчику
либо каждой надписе при вызове общего обработчика имя контрола)
...
Рейтинг: 0 / 0
19.07.2004, 08:52:03
    #32609815
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
еще специфическое решение
над контрлами прозрачная надпись у которой контролируется движение мыши
при загрузке формы создается массив в котором каждому значению горизонтальных координат соответствует имя контрола
...
Рейтинг: 0 / 0
19.07.2004, 10:26:20
    #32609968
ячсм
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
лох, не могли бы вы все таки пояснить - чего я не понимаю.
Если вы перехватили событие - то вы уже знаете, от какого именно объекта оно пришло. Так что изначальный вопрос смысла не имеет.

Разумеется, это не относится к случаю, когда один и тот же обработчик используется для обработки одного и того же события от нескольких однотипных объектов. Во-первых средствами VB такую обработку сделать не получится. Во-вторых сами объекты и события (например ADODB.Recordset), спроектирование под такую обработку событий, обычно передают в обработчик события ссылку на объект-источник. Объекты аксеса таким умом и сообразительностью - не отличаются.

Сама среда аксеса позволяет это как-то обойти (назначить с качестве обработчика для кучи визуальных контролов какой-нибудь один макрос, либо какую-либо рукописную функцию), но таким образом все равно не получится новой функциональности, изначально отсутствующей в самих объектах, генерирующих событие. Поэтому - приходится использовать либо активный контрол, либо координаты мыши, либо расположение звезд на небе.
...
Рейтинг: 0 / 0
19.07.2004, 10:27:13
    #32609973
ячсм
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
З.Ы. А чего это я злой как собака позавчера был?
...
Рейтинг: 0 / 0
19.07.2004, 10:39:24
    #32610000
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
ячсмРазумеется, это не относится к случаю, когда один и тот же обработчик используется для обработки одного и того же события от нескольких однотипных объектов. Во-первых средствами VB такую обработку сделать не получится.
Получится. Не использовать один и тот же обработчик. Хотя бы передать ему параметр.
...
Рейтинг: 0 / 0
19.07.2004, 10:54:21
    #32610039
ячсм
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
Саныч, ты меня удивляешь
Я сказал, что средствами VB не получится использовать один обработчик - ты ответил что получится, причем НЕ использовать один обработчик
Ну да... отрицание отрицания :))
...
Рейтинг: 0 / 0
19.07.2004, 11:35:53
    #32610171
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
Обработчик бывает 3 видов.

1. [Event Procedure]. Проблем нет, в каждом событии ясно, к какому контролу оно относится.

2. =функция(). Обработчик один на всех, но есть возможность различать контролы при помощи параметра.

3. макрос. Обработчик один на всех, и нет возможности различать контролы.
...
Рейтинг: 0 / 0
19.07.2004, 11:47:41
    #32610202
ячсм
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
СанычОбработчик бывает 3 видов.
Это как раз то, про что я сказал
яСама среда аксеса позволяет это как-то обойти
При каноническом использовании ActiveX никаких таких трех видов обработчиков не бывает. Это уже аксесовсая отсебятина.

Саныч2. =функция(). Обработчик один на всех, но есть возможность различать контролы при помощи параметра.
Ничем принципиально не отличается от "[Event Procedure]" c вызовом какой хочешь функции с каким хочешь параметром.
Правда, можно использовать синтаксис "=функция(Form.ActiveControl)" для передачи ссылки на активный контрол. Тоже блин аксесовская отсебятина, но только из-за этого можно вынести отдельным пунктом.
В рассматриваемом случае - не прокатывает (по причине отсутствия активного контрола). Остаются координаты мышки или расположение звезд
...
Рейтинг: 0 / 0
19.07.2004, 12:13:16
    #32610258
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
Пытаюсь телепятить, что у автора вопроса одна из ситуаций 2 или 3.
...
Рейтинг: 0 / 0
21.07.2004, 13:41:24
    #32614666
как получить ссылку на control, вызвавший событие %) (при том что он не активный)
>Если вы перехватили событие - то вы уже знаете, от какого именно объекта >оно пришло. Так что изначальный вопрос смысла не имеет.
>Разумеется, это не относится к случаю, когда один и тот же обработчик >используется для обработки одного и того же события от нескольких >однотипных объектов.

т.е. все-таки имеет Ж) ? и ответ тоже, насколько я понял, имеется - нет. видимо разработчики тоже рассматривали вопрос как изначальный ж)
а вообще, по-моему, удобное решение - однотипные префиксы на контролы - и программная расстановка обработчиков.
а что касается подсветки ссылок - так вообще непонятно как-это в 2002ом аксесе они до сих пор для этого специальной кнопки не придумали..
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как получить ссылку на control, вызвавший событие %) (при том что он не активный) / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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