не работает Clear Events | |
---|---|
Михаил С |
Господа может кто поможет ?!
В главной программе стоит: oErr=CreateObject('Obr') && класс Obr перед этим создал, с методом ObrabError() On Error oErr.ObrabError(...) .... DO FORM form1 Read Events В методе ObrabError(...) объекта oErr после некоторых действий стоит Clear Events По всем описаниям вроде должна программа перейти к команде следующей за Read Events (где-то читал что это работает как Return to master) Ни фига не переходит!Проскакавает Clear Events и идёт дальше. Может я что-то не понимаю? |
Re: не работает Clear Events | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi Михаил С!
Например у тебя есть модальная форма, модальный диалог или иное "состояние ожидания" помимо READ EVENTS - которые и мешают. Если твоя цель корректно завершить работу - то надо явно позакрывать все формы (если используются фоксовые репорты то и их), все диалоги (MessageBox в т.ч.) тогда уж и завершится программа. ------------------ WBR, Igor |
Re: не работает Clear Events | |
---|---|
dushes Сообщений: 243 Откуда: Россия,Кострома Дата регистрации: 13.03.2002 |
Игорь уже предположил возможное местонахождение проблемы, я бы порекомендовал продебажить код...
В методе ObrabError на выражении Clear Events тоставь брякпоинт, и удостоверься, что выполнение кода все-такие доходит до заданной точки, описание твоей проблемы очень скудное, никто не может точнго знать, что у тебя в коде метода ObrabError , может быть у тебя там вообще Exception ;)/// ------------------ пиво я не пью...я его ем... |
Re: не работает Clear Events | |
---|---|
Михаил С |
Спасибо Игорь! К сожалению днём не могу долго быть в форуме.
Форма, в которой произошла ошибка, действительно модальная. Но, как тогда её закрыть (или удалить, а лучше всё приложение) не возвращаясь в код, который вызвал ошибку. Имя этой формы я вроде словил по _Screen.Forms(1).Name. For Dushes: метод ObrabError() просто протоколирует ошибку, а затем мне нужно выйти из приложения совсем, не возвращаясь в ошиб.код. Давая Clear Events я и предполагал этого добиться. Брякпойнт я как раз ставил и своими глазками видел, что после Clear Events ничего не происходит! |
Re: не работает Clear Events | |
---|---|
Михаил С |
Ура!Спасибо Centory в теме ...Завершить процесс.
Сделал как у него через ExitProcess перед этим сделав Close All Это то, что мне и надо! |
Re: не работает Clear Events | |
---|---|
dushes Сообщений: 243 Откуда: Россия,Кострома Дата регистрации: 13.03.2002 |
на все 100% соглашусь с Игорем, который ответил Centory в той же ветке, что использование ExitProcess не то чтобы не лучшее решение, оно вообще неприемлемое, имхо...использование функций winapi для стандартных вообщем-то ситуаций не есть хорошо, если не получается добиться решения стандартными способами, предусмотренными в самом языке - стоит подумать о пересмотре архитектуры твоего приложения...
------------------ пиво я не пью...я его ем... |
Re: не работает Clear Events | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi Михаил С!
Для затравки:
Кстати есть такой подход, когда просто ВООБЩЕ исключаются модальные формы из использования - через "блокировки" нужных форм/или даже контролов на них, перекрёстные ссылки (для того чтобы "вернуть результат кому нужно") и т.п. Из оставшихся проблем - MessageBox (можно прибить по KEYBOARD {Enter} PLAIN), окно PrintPreview... ------------------ WBR, Igor |
Re: не работает Clear Events | |
---|---|
Михаил С |
Большое Вам спасибо за время потраченное на меня!
Я, конечно, понимаю, что выход по ExitProcess-это очень жёстко. Но, если неисправимая ошибка уже случилась (естественно ошибки я определяю по их неустранимости, всё-таки не такой дурак как кажусь), то у User'a поздно уже пить боржоми когда почки отвалились.. Надо просто ошибку фиксировать и выкидывать из приложения, чтобы не вызывать ему потом скорую психиатр. помощь заставляя отвечать на всякие непонятные ему вопросы. |
Re: не работает Clear Events | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi Михаил С!
А ты даже "зафиксировать ошибку" скорее всего не сможешь Он как-то настолько жестоко убивает процесс, что несохранённые буфера курсоров отваливаются... Не удивлюсь если и открытые по FOPEN файлы тоже "отвалятся не сохранившись". ------------------ WBR, Igor |
© 2000-2024 Fox Club  |