powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема при использовании метода Show для формы
5 сообщений из 5, страница 1 из 1
Проблема при использовании метода Show для формы
    #32404014
Господа! Вопрос по VFP8SP1.
Имеется класс формы, которая в одном случае должна запускаться как модальная, в другом - как немодальная. На форме есть кноп, вызывающий метод Release.
Код в методе вызывающей форме (As Top Level):

this.o_ChildForm = CreateObject('forn','MyClasses')
После установки параметров:
o_ChildForm.Show(2) && сделать как немодальную
o_ChildForm.Show(1) && сделать как модальную

В случае немодального запуска форма работает как немодальная, и кноп нормально закрывает форму. А вот в случае модального - событие Release при нажатии кнопа происходит, а событие Unload - нет, и форма не выгружается. И в этом случае форму можно закрыть только по Alt+F4 или кнопке стандартного закрытия.
Проверял (и пытался установить) значение WindowType. При запуске формы как модальная свойство всё равно равно 0 (как немодальная). В то же время форма работает как модальная.
Пытался делать в вызывающей форме:

o_ChildForm = null

и даже использовал глобальную переменную вместо this.o_ChildForm. В последнем варианте в Click'е кнопа писал:

repease o_ChildForn

- не помогает.

Может, кто нибудь сталкивался с этим? Что я делаю неправильно?
...
Рейтинг: 0 / 0
Проблема при использовании метода Show для формы
    #32404214
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты даешь команду Show(2), то дочерняя форма открывается, но выполнение метода, в котором была дана эта команда не останавливается. Т.е. метод отрабатывает до конца.

Если же даешь команду Show(1), то на этой команде происходит остановка. И метод до конца выполнен не будет, пока на дочернюю форму не будет дана команда Hide() или дочерняя форма не будет удалена. Как следствие, родительская форма не может быть удалена, поскольку не завершено выполнение одного из ее методов.
...
Рейтинг: 0 / 0
Проблема при использовании метода Show для формы
    #32406021
Владимир, спасибо. Но ты не прав. Я нашёл глюк - он был совсем в другом месте. Всё равно спасибо.
...
Рейтинг: 0 / 0
Проблема при использовании метода Show для формы
    #32406352
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Владимир, спасибо. Но ты не прав
Да нет, Владимир как обычно прав:) Если ваша ошибка в другом месте это не отменяет правильности описания отличия выполнения кода для модальной и немодальной форм:)
...
Рейтинг: 0 / 0
Проблема при использовании метода Show для формы
    #32406753
Господа, не буду спорить. Глючит Wind, и глючит Fox.
Дело в том, что форма первоначально была создана в Конструкторе форм. в неё было вставлено много свойств и методов, и когда возникла проблема, то я использовал (от лени) метод SaveAsClass для размещения её в библиотеке. Вот тогда и начались глюки. В конце-концов я создал эту форму в Конструкторе классов (с нуля) - и всё заработало. Вот так.
А насчёт использования рекомендуемого Владимиром метода Hide() - так он, если не используется в наборе форм, ничего не даёт - форма остаётся в памяти, и нужно не забыть её потом выкинуть оттуда (thisformset.release увы, в данном случае нет...). Ну и насчёт подвисания метода Show - как вы, вероятно, догадываетесь, я использую _VFP.AutoYield=.F. - поэтому это сразу же было бы заметно. Тем не менее форма нормально выгружалась при нажатии на стандартную кнопку выхода - чего при зависании Show просто бы не происходило.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема при использовании метода Show для формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]