powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Программно запрограммировать событие
25 сообщений из 46, страница 1 из 2
Программно запрограммировать событие
    #34919815
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон за каламбур 8). Но тем не менее, дело в следующем:
Я программно создаю объект, в зависимости от многих факторов, события этого объекта будут иметь разное значение, у меня даже есть текстовая переменная содержащая в себе листинг кода на определенное событие, но привязать ее я не могу.
Так как выразился я не понятно, покажу на примере:
Программно создан объект picture1
Программно задаю его свойства
picture1.top = 100
picture1.left = 200
и т.д.
Теперь мне надо задать его события, например
picture1.MouseDown
Я могу сделать что то типа
picture1.MouseDown = mgsbox("А!")
но мне надо что бы там был не один оператор а что то типа:
mgsbox("А!")
mgsbox("АГА!")
mgsbox("А МАСА! МАСА! МАСА!")
mgsbox("А РИКА-ТИКА-ТОНГА!")
Подскажите плиз
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34919871
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы на каком языке пишете?
Что-то я эту конструкцию понять не могу:
picture1.MouseDown = mgsbox("А!")
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34919876
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На VB6 указанную конструкцию я создал методом научного тыка, но она заработала.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34919908
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не может быть!
Вот код которым "ловят" события динамически созданных контролов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim WithEvents btnOK As CommandButton

Private Sub btnOK_Click()
   MsgBox "Click"
End Sub

Private Sub Form_Load()
   Set btnOK = Me.Controls.Add("VB.CommandButton", "btnOK")
   btnOK.Move  30 ,  30 ,  1300 ,  345 
   btnOK.Visible = True
   btnOK.Caption = "Click Me"
End Sub
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34919909
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VB6 указанная конструкция что-то типа не работает.
Весь код в студию.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34919930
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да Бог с ней, с конструкцией, она тут ни при чем, глюк это или фича разбираться не досуг. Подскажите как мне код в событие динамически создаваемого объекта запихнуть. Свойства то его я описал сам, события не могу.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34919950
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffНе может быть!
Вот код которым "ловят" события динамически созданных контролов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim WithEvents btnOK As CommandButton

Private Sub btnOK_Click()
   MsgBox "Click"
End Sub

Private Sub Form_Load()
   Set btnOK = Me.Controls.Add("VB.CommandButton", "btnOK")
   btnOK.Move  30 ,  30 ,  1300 ,  345 
   btnOK.Visible = True
   btnOK.Caption = "Click Me"
End Sub

А где здесь события? Я только свойства вижу.
А
Код: plaintext
1.
2.
3.
Private Sub btnOK_Click()
   MsgBox "Click"
End Sub
это же не динамически задано, надо что бы в момент создания объекта имя которого не известно.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34919979
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTE[/src] это же не динамически задано, надо что бы в момент создания объекта имя которого не известно.Во-первых, имя объекта всегда известно.
Во-вторых ссылку на объект можно повесить любой переменной. И если эта переменная объявлена WithEvents и ей определено событие, то установка ссылки этой переменной на объект называется "подписаться на события".
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34920015
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoff ALOTE[/src] это же не динамически задано, надо что бы в момент создания объекта имя которого не известно.Во-первых, имя объекта всегда известно.
Во-вторых ссылку на объект можно повесить любой переменной. И если эта переменная объявлена WithEvents и ей определено событие, то установка ссылки этой переменной на объект называется "подписаться на события".
Отнюдь не всегда. До его создания имя не известно.
Вы не поняли объект создается в процессе работы программы и написать "btnOK_Click()" я не могу, так как не знаю как будет называться этот объект. А он может называться btn1, btn2,... btnN. Сколько этих btn будет я не знаю. Я даже не знаю какие события будут происходить на тот же btn1_click, так как листинг формируется так же динамически в зависимости от других условий. Мне нужно что бы событие btn1_click и его код сформировалось динамически, вместе с объектом btn1.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34920054
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получится. Сигнатура события не может быть динамической.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34920068
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTE,
а ты попробуй, прежде чем дискутировать, поэкспериментируй с кодом, что тебе привели. Представь на секунду, что собеседник вполне-таки тебя понимает, и не зря воздух сотрясает.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34920071
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffНе получится. Сигнатура события не может быть динамической.
Но я ее изменять не собираюсь, она создается один раз для каждого объекта и остается неизменной до конца работы программы. Неужели нельзя программно (а не ручками) запихнуть в событие какой то код? Ведь визарды же существуют.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34920076
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктALOTE,
а ты попробуй, прежде чем дискутировать, поэкспериментируй с кодом, что тебе привели. Представь на секунду, что собеседник вполне-таки тебя понимает, и не зря воздух сотрясает.
А ты представь на секунду, прежде чем лезть с советами, что этот код мне не нужен и вчитаться в вопрос.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34920115
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй создавать массив элементов и держать в памяти последний их индекс. Будет тогда имя предсказуемо?
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34920125
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTE,
Горяч, горяч. Значит, действительно не пробовал экспериментировать.

