ОйОй
Дата: 06.09.2005 07:58:37
Если я правильно понял вопрос... В public модуле разместите функцию, принимающу в качестве параметра кнопку, поле, имя, любую метку. Например:
Public Function MyAnyFuncBlaBla(ByRef frm as Form, ByRef btn as CommandButton) as long
Dim a as string
With frm
a = .Name 'а тут делаем с формой, контролами и т.п. что надо
End with
With btn
a = .Name 'а тут с кнопкой (или любым контролом)
End With
End Function
Т.е. основной смысл - передать в ф-цию обработки ссылку на объект, а там уже... В общем, передавайте в неё всё что захочется, вплоть до форм и рекордсетов. Там и пишите код обработки.
А в самой кнопке на форме разместите что-нибудь, вроде:
Private Sub Кнп_ОгоГо_Click()
Call MyAnyFuncBlaBla(Me, Me.Кнп_ОгоГо)
End Sub
Ещё можно иммитировать массивы контролов (ибо прямой поддержки в Аксе массива контролов, по-моему, нет). Но тот путь, что я привёл - проще.
Витал
Дата: 06.09.2005 09:58:33
Alexander G |
Как раз этого (определения процедуры обработки события для каждой кнопки) он, похоже и хочет избежать :) |
пропиши имя этой единственной функции в свойствах кнопок, на событие клик например, =ИмяФункции(Параметр),
где Параметр м.б. число или текст (имя кнопки).
Ессно функция должна его принимать.
antipod
Дата: 06.09.2005 10:27:01
Спасибо.
В принципе можно и так выкрутится.
Вообще задачка такая, несколько извращенно, но работать должно.
На плане (подложка на форме) может распологатся какое-то число объектов.
Расположение кнопок я эмулирую их положение(при открытии формы они распологаются там где надо). Количество оюектов не ограничено, я побольше кнопок накидал не видимыми. Не хочу описывать все.
Как это избежать? Можно ли добавлять кнопку программно, а так же событие кней?