powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не получается WithEvents F As Access.Form
8 сообщений из 8, страница 1 из 1
Не получается WithEvents F As Access.Form
    #32816413
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
myForm_Access__cls:
Код: plaintext
1.
2.
3.
4.
Public WithEvents F As Access.Form
...
Private Sub F_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Stop
End Sub

z_Try__bas:
Код: plaintext
1.
2.
3.
4.
5.
6.
Public myForm As New myForm_Access__cls
...
Public Sub a____myForm__TEST()
Dim F As Form
Set F = Application.Screen.ActiveForm
Set myForm.F = F
End_SFP: End Sub
- пачиму активформ не стопает на маусмуве?
...
Рейтинг: 0 / 0
Не получается WithEvents F As Access.Form
    #32816417
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внутри кода класса должно быть явное назначения обработчика события

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    With ChildGrid
        .OnCurrent = "[Event Procedure]"
        .OnDblClick = "[Event Procedure]"
        .OnDelete = "[Event Procedure]"
        .BeforeDelConfirm = "[Event Procedure]"
        .AfterDelConfirm = "[Event Procedure]"
        .AfterInsert = "[Event Procedure]"
    End With
...
Рейтинг: 0 / 0
Не получается WithEvents F As Access.Form
    #32816435
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в форме не прописана хоть какая-нибудь реакция на события - то она их и не генерит. Вот такой вот аксес экономный.

К сожалению программно задать обработчик события для MouseMove не получится, т.к. у формы нет св-ва OnMouseMove
Стал быть надо открыть в конструкторе все формы и ручками задать им "[Event Procedure]" для события MouseMove
...
Рейтинг: 0 / 0
Не получается WithEvents F As Access.Form
    #32816455
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть OnMouseMove, но все равно - не работает!

Код: plaintext
1.
2.
3.
4.
5.
Public Sub a____myForm__TESTTTTT()
Dim F As Form
Set F = Application.Screen.ActiveForm
Set myForm.F = F
myForm.F.OnMouseMove = "[Event Procedure]"
End Sub

- может что другое нужно прописать - вместо "[Event Procedure]"?

А насчет "Вот такой вот аксес экономный" - очлюбопытно, как эта экономность реализована?
Есть объект Access.Form, у него есть событие MouseMove - чего еще?
...
Рейтинг: 0 / 0
Не получается WithEvents F As Access.Form
    #32816463
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох ПозорныйЕсли в форме не прописана хоть какая-нибудь реакция на события - то она их и не генерит. Вот такой вот аксес экономный.

К сожалению программно задать обработчик события для MouseMove не получится, т.к. у формы нет св-ва OnMouseMove
Стал быть надо открыть в конструкторе все формы и ручками задать им "[Event Procedure]" для события MouseMove

чё-то малость зарапартовался.
что за открытия такие - где нет - в каком акцессе?
...
Рейтинг: 0 / 0
Не получается WithEvents F As Access.Form
    #32816479
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уррррра! Все работает - с "[Event Procedure]" - нужно было мне просто до "тела формы" дотянуться!

Вопрос - теоретический - о способе реализации "экономности" - остается ...
...
Рейтинг: 0 / 0
Не получается WithEvents F As Access.Form
    #32816576
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Victosha
чё-то малость зарапартовался.
что за открытия такие - где нет - в каком акцессе?
был неправ
есть OnMouseMove
заблудился слегка :)
перепутал с другими OnЧтотоТам (которых нет)

2 Иван FXS
Вопрос - теоретический - о способе реализации "экономности" - остается ...
Где-то внутри формы сидит код типа такого:
Код: plaintext
1.
2.
If Me.OnMouseMove<>"" Then
    RaiseEvent MouseMove
End If
Что тут может быть не понятно? Как условный оператор реализован?
...
Рейтинг: 0 / 0
Не получается WithEvents F As Access.Form
    #32816651
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, пожалуй соглашусь: "движение мыши" - оно ведь активизирует Private Sub F_MouseMove не непосредственно, а опосредовано какими-то не-VB-шными (в смысле - не видимыми в пределах VB) процедурами ... Почему бы срединих и не быть этой самой проверке значения OnMouseMove - в целях, таксказать, "экономии"...

Есть друга забавная (нетривиальная, ИМХО) фишка: если у меня В ФОРМЕ имеется
Код: plaintext
1.
2.
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print "1: " & Now
End Sub

а в myForm_Access__cls:
Код: plaintext
1.
2.
3.
4.
Public WithEvents F As Access.Form
...
Private Sub F_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print "2: " & Now
End Sub

- то видны будут ОБА Debug.Print!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не получается WithEvents F As Access.Form
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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