Из кода, что тебе дали, всё что нужно, и вырастает. Это тебе кажется, что этот код не нужен. Сколько элементов управления, когда они созданы (в design- или в runtime), как называются, не имеет значения. Можно создать коллекцию таких элементов. Можно назначить обработчики событий - но эти обработчики событий уже должны существовать в виде методов классов. Если логика обработчика какая-то настраиваемая, то должен существовать какой-то интерпретатор этой логики (только ты пока знаешь, какой).
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34920133
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTE БенедиктALOTE,
а ты попробуй, прежде чем дискутировать, поэкспериментируй с кодом, что тебе привели. Представь на секунду, что собеседник вполне-таки тебя понимает, и не зря воздух сотрясает.
А ты представь на секунду, прежде чем лезть с советами, что этот код мне не нужен и вчитаться в вопрос.

ALOTE, Бенедикт ветеран этого форума, и он действительно понимает, что говорит, и действительно тебе хочет помочь (хотя, уже видимо не хочет).

Твой последний выпад в его адрес непозволителен, оскорбителен, необъясним и вообще, идет вразрез с правилами форума.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34920281
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ндя... молодежь пошла...
А ведь раньше это характерно было лишь дряхлым старикам - ни кого не слушать, ни чего не читать и быть уверенным что та мысль которая пришла ему в голову здесь и сейчас - есть мысль гения до которой никто прежде не додумался. А свое непонимание людей вокруг, искренне принимать за глупость этих людей...
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34921159
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn,
Спасибо. Помочь я хочу (как и все здесь участвующие) и, в меру своих сил, помогу, если человек сам себе захочет помочь, и будет вести себя в рамках.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34921207
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn ALOTE БенедиктALOTE,
а ты попробуй, прежде чем дискутировать, поэкспериментируй с кодом, что тебе привели. Представь на секунду, что собеседник вполне-таки тебя понимает, и не зря воздух сотрясает.
А ты представь на секунду, прежде чем лезть с советами, что этот код мне не нужен и вчитаться в вопрос.

ALOTE, Бенедикт ветеран этого форума, и он действительно понимает, что говорит, и действительно тебе хочет помочь (хотя, уже видимо не хочет).

Твой последний выпад в его адрес непозволителен, оскорбителен, необъясним и вообще, идет вразрез с правилами форума.
Пардон, за резкость, и не уважение к сединам, но ответ был симетричен. Бенедикт первый взял указанный тон, и если это идет в разрез с правилами форума, то это его проблемы. Тем не менее обсуждаемый код действительно не имеет отношения, к моему вопросу, я смею Вас заверить, MSDN читать временами умею.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34921220
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConnПопробуй создавать массив элементов и держать в памяти последний их индекс. Будет тогда имя предсказуемо?
Так можно, но как программно задать элементу код? Не пиши предварительно тысячу функций типа
Public sub BTN1_Click()
Бла-бла-бла.
end sub

Public sub BTN2_Click()
Бла-бла-бла.
end sub
....
Public sub BTNN_Click()
Бла-бла-бла.
end sub
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34921225
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктALOTE,
Горяч, горяч. Значит, действительно не пробовал экспериментировать.

Из кода, что тебе дали, всё что нужно, и вырастает. Это тебе кажется, что этот код не нужен. Сколько элементов управления, когда они созданы (в design- или в runtime), как называются, не имеет значения. Можно создать коллекцию таких элементов. Можно назначить обработчики событий - но эти обработчики событий уже должны существовать в виде методов классов. Если логика обработчика какая-то настраиваемая, то должен существовать какой-то интерпретатор этой логики (только ты пока знаешь, какой).
Да нет, просто адекватен, однако какое отношение имеет коллекция элементов к приведенному выше коду?
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34921236
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffНдя... молодежь пошла...
А ведь раньше это характерно было лишь дряхлым старикам - ни кого не слушать, ни чего не читать и быть уверенным что та мысль которая пришла ему в голову здесь и сейчас - есть мысль гения до которой никто прежде не додумался. А свое непонимание людей вокруг, искренне принимать за глупость этих людей...
А старичье, я погляжу, как не слушало других, так и не слушает.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34921291
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, дабы не усиливать дискуссию, не переходить на личности и воспоминания о том, кто чьей маме имел счастье цветы под Луной дарить, уточню вопрос:
Листинг события которое происходит в создаваемом элементе <b>динамичен</b>.
То есть я не могу написать
Dim WithEvents btnOK As CommandButton

Private Sub btnOK_Click()
MsgBox "Click"
End Sub

Потому что, события которые будут происходить по btnOK_Click() не известны. В первом элементе это может быть просто месаджбокс, во втором запуск рекордсета, в третьем и то и другое и еще много вкусного.
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34921509
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видимо тебе дорога в JAVA, там все как ты хочешь
...
Рейтинг: 0 / 0
Программно запрограммировать событие
    #34921656
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneвидимо тебе дорога в JAVA, там все как ты хочешь
У меня нет под рукой компилятора JAVA 8(
...
Рейтинг: 0 / 0
25 сообщений из 46, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Программно запрограммировать событие
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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