|
Как вызвать функцию на событие MouseMove?
|
|||
---|---|---|---|
#18+
На форме есть 100500 контролов, и мне нужно, что бы всегда знал, наl каким контролом в данный момент находится мышька. Можно для каждого контрола в режиме конструктора ВРУЧНУЮ определить функцию (ControlName_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)). Когда контролов не много - ладно, можно мышкой потыкать, а когда их реально стопицот можно ли как-то вместо [Процедура обработки событий] вписать что-то на подобие "=FunctionMouseMove(..." и передать в вызываемую функцию координаты мыши и имя контрола? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 23:31 |
|
Как вызвать функцию на событие MouseMove?
|
|||
---|---|---|---|
#18+
ЛилиПутиНа форме есть 100500 контролов, и мне нужно, что бы всегда знал, наl каким контролом в данный момент находится мышька. Можно для каждого контрола в режиме конструктора ВРУЧНУЮ определить функцию (ControlName_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)). Когда контролов не много - ладно, можно мышкой потыкать, а когда их реально стопицот можно ли как-то вместо [Процедура обработки событий] вписать что-то на подобие "=FunctionMouseMove(..." и передать в вызываемую функцию координаты мыши и имя контрола? Попробуйте методом CreateEventProc. Хэлп: Метод CreateEventProc создает процедуру обработки событий в модуле класса. Он возвращает значение типа Long, указывающее номер первой строки процедуры обработки событий. Синтаксис объект.CreateEventProc(имяСобытия, имяОбъекта) Метод CreateEventProc использует следующие аргументы. Аргумент Описание объект Объект Module, свойство Type которого возвращает константу acClassModule, имеющую значение 1. имяСобытия Строковое выражение,значением которого является имя события. имяОбъекта Объект, для которого возникает событие, указанное в аргументе имяСобытия. Сюда относятся объекты Form, Report и Control, а также раздел формы, раздел отчета и модуль класса. На основе примера из хэлпа попробуйте примерно так: Код: 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. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 04:45 |
|
Как вызвать функцию на событие MouseMove?
|
|||
---|---|---|---|
#18+
Можно ставить в событии(OnMouseMove) =myMouseMove("имя_контрола"). единственная сложность, что нужно прописать для каждого контрола. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
в процессе разработки, тестов myMouseMove может глюкануть и выдавать сообщение об ошибке. проходит только после перезапуска Access-а. пс: еще можно получать положение курсора(GetCursor) и сравнивать с положениями контрлов. но это слишком затратный вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 06:10 |
|
Как вызвать функцию на событие MouseMove?
|
|||
---|---|---|---|
#18+
*GetCursorPos ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 06:16 |
|
Как вызвать функцию на событие MouseMove?
|
|||
---|---|---|---|
#18+
Недописалось при копировании: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 07:14 |
|
Как вызвать функцию на событие MouseMove?
|
|||
---|---|---|---|
#18+
ЛилиПути, Для разнообразия - Об объектном подходе в VBA на примере изменения курсора мышки над элементами формы ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 08:13 |
|
|
start [/forum/topic.php?fid=45&tid=1620385]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 279ms |
total: | 412ms |
0 / 0 |