powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как получить значение свойства объекта типа Label?
25 сообщений из 28, страница 1 из 2
Как получить значение свойства объекта типа Label?
    #32802942
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как получить значение свойства объекта типа Label при щелчке на нем? При чем варианты с записью кода в событие контрола не подхадят. То есть интересует что-то вроде Screen.ActiveControl.Свойство
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32802947
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где должен быть код, выполняемый по щелчку мыши?
В функции указанной в свойстве контрола On Mouse Down?
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32802952
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Label никогда не будет ActiveControl. Обращаться к нему все равно надо по имени, никакие Me или This не помогут.

И событие все равно надо как-то обработать. Хоть тушкой, хоть чучелом.
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32802972
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычLabel никогда не будет ActiveControl. Обращаться к нему все равно надо по имени, никакие Me или This не помогут.

И событие все равно надо как-то обработать. Хоть тушкой, хоть чучелом.
а с помощью API никак?
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32802973
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge GavrilovА где должен быть код, выполняемый по щелчку мыши?
В функции указанной в свойстве контрола On Mouse Down?
код в модуле
На всех формах через контекстное меню выполняется общий для всех код из модуля
И как бы тут к этому контролу из контекстного меню подлезть? :)
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32802974
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно задать окну формы через SetCapture перехват нажатий мыши. По координатам нажатия и пербором контролов определять есть ли контрол под мышью ...
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32803255
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создать свойство у формы, которое будет хранить название только что нажатого Label'a.
На клик по Label'у присваивать этому свойство значение.
Определять какой кнопкой на мыше щелкнули и вызывать контекстное меню методом ShowUp.
Чтобы не писать в каждый Label код, надо написать класс с обработкой события для Label'a и на OnLoad формы перебрать все Label'ы и заполнить коллекцию...

Вот здесь в самом низу в Dispatch.zip, есть форма frmSchedule - там реализован описанный подход.
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32804831
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge Gavrilovможно задать окну формы через SetCapture перехват нажатий мыши. По координатам нажатия и пербором контролов определять есть ли контрол под мышью ...
Чуть-чуть поподробнее, пожалуйста, несчет связи координат нажатия и координат контрола. Какие функции здесь использовать?

lobodavaСоздать свойство у формы, которое будет хранить название только что нажатого Label'a.
На клик по Label'у присваивать этому свойство значение.
Определять какой кнопкой на мыше щелкнули и вызывать контекстное меню методом ShowUp.
Чтобы не писать в каждый Label код, надо написать класс с обработкой события для Label'a и на OnLoad формы перебрать все Label'ы и заполнить коллекцию...

Вот здесь в самом низу в Dispatch.zip, есть форма frmSchedule - там реализован описанный подход.
Интересные примеры. Спасибо.
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32805424
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Me.Requery
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32806191
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Me.Requery
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32806478
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Vsevolod V]Чуть-чуть поподробнее, пожалуйста, несчет связи координат нажатия и координат контрола. Какие функции здесь использовать?

Чтобы сказать что-то подробнее, мне надо самому попробовать. Но, к сожалению, я не могу это сделать пока.

