Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
Здравстуйте всем! Я никак не могу понять поведение приложения при следующей ситуации. Есть форма. Запускаю метод формы. В методе создаю объекты формы и делаю видимой кнопку на форме. После отработки метода объекты удаляю, а кнопку прячу. И приложение повисает (загрузка проца 99%). Если трассирую эти шаги, то все нормально - приложение работает дальше как положено! Что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 12:39 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
Кузнецов ИгорьЧто я делаю не так? Не приводишь здесь код метода... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 14:21 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
понятия не имею но если вернется скажите что мы его все здесь очень ждем согласен с редриком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 15:20 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
Значит, по крайней мере, схема моих действий явных ошибок пока не имеет. Попробую привести важные части кода. Цепочка начинается от выбора пункта меню в форме верхнего уровня. Команда: Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Почему после второго нажатия кнопки объекты не удалились, а само приложение то ли зависло, то ли зациклилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 15:57 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
??? DO CASE CASE THISFORM.COMMAND2.CAPTION = "Ввод" * выполняется то, что мне надо THISFORM.COMMAND2.CAPTION="Готово" CASE INLIST(THISFORM.COMMAND2.CAPTION,"Готово","Выйти") * этот участок привожу полностью messagebox('Абдула я здесь!') THISFORM.LowStatus.Panels.Item(1).Text= THISFORM.c_oldstatus THISFORM.CONTAINER1.LABEL1.CAPTION= THISFORM.c_oldmode THISFORM.RemoveObject("edit1") THISFORM.RemoveObject("edit2") THISFORM.COMMAND2.CAPTION= "Ввод" THISFORM.COMMAND2.VISIBLE= .F. THISFORM.TIMER1.INTERVAL=1000*VAL(BILLING_UPDATE_TIME) THISFORM.REFRESH ENDCASE и подвигать сообщение что-бы узнать где виснет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 16:09 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
Что у тебя висит на таймере? Ты меняешь интревал срабатывания таймера, а включение/отключение не надо отрабатывать? PS: лично я предпочитаю не создавать/удалять объекты, а активизировать нужную страницу PageFrame. Т.е. на форму кладется PageFrame со свойством Tabs=.F. и по нужному событию открывается нужная страница (ActivePage = 1). Так проще модифицировать дизайн формы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 16:15 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
Таймер управляется нормально. При входе в процедуру enter_again я останавливаю этот таймер, а по окончании - вновь запускаю. Отработка событий таймера не мешает этому методу. Совет в виде messagebox('Абдула я здесь!') я проделывал с использованием set step on. Работает метод правильно, если окончание метода написать так: Код: plaintext 1. 2. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 16:27 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
"Абдула, я здесь!" тоже выскакивает, а потом программа все же виснет, зараза! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 16:34 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
а так выскакивает может всё таки таймер DO CASE CASE THISFORM.COMMAND2.CAPTION = "Ввод" * выполняется то, что мне надо THISFORM.COMMAND2.CAPTION="Готово" CASE INLIST(THISFORM.COMMAND2.CAPTION,"Готово","Выйти") * этот участок привожу полностью THISFORM.LowStatus.Panels.Item(1).Text= THISFORM.c_oldstatus THISFORM.CONTAINER1.LABEL1.CAPTION= THISFORM.c_oldmode THISFORM.RemoveObject("edit1") THISFORM.RemoveObject("edit2") THISFORM.COMMAND2.CAPTION= "Ввод" THISFORM.COMMAND2.VISIBLE= .F. THISFORM.TIMER1.INTERVAL=1000*VAL(BILLING_UPDATE_TIME) THISFORM.REFRESH messagebox('Абдула я здесь!') ENDCASE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 16:37 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
Да, так тоже выскакивает. Объекты удаляются, кнопка скрывается. И программа виснет. Ответьте мне - куда переводится фокус после этого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 16:41 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
на мой взляд согласно таб последовательности или не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 16:48 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
1. Убери фокус руками на какой-нибудь контрол. 2. Не вызывай таймер, посмотри, что получиться 3. Посмотри м.б. где-то используется конструкция WITH..ENDWITH ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 16:51 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
А фокус можно перевести на контрол у которого VISIBLE=.F.? А то у меня видимых не осталось. Менюшка разве что! Таймер не вызываю - он заранее остановлен. Конструкция WITH..ENDWITH используется только на этапе подготовки объектов. В событии Click её нет. Прошу прощения - ухожу домой. На форуме появлюсь завтра после 8-00. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:01 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
ВладимирМЧто у тебя висит на таймере? А этот вопрос-то остался без ответа! Ты говоришь, что "таймер управляется нормально"... А делает он что ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:04 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
А фокус можно перевести на контрол у которого VISIBLE=.F.? по таб последовательности с учетом видимости ты же не можешь поставить фокус на лабел например? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 17:12 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
Hi Игорь! Сделай объект куда МОЖЕТ уйти фокус - например Textbox фонового цвета/мелкого размера/за пределами видимой части формы. Возможно что именно из-за отсутствия контрола куда может уйти фокус у тебя всё и висит... Это я так понял AsTopLevel форма? Меню на ней-же? Других форм в это время нету? И ещё - указывай pls версию фокса (в т.ч. и SP) Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 03:02 |
|
||
|
Куда уходит фокус?
|
|||
|---|---|---|---|
|
#18+
Спасибо, Igor Korolyov , ваш совет помог. Действительно, дополнительный (и единственный со свойством VISIBLE=.T.) контрол взял на себя фокус и программа отработала этот участок нормально. Чтобы не оставлять повисшие вопросы, все же дам на них ответы. На таймере висит очень большой кусок программы, который занимается пополнением базы. Уверяю вас, что при проверке данной трудности этот участок кода никак не задействуется. Igor Korolyov Это я так понял AsTopLevel форма? Меню на ней-же? Других форм в это время нету? Да все правильно. Фокс- VFP 6.0 + SP5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2005, 08:28 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32959171&tid=1594646]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 358ms |

| 0 / 0 |
