|
|
|
| Как отследить клик мышкой по контролу , созданному(добавленному) на форму программно.
Может как то массив этих контролов создать что ли.... | |
|
| |
|
|
|
| вот табе - код. он создает в форме "Vibor_Naimen" функцию и именем ioo и ее окончанием
обрати внимание на название модуля "Form_....." а потом его имя!!! т.е. как в модуле VB.
Private Sub Кнопка75_Click()
Dim mdl As Module
DoCmd.OpenModule "form_Vibor_naimen"
Set mdl = Modules("form_Vibor_naimen")
mdl.AddFromString "Public Sub ioo()" & Chr(13) & Chr(10) & "end sub"
End Sub
|
еще способ - из файла текст:
Метод AddFromFile добавляет содержимое текстового файла в объект Module. Объект Module представляет стандартный модуль или модуль класса.
короче Хэлп в помощь, сам только об этом узнал | |
|
| |
|
|
|
|
Private Sub Кнопка75_Click()
Dim mdl As Module
DoCmd.OpenForm "форма2", acDesign, , , , acHidden
Set mdl = Modules("form_форма2")
mdl.AddFromString "Private Sub Поле0_Click()" & Chr(13) & Chr(10) & "docmd.close" & Chr(13) & Chr(10) & "end sub"
DoCmd.Close acForm, "форма2", acSaveYes
End Sub
|
вот так правильней | |
|
| |
|
16 Кб. |
|
| В Access это может выглядеть как-то так: => | |
|
| |
|
|
|
| йепп.... ваще!!!
да!! у нас стобой - Час - классы только начальные, церковно-приходской школы. | |
|
| |
|
|
|
|
| можно в примеры как пособие по созданию класса - кода минимум и можно понять че к чему.
да и изварщенцам разным тоже пригодится.
страшный сон программера:
" юзер из списка выбирает вид контрола '(хрен с ним, поворачиваясь на другой бок)
на форме его кнопками курсора размещает '(сделаем)
потом в окне пишет текст обработки событий '(подленькое хихиканье спящего)
по кнопке ОК заносится все в форму '(ну чё дальше, злорадствует во сне программер)
юзер, через свою форму, начинает работать с базой..."
|
- программер просыпается с трясущимися руками, плачет "мама", зовет бабушку, всхлипывает - программеру страшно.
Утром первым делом делается внеочередной бэкап БД, на юзеров смотрит с бОльшим подозрением и не доверием. | |
|
| |
|
|
|
|
| работа с классами в access требует особого мужества и чувства юмора :) | |
|
| |
|
|
|
|
В access я бы обошелся тремя строчками кода в форме без классов вообще.
Часу надо задачу порешать на VB6. | |
|
| |
|
|
|
|
Public Sub Initialize(ByVal frm As Form, ByVal i As Int16)
btn = New Button
frm.Controls.Add(btn)
With btn
.Name = "cmd" & i
.Text = "Кнопка " & i
.Left = 10
.Width = 60
.Height = 20
.Top = 20 + 20 * i
.Visible = True
End With
End Sub
|
Вопрос у мну про массив элементов управления(контролов) на форме
То есть как создать массив контролов?????
Тогда отпадёт видимо много вопросов
Потому как создав одну процедуру обработки можно будет узнать индекс элемента управл., вызвавшего это событие....
Вопрос - как создать массив контролов????(используя метод Add()) | |
|
| |
|
|
20 Кб. |
|
| Вот ведь как всё просто
Вот код и пример
В примере когда будут созданы лабели - по ним можно кликать
Option Explicit
Private Sub Command1_Click()
Static FormIndex
ReDim F(FormIndex) As New Form1
Load F(FormIndex)
F(FormIndex).Caption = "Форма ? " + Str$(FormIndex)
F(FormIndex).Show
FormIndex = FormIndex + 1
End Sub
Private Sub Command2_Click()
' если компонент, то создаешь массив _
нужных контролов, для этого выкладываешь _
на форме один контрол нужного типа, _
устанавливаешь его свойство Index, например к 0. _
Для добавления к массиву нового элемента:
Load Label1(1)
Label1(1).Left = 1000
Label1(1).Top = 100
Label1(1).Caption = "Первая"
Label1(1).Visible = True
Load Label1(2)
Label1(2).Left = 2000
Label1(2).Top = 100
Label1(2).Caption = "Вторая"
Label1(2).Visible = True
'загруженный контрол наследует _
все значения свойств, от последнего элемента _
в массиве кроме Visible, которое всегда устанавливается к False.
'для выгрузки соответственно:
'Unload Control(I)
End Sub
Private Sub Label1_Click(Index As Integer)
MsgBox Label1(Index).Caption
End Sub
| | |
|
| |
|
|
|
| Вот ведь как всё просто
Легко говорить, когда уже умеешь.
| |
|
| |