:: Visual Foxpro, Foxpro for DOS
не закрывается окно FORM при ошибке
danton1973
Автор

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
собственно
SET CLASSLIB TO pbar.VCX
m.goPB=CREATEOBJECT("PBar")
goPB.VISIBLE=.T.
goPB.UPDATE(0,"заголовок")
класс на основе FORM
AlwaysOnTop=.T.
AutoCenter=.T.
Closable=.T.
WindowState=0
WindowType=0
в него отправляю сообщения и % выполнения.
при событии ON ERROR

в том числе:
DO WHILE _SCREEN.FORMCOUNT>0
_SCREEN.FORMS[_SCREEN.FORMCOUNT].CLOSABLE=.T.
_SCREEN.FORMS[_SCREEN.FORMCOUNT].LockScreen=.F.
_SCREEN.FORMS[_SCREEN.FORMCOUNT].QueryUnload
_SCREEN.FORMS[_SCREEN.FORMCOUNT].HIDE
_SCREEN.FORMS[_SCREEN.FORMCOUNT].RELEASE
ENDDO
И вот здесь окно не удаляется - цикл по кругу.
Если делаю всё тоже самое из командного окна VFP, то всё нормально закрывается...
Ratings: 0 negative/0 positive
Re: не закрывается окно FORM при ошибке
pasha_usue

Сообщений: 3650
Откуда: Е-бург
Дата регистрации: 06.10.2006
Выполнение кода застряло в вашем бесконечном цикле. И никак не может передать управление коду убиваемой формы. А пока не выполнится код убиваемой формы, форма не умрёт.
Переложите коллекцию Forms в массив. А потом обычным циклом FOR убейте всё, что в этом массиве.

Шедеврально, конечно.
danton1973
DO WHILE _SCREEN.FORMCOUNT>0
_SCREEN.FORMS[_SCREEN.FORMCOUNT].CLOSABLE=.T.
_SCREEN.FORMS[_SCREEN.FORMCOUNT].LockScreen=.F.
_SCREEN.FORMS[_SCREEN.FORMCOUNT].QueryUnload
_SCREEN.FORMS[_SCREEN.FORMCOUNT].HIDE
_SCREEN.FORMS[_SCREEN.FORMCOUNT].RELEASE
ENDDO
Ratings: 0 negative/1 positive


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

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

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