Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Прикрутить одни и те же события к контролу во всех формах одной базы / 7 сообщений из 7, страница 1 из 1
02.11.2017, 00:01
    #39546446
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрутить одни и те же события к контролу во всех формах одной базы
В ленточной форме я написал обработчик событий для перемещения столбов ленточной формы.

1 событие нажал мышку, 2 событие двигаю мышку, 3 событие отпускаю мышку. Столбик улетел на нужную позицию.

Но надоело в для каждой формы, для каждого столбика ленточной формы писать одни и те же 3 события.

Хочется как-то объявить этот контрол, а события прилеплялись к нему сами.
...
Рейтинг: 0 / 0
02.11.2017, 00:44
    #39546458
Вакшуль Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрутить одни и те же события к контролу во всех формах одной базы
JavaStudent,
тю :)
так посмотрите же то решение, которое я для вас сделал - 20797575
Посмотрите что и как делают классы FormScrollBars и FSBControl. Заодно и пользу от использования интерфейсов оцените.
...
Рейтинг: 0 / 0
02.11.2017, 22:29
    #39547046
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрутить одни и те же события к контролу во всех формах одной базы
Вакшуль Сергей, смотрел пример. Но для меня WithEvents пока выше понимания.

Но двигаюсь в этом направлении.
...
Рейтинг: 0 / 0
03.11.2017, 02:33
    #39547095
Вакшуль Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрутить одни и те же события к контролу во всех формах одной базы
JavaStudent,
Посмотрите эту ветку 15027360
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
25.07.2019, 14:00
    #39841395
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрутить одни и те же события к контролу во всех формах одной базы
Решил эту задачку. На форме много label, события одинаковые. На вход передается только имя label.

так прописываем (Initialize) события

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Labels As New Collection

Private Sub PutEvent()
Dim contr As Control
   For Each contr In Forms(Me.Name).Controls
       If TypeName(contr) = "Label" Then
              With New ClassLabel
                Call .Initialize(contr, True)
                Labels.Add .Instance
              End With
       End If
   Next
End Sub



Создаем класс и пишем туда

Код: sql
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.
Const EP As String = "[Event Procedure]"
Private WithEvents cmd As Access.Label

Public Sub Initialize(lab As Access.Label)
    Set cmd = lab
       With cmd
         '  .OnMouseDown = EP
         '  .OnMouseUp = EP
          .OnClick = EP
         '  .OnDblClick = EP
         '  .OnMouseMove = EP
       End With
End Sub

Public Property Get Instance() As ClassLabel
    Set Instance = Me
End Property

Private Sub Class_Terminate()
    Set cmd = Nothing
End Sub

Private Sub cmd_Click()
MsgBox cmd.Name
End Sub
...
Рейтинг: 0 / 0
25.07.2019, 17:08
    #39841531
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрутить одни и те же события к контролу во всех формах одной базы
Число аргументов не совпадает.
...
Рейтинг: 0 / 0
25.07.2019, 23:50
    #39841699
JavaStudent
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прикрутить одни и те же события к контролу во всех формах одной базы
Predeclared, вместо Call .Initialize(contr, True), надо Call .Initialize(contr)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Прикрутить одни и те же события к контролу во всех формах одной базы / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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