Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема при использовании метода Show для формы / 5 сообщений из 5, страница 1 из 1
10.02.2004, 12:39
    #32404014
Проблема при использовании метода Show для формы
Господа! Вопрос по 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
10.02.2004, 14:24
    #32404214
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при использовании метода Show для формы
Если ты даешь команду Show(2), то дочерняя форма открывается, но выполнение метода, в котором была дана эта команда не останавливается. Т.е. метод отрабатывает до конца.

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


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