Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 17:45   #1
myprog
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 33
По умолчанию Обработка нажатия кнопки на форме

Еще раз ПРИВЕТ ВСЕМ!!!

Работаем с формой.
На форме куча объектов с именами:
об_1, об_2 и т.д.

задавать свойства к обектам я научился.
Но возникла следущая задача:
процедура обработки нажатия мышки

Private Sub об_01_Click()
как получить название обекта об_1
myprog вне форума Ответить с цитированием
Старый 13.12.2010, 20:51   #2
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

А что в Вашем понимании есть "название объекта"?
Abrakadabra вне форума Ответить с цитированием
Старый 13.12.2010, 20:57   #3
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте myprog.
Цитата:
Сообщение от myprog Посмотреть сообщение
Private Sub об_01_Click()
как получить название обекта об_1
Имя объекта можно узнать/получить обратившись к его свойству Name
Код:
    [об_1].Name
Евгений.
P.S. для удобочитаемости выкладываемый код заключайте в тэги [соde]...[/соde].
Teslenko_EA вне форума Ответить с цитированием
Старый 15.12.2010, 10:24   #4
myprog
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 33
По умолчанию

Всем привет.

Ответа я пока не получил.
Поэтому еще раз:

Есть 80 прямоугольников с именами:
об_01, об_02 ... об_80

При нажатии на кнопку должна выполнятся процедура
в принципе процедура для всех кнопок одна
изменить цвет кнопки и записать результат в таблицу:

Код:
Public Sub ОбработкаКлика(tmpName As String)

'tmpName - название объекта: об_01, об_02 ... об_80
    
    Параметр1=Функция1(tmpName)
    Параметр2=Функция2(tmpName)
    Параметр3=Функция3(tmpName)

    If Form_Форма1.Controls(tmpName).BackColor = Form_Форма1.Цвет1.BackColor Then
        Form_Форма1.Controls(tmpName).BackColor = Form_Форма1.Цвет2.BackColor
        Call ЗаписьВТаблицу(Параметр1, Параметр2, Параметр3)
        Exit Sub
    End If
    
    If Form_Форма1.Controls(tmpName).BackColor = Form_Форма1.Цвет2.BackColor Then
        Form_Форма1.Controls(tmpName).BackColor = Form_Форма1.Цвет1.BackColor
        Call ЗаписьВТаблицу(Параметр1, Параметр2, Параметр3)
        Exit Sub
    End If

End Sub
но результат зависит от названия кнопки
при формировании формы в access в свойствах объекта
на вкладке СОБЫТИЕ свойство НАЖАТИЕ КНОПКИ
автоматически формирует процедуру:

Код:
Private Sub об_01_Click()

End Sub
как можно автоматически узнать имя нажатой кнопки
чтобы передать во вспомогательную процедуру:
т.е. типа такого:

Код:
Private Sub об_01_Click()
   tmpName=......некое выражение(мне неизвестное) после которого tmpName=об_01
   call ОбработкаКлика(tmpName)
End Sub
вот и все что мне нужно.
Заранее ВСЕМ БААААЛЬшое СПааасибо.ђС•Ђ¶¬яяяяаьЄ®Е1 @?
myprog вне форума Ответить с цитированием
Старый 16.12.2010, 15:50   #5
LittleFatCat
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 68
По умолчанию

Доброго времени суток!

В хелпе (RTFM) обнаружил вот такой кусочек кода:

Код:
Dim ctlCurrentControl As Control
Dim strControlName As String
Set ctlCurrentControl = Screen.ActiveControl
strControlName = ctlCurrentControl.name
В итоге переменная strControlName содержит название нужного элемента.
Её и надо передавать в подпрограмму
LittleFatCat вне форума Ответить с цитированием
Старый 16.12.2010, 17:14   #6
myprog
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 33
По умолчанию

И снова здрасте!!!

Спасибо LittleFatCat, но код не работает.
Не знаю почему. Но еще раз напомню: 80 прямоугольников (и совсем не кнопок)

Screen.ActiveControl.Name - выдает название единственной
( и соответственно активной ) кнопки "ОК"
myprog вне форума Ответить с цитированием
Старый 16.12.2010, 21:53   #7
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

myprog возможно Вам будет интересна конструкция в образце.
Евгений.
Вложения
Тип файла: rar db0.rar (14.3 Кб, 25 просмотров)
Teslenko_EA вне форума Ответить с цитированием
Старый 17.12.2010, 09:44   #8
myprog
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 33
По умолчанию

Я Всем благодарен за советы и решения.
Но пока требуемого результата нет.

Последнее решение предложенное Евгением
не дает ответа на вопрос:
КАК АВТОМАТИЧЕСКИ ПОЛУЧИТЬ НАЗВАНИЕ ОБЪЕКТА
по которому кликнули мышкой.

Код Евгения:

Код:
Private Sub Прямоугольник0_Click()
    ОбработкаКлика Прямоугольник0
End Sub
Еще раз:
1) Прямоугольник0_Click() - функция обработки нажатия на объект
2) Прямоугольник0 - название этого объекта
3) ВОПРОС:
СУЩЕСТВУЕТ ЛИ ФУНКЦИЯ ФОРМИРОВАНИЯ (ПОЛУЧЕНИЯ) ИМЕНИ ОБЪЕКТА

Еще раз Всем СПАСИБО. Надеюсь что решение НАЙДЕМ.

P.S.: Насколько я понимаю решение есть и простое. Все гениальное- просто. Как говориться.
myprog вне форума Ответить с цитированием
Старый 17.12.2010, 22:37   #9
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте myprog.
Я очевидно не понимаю Вашу задачу - "..как автоматически получить название объекта по которому кликнули мышкой..".
речь о том что бы получить имя внешней программой(?) используйте API, а если в той же программе используется обработчик события объекта и событие явно указывает на объект, а получать его свойство .Name Вы хотите ФУНКЦИЕЙ - не понимаю???
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка события нажатия кнопки masm Microsoft Office Access 6 22.08.2011 11:21
Обработчик нажатия кнопки OlegII Помощь студентам 4 08.12.2010 16:24
Повторение действий до нажатия кнопки Tukzar Общие вопросы Delphi 4 19.07.2010 08:22
Дата нажатия кнопки Jantar Общие вопросы Delphi 2 29.10.2009 10:27
Эмуляция нажатия кнопки F3 Dimixis Помощь студентам 4 17.06.2007 23:42