:: Visual Foxpro, Foxpro for DOS
Как проверить условие и не закрыть форму
Коматозник
Уважаемые коллеги ! Как сделать так, чтобы при закрытии формы по крестику в правом верхнем углу и при потере формой фокуса ( форма немодальная ), проверялось некое условие и при его невыполнении форма не закрывалась ( не теряла фокус ) ? В какой метод формы загнать проверку условия при закрытии формы ? Заранее всем признателен.
Ratings: 0 negative/0 positive
Re: Как проверить условие и не закрыть форму
Naomi

Сообщений: 1796
Дата регистрации: 09.10.2003
if thisform.QueryUnload()
thisform.release()
endif
Ratings: 0 negative/0 positive
Re: Как проверить условие и не закрыть форму
Коматозник
Большое спасибо !
Ratings: 0 negative/0 positive
Re: Как проверить условие и не закрыть форму
Владимир Максимов

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
Вопрос добавлен в FAQ

Как перехватить нажатие на крестик в правом верхнем углу формы
Ratings: 0 negative/0 positive
Re: Как проверить условие и не закрыть форму
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi Коматозник!

Потерю фокуса формой предотвратить невозможно. Максимум что можно сделать, так это в каком-то контроле написать в обработчике события LostFocus.
IF условие_блокировки_выхода
NODEFAULT
This.SetFocus()
ENDIF
Или по иному фокус "вернуть". Будет дёргаться конечно...
И самое важное - это IMHO очень недружественно к пользователю. Блокируй возможность сделать Save введённым данным если они некорректны (пусть по закрытию будет диалог и если уж надо закрывать, а данные кривы - всё "пропадёт впустую"), но не делай подобного "зависания" программы! Это напрягает пользователя - тем более если выход из такого состояния будет им совершенно неочевиден. Уж лучше тогда использовать модальную форму!




------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 24 (Гостей: 24)

© 2000-2024 Fox Club 
Яндекс.Метрика