|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
При перехвате события к примеру кнопки ButtonOK необходимо чтобы сначала выполнился код типа DODEFAULT, а затем уже выполнялись наши чёрные делишки, при это после выхода из процеруры перехватчика не выполнялся обработчик события. Подскажите гуру FoxPro каким образом это можно осуществить? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2008, 11:30 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
Вам необходимо просто написать Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2008, 11:41 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
2SashaM просьба - нарисуйте маленький пример и объясните, что Вы желаете перехватить и выполнить ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2008, 12:18 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
У меня работает другая программа. Я не знаю алгоритм работы, просто могу привязаться к event-у Click кнопки ОК. Необходимо, чтобы данная программа отработала, а затем я выполнил свои действия. Конкретно есть инвентарные карточки и история по ним. При выполнении действия внутреннее перемешение из карточки в историю попадает местоположение. Так вот нужно чтобы после нажатия кнопки ОК программа перенесла неизменённые данные в историю, а я затем меняю местоположение в карточке, в зависимости от нового мол-а. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2008, 03:16 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
авторУ меня работает другая программа сплошные ребусы. если есть форма, на ней есть контролы, есть исходники, что может помешать просто изменить метод клик кнопки у формы? Вы можете добавить свой алгоритм в существующий и выполнять его при опред.условиях (обвязать условиями, при которых он начнет исполняться). Зачем биндить событие я пока не понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2008, 10:10 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
В том то и дело исходников нет, это система написанная другими программистами. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2008, 16:07 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
Т.к. приходят обновления, а заставить писать такие мелочи, правда рутинные для бухгалтеров, им не с руки. По этому пожалуйста не предлагаите ReFox. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2008, 16:11 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
авторВ том то и дело исходников нет все, я тогда сдаюсь что Вы собрались тогда биндить? событие в отдельном собранном фоксовом приложении? а Ваш код где должен выполниться? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2008, 16:23 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
Вешаюсь на инициализацию формы ( код написан другими людми, исходников нет. Суть данного дополнения предоставить возможность перехватывать события приложения ), а затем вешаюсь на кнопку, но прерываение к нам приходит первым. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 03:11 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
SashaMВешаюсь на инициализацию формы ( код написан другими людми, исходников нет. Суть данного дополнения предоставить возможность перехватывать события приложения ), а затем вешаюсь на кнопку, но прерываение к нам приходит первым. Оспидя, да покажите, наконец, как вы вешаетесь на кнопку. Кусочек кода хотя бы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 05:46 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
автор Define Class AddOn_Inv_Move As Custom PROCEDURE ButtonClick ... EndProc * Принимает сообщения PROCEDURE ReceiveMessage LParam oSender, cMessage, mData IF cMessage = "Init" THEN BindEvent( oSender.Tbtndialog1.ButtonOK, "Click", This, "ButtonClick", 0 ) ENDIF ENDPROC EndDefine Сам код перехвата событий из очереди показать не могу, т.к. код защищён. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 08:15 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
Давайте немного проясним. У вас нет исходников на конкретные формы и они приходят как обновления. Но у вас есть некий *.app/*.exe, который вызывает на выполнение внешнюю по отношению к нему форму (т.е. файл *.frx лежит на диске рядом с вашей прогой)? Таким образом, вы можете биндить события, но поменять код самой кнопки не можете. Я правильно понял вашу проблему? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 08:55 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
вот пример, который Вам даст возможность понять мех-м подписки на события в фокспро о тех "хвостах", которые Вам оставили для масштабирования можно судить только посмотрев на Ваше приложение (лучше-бы Вам сделали настройку скриптов для выполнения) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 09:54 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
SashaMавтор Define Class AddOn_Inv_Move As Custom PROCEDURE ButtonClick ... EndProc * Принимает сообщения PROCEDURE ReceiveMessage LParam oSender, cMessage, mData IF cMessage = "Init" THEN BindEvent( oSender.Tbtndialog1.ButtonOK, "Click", This, "ButtonClick", 0 ) ENDIF ENDPROC EndDefine Сам код перехвата событий из очереди показать не могу, т.к. код защищён. А если попробовать BindEvent( oSender.Tbtndialog1.ButtonOK, "Click", This, "ButtonClick", 1 ) или BindEvent( oSender.Tbtndialog1.ButtonOK, "Click", This, "ButtonClick", 3 ) Будет работать? 1 - Call event code before delegate code. 3 - Call event code before delegate code. Do not trigger event (call delegate code) when simple method calls occur. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 09:57 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
Немножко не так. Есть дополнительный app ( назовём addins ) который при старте система запускает. Вот этот addins выполняет мой app, в котором я описываю куда можно привязаться. Я знаю что в системе есть форма с определённым именем. Я указываю addins-у чтобы он мой клас связал с Init формы. При старте этой формы срабатывает мой обработчик, в котором я сажусь на созданную кнопку в частности на событие Click. Естественно после нажатия кнопки я первым получаю управление. С помошью AEVENTS() найдя кнопку я могу вызвать метод Click, который естественно вызовет опять таки мой обработчик. Нужно скорее всего убрать свой обработчик из формы, но вот что делать с тем, что когда мой обработчик закончит действие, естественно вызывается старый обработчик! Вопрос собственно в том, как недопустить этого. Если подскажете как убить мой обработчик буду так же благодарен, т.к. с Event-ами я ещё не разбирался особо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 10:11 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
Kruchinin PahanА если попробовать BindEvent( oSender.Tbtndialog1.ButtonOK, "Click", This, "ButtonClick", 1 ) или BindEvent( oSender.Tbtndialog1.ButtonOK, "Click", This, "ButtonClick", 3 ) Будет работать? 1 - Call event code before delegate code. 3 - Call event code before delegate code. Do not trigger event (call delegate code) when simple method calls occur. Нет, не работает ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 10:12 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
Спасибо попробую bindevent(, , , , 1). Похоже я затупил читая документацию на engl ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 10:18 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
bindevent(, , , , 1) почему-то не получается ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 10:26 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
2SashaM Вы мой пример посмотрели? там показано как подписаться до, после и отписаться ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 10:40 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 10:45 |
|
Как вызвать перехватываемое событие
|
|||
---|---|---|---|
#18+
Небольшое пояснение смысла 4 параметра в BindEvents(). С первыми двумя значениями все просто: 1 - Сначала выполняется наш метод-делегат, а потом "штатный" метод-источник 2 - Наоборот. Сначала выполняется "штатный" метод-источник, а потом уже наш метод-делегат А вот смысл значений 3 и 4 требует некоторого пояснения. Интерфейс с пользователем пораждает ряд событий. Например, событие нажатия кнопки. Это событие, в свою очередь, вызывает срабатывание определенного, связанного с этим событием программного кода. В данном случае, того кода, который написан в методе Click() кнопки. Т.е. последовательность такая: 1) Событие пользователя (нажал на кнопку) 2) Срабатывание метода Click() Однако метод Click(), разумеется, можно вызвать и без пользователя. Напрямую. Как обычный программный метод прямой командой. ThisForm.CommandButton.Click() Так вот, первые два значения 4 параметра BindEvents() не делают различия между способами запуска метода Click(). Не важно, был ли он запущен пользователем после нажатия кнопки или же он был запущен программно, без собственно нажатия кнопки. А вот 3 и 4 значение указывают на то, что метод-делегат надо запускать только и исключительно в том случае, если метод Click() сработал в результате события пользователя (пользователь нажал на кнопку). Если же метод Click() был вызван программно, то метод-делегат не запускается. Следует также понимать, что BindEvents() не может предотвратить (запретить) выполнение исходного события. Собственно метода Click(). Он определят всего-лишь как запускать наш метод-делегат по отношению к этому исходному событию. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2008, 14:09 |
|
|
start [/forum/search_topic.php?author=ilya_sh&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 450ms |
total: | 637ms |
0 / 0 |