Еще можно попробовать перехватывать сообщения формы. Но для Access форм я это не делал.
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32806557
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже всю книжку по API измусолил. Есть там функции для определения координат контрола, но всем им нужно Form!Control. hWnd , а в VBA такого не предусмотренно :(
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32806690
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что хотим в итоге сделать?
Может, если задачу поширее раскрыть, тогда и варианты решения найдутся?
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32806696
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идея в общем такая:
Делаю справочную систему. Пользователь нажимает правой кнопкой мыши и появляется контекстное меню ("Что это такое?", "Настройка"). Тыкать юэер хочет в любое место на экране (там, где есть какой-либо контрол) и просматривать справку. То есть для отображения справки нужно брать HelpContextID у соответствующего контрола. С обычным полем все просто - Screen.ActiveControl.HelpContextID и вперед! А вот что с лэйблом делать?
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32806697
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В каких единицах функция GetCursorPos возвращает координаты курсора? И как их сопоставить с Control.Left, Control.Width и т.д.???
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32806758
Евгений1234-5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetCursorPos - в пикселях.
А вообще по Me.hwnd можно вычислить положение формы на экране (это обязательно), а далее твой лэйбел скорее всегда на одном месте находится и заранее зная его координаты, но в пикселях ты сможешь знать на нём мышь или нет.
Сам так делал.
Описываю конечно упрощённо.
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32806759
Евгений1234-5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему методу все равно придется ловить по какому либо событию.
Не про ще ли как lobodava предлагал(а)(прошу прощения)
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32807271
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений1234-5По моему методу все равно придется ловить по какому либо событию.
Не проще ли как lobodava предлагал(а)(прошу прощения)?
1. Событие - щелчок правой кнопкой мыши в любой области активной формы
2. Честоно говоря с примером lobodava пока еще не до конца разобрался, т.к. не имею практического опыта в разработке классов. Но видимо решение можно получить именно этим путем. Хотя я считаю, что можно найти и более оптимальное решение путем обработки координат курсора мыши и соответствующих объектов.
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32807832
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класс может быть такой (т.е. этот код надо сохранить именно в модуле класса) :
Код: plaintext
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.
31.
32.
'Class name: clsCurrentLabel'

Option Compare Database
Option Explicit

Private WithEvents mlbl As Label
Private mfrm As Form
Private mcmb As CommandBar

Public Property Get Label() As Label
    Set Label = mlbl
End Property

Public Property Set Label(lblNewLabel As Label)
    Set mlbl = lblNewLabel
    mlbl.OnMouseDown = "[Event Procedure]"
    Set mfrm = mlbl.Parent
End Property


Public Property Get CommandBar() As CommandBar
    Set CommandBar = mcmb
End Property

Public Property Set CommandBar(cmbNewCommandBar As CommandBar)
    Set mcmb = cmbNewCommandBar
End Property


Private Sub mlblLabel_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    mfrm.CurrentLabelName = mlbl.Name    
    If Button = acRightButton Then mcmb.ShowPopup
End Sub

в форме надо создать новое свойство и коллекцию:
Код: plaintext
1.
Public CurrentLabelName As String
Private colсlbls As New Collection
и на событие Form_Load написать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Form_Load()
    Dim clbl As clsCurrentLabel

    Set clbl = New clsCurrentLabel
    Set clbl.Label = Me.lblLabel  '<-- это Label на форме'
    Set clbl.CommandBar = Application.CommandBars("cmbMyCommandBar") '<-- а это всплывающее меню'
    colclbls.Add clbl, clbl.Label.Name
    Set clbl = Nothing
End Sub
Если Label'ов много, то последие пять сток надо повторить в цикле.

Да! Не забыть включить ссылку на библиотеку Microsoft Office.
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32807859
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lobodava, спасибо.
Да, дествительно это будет работать, но это довольно сложный путь, т.к. форм очень много.
Все же хотелось бы найти решение через использование координат.
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32807906
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... как скажете. Всегда, пожалуйста.
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32807909
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lobodavaНу... как скажете. Всегда, пожалуйста.
Вы так добры :)
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32808634
Евгений1234-5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДа, дествительно это будет работать, но это довольно сложный путь, т.к. форм очень много.
Все же хотелось бы найти решение через использование координат.
В обед попробую написать.
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32808768
Евгений1234-5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написать что-то толковое нет времени. В первых двух полях координаты формы, а в двух других мыши. Зная заранее координаты контролов можно их определять.
...
Рейтинг: 0 / 0
Как получить значение свойства объекта типа Label?
    #32815356
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений1234-5
Спасибо за пример.
---
Проблема именно в том, что я не знаю как соотнести координаты мыши с координатами контрола. Например, в Вашем примере Поле13.Left = 680, а Х-координата мыши в этом месте = 242
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как получить значение свойства объекта типа Label?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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