|
|
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
Пардон за каламбур 8). Но тем не менее, дело в следующем: Я программно создаю объект, в зависимости от многих факторов, события этого объекта будут иметь разное значение, у меня даже есть текстовая переменная содержащая в себе листинг кода на определенное событие, но привязать ее я не могу. Так как выразился я не понятно, покажу на примере: Программно создан объект picture1 Программно задаю его свойства picture1.top = 100 picture1.left = 200 и т.д. Теперь мне надо задать его события, например picture1.MouseDown Я могу сделать что то типа picture1.MouseDown = mgsbox("А!") но мне надо что бы там был не один оператор а что то типа: mgsbox("А!") mgsbox("АГА!") mgsbox("А МАСА! МАСА! МАСА!") mgsbox("А РИКА-ТИКА-ТОНГА!") Подскажите плиз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 17:37 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
А вы на каком языке пишете? Что-то я эту конструкцию понять не могу: picture1.MouseDown = mgsbox("А!") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 17:53 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
На VB6 указанную конструкцию я создал методом научного тыка, но она заработала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 17:55 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
Не может быть! Вот код которым "ловят" события динамически созданных контролов: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:02 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
В VB6 указанная конструкция что-то типа не работает. Весь код в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:03 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
Да Бог с ней, с конструкцией, она тут ни при чем, глюк это или фича разбираться не досуг. Подскажите как мне код в событие динамически создаваемого объекта запихнуть. Свойства то его я описал сам, события не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:08 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
WorobjoffНе может быть! Вот код которым "ловят" события динамически созданных контролов: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. А где здесь события? Я только свойства вижу. А Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:13 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
ALOTE[/src] это же не динамически задано, надо что бы в момент создания объекта имя которого не известно.Во-первых, имя объекта всегда известно. Во-вторых ссылку на объект можно повесить любой переменной. И если эта переменная объявлена WithEvents и ей определено событие, то установка ссылки этой переменной на объект называется "подписаться на события". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:18 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
Worobjoff ALOTE[/src] это же не динамически задано, надо что бы в момент создания объекта имя которого не известно.Во-первых, имя объекта всегда известно. Во-вторых ссылку на объект можно повесить любой переменной. И если эта переменная объявлена WithEvents и ей определено событие, то установка ссылки этой переменной на объект называется "подписаться на события". Отнюдь не всегда. До его создания имя не известно. Вы не поняли объект создается в процессе работы программы и написать "btnOK_Click()" я не могу, так как не знаю как будет называться этот объект. А он может называться btn1, btn2,... btnN. Сколько этих btn будет я не знаю. Я даже не знаю какие события будут происходить на тот же btn1_click, так как листинг формируется так же динамически в зависимости от других условий. Мне нужно что бы событие btn1_click и его код сформировалось динамически, вместе с объектом btn1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:26 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
Не получится. Сигнатура события не может быть динамической. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:37 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
ALOTE, а ты попробуй, прежде чем дискутировать, поэкспериментируй с кодом, что тебе привели. Представь на секунду, что собеседник вполне-таки тебя понимает, и не зря воздух сотрясает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:40 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
WorobjoffНе получится. Сигнатура события не может быть динамической. Но я ее изменять не собираюсь, она создается один раз для каждого объекта и остается неизменной до конца работы программы. Неужели нельзя программно (а не ручками) запихнуть в событие какой то код? Ведь визарды же существуют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:41 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
БенедиктALOTE, а ты попробуй, прежде чем дискутировать, поэкспериментируй с кодом, что тебе привели. Представь на секунду, что собеседник вполне-таки тебя понимает, и не зря воздух сотрясает. А ты представь на секунду, прежде чем лезть с советами, что этот код мне не нужен и вчитаться в вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:43 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
Попробуй создавать массив элементов и держать в памяти последний их индекс. Будет тогда имя предсказуемо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 18:57 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
ALOTE, Горяч, горяч. Значит, действительно не пробовал экспериментировать. Из кода, что тебе дали, всё что нужно, и вырастает. Это тебе кажется, что этот код не нужен. Сколько элементов управления, когда они созданы (в design- или в runtime), как называются, не имеет значения. Можно создать коллекцию таких элементов. Можно назначить обработчики событий - но эти обработчики событий уже должны существовать в виде методов классов. Если логика обработчика какая-то настраиваемая, то должен существовать какой-то интерпретатор этой логики (только ты пока знаешь, какой). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 19:01 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
ALOTE БенедиктALOTE, а ты попробуй, прежде чем дискутировать, поэкспериментируй с кодом, что тебе привели. Представь на секунду, что собеседник вполне-таки тебя понимает, и не зря воздух сотрясает. А ты представь на секунду, прежде чем лезть с советами, что этот код мне не нужен и вчитаться в вопрос. ALOTE, Бенедикт ветеран этого форума, и он действительно понимает, что говорит, и действительно тебе хочет помочь (хотя, уже видимо не хочет). Твой последний выпад в его адрес непозволителен, оскорбителен, необъясним и вообще, идет вразрез с правилами форума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 19:03 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
Ндя... молодежь пошла... А ведь раньше это характерно было лишь дряхлым старикам - ни кого не слушать, ни чего не читать и быть уверенным что та мысль которая пришла ему в голову здесь и сейчас - есть мысль гения до которой никто прежде не додумался. А свое непонимание людей вокруг, искренне принимать за глупость этих людей... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 20:45 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
VladConn, Спасибо. Помочь я хочу (как и все здесь участвующие) и, в меру своих сил, помогу, если человек сам себе захочет помочь, и будет вести себя в рамках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:12 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
VladConn ALOTE БенедиктALOTE, а ты попробуй, прежде чем дискутировать, поэкспериментируй с кодом, что тебе привели. Представь на секунду, что собеседник вполне-таки тебя понимает, и не зря воздух сотрясает. А ты представь на секунду, прежде чем лезть с советами, что этот код мне не нужен и вчитаться в вопрос. ALOTE, Бенедикт ветеран этого форума, и он действительно понимает, что говорит, и действительно тебе хочет помочь (хотя, уже видимо не хочет). Твой последний выпад в его адрес непозволителен, оскорбителен, необъясним и вообще, идет вразрез с правилами форума. Пардон, за резкость, и не уважение к сединам, но ответ был симетричен. Бенедикт первый взял указанный тон, и если это идет в разрез с правилами форума, то это его проблемы. Тем не менее обсуждаемый код действительно не имеет отношения, к моему вопросу, я смею Вас заверить, MSDN читать временами умею. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:23 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
VladConnПопробуй создавать массив элементов и держать в памяти последний их индекс. Будет тогда имя предсказуемо? Так можно, но как программно задать элементу код? Не пиши предварительно тысячу функций типа Public sub BTN1_Click() Бла-бла-бла. end sub Public sub BTN2_Click() Бла-бла-бла. end sub .... Public sub BTNN_Click() Бла-бла-бла. end sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:25 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
БенедиктALOTE, Горяч, горяч. Значит, действительно не пробовал экспериментировать. Из кода, что тебе дали, всё что нужно, и вырастает. Это тебе кажется, что этот код не нужен. Сколько элементов управления, когда они созданы (в design- или в runtime), как называются, не имеет значения. Можно создать коллекцию таких элементов. Можно назначить обработчики событий - но эти обработчики событий уже должны существовать в виде методов классов. Если логика обработчика какая-то настраиваемая, то должен существовать какой-то интерпретатор этой логики (только ты пока знаешь, какой). Да нет, просто адекватен, однако какое отношение имеет коллекция элементов к приведенному выше коду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:26 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
WorobjoffНдя... молодежь пошла... А ведь раньше это характерно было лишь дряхлым старикам - ни кого не слушать, ни чего не читать и быть уверенным что та мысль которая пришла ему в голову здесь и сейчас - есть мысль гения до которой никто прежде не додумался. А свое непонимание людей вокруг, искренне принимать за глупость этих людей... А старичье, я погляжу, как не слушало других, так и не слушает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:28 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
Господа, дабы не усиливать дискуссию, не переходить на личности и воспоминания о том, кто чьей маме имел счастье цветы под Луной дарить, уточню вопрос: Листинг события которое происходит в создаваемом элементе <b>динамичен</b>. То есть я не могу написать Dim WithEvents btnOK As CommandButton Private Sub btnOK_Click() MsgBox "Click" End Sub Потому что, события которые будут происходить по btnOK_Click() не известны. В первом элементе это может быть просто месаджбокс, во втором запуск рекордсета, в третьем и то и другое и еще много вкусного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:40 |
|
||
|
Программно запрограммировать событие
|
|||
|---|---|---|---|
|
#18+
видимо тебе дорога в JAVA, там все как ты хочешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:23 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=179&tid=2161832]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 318ms |

| 0 / 0 |
