Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Форма не убирается / 11 сообщений из 11, страница 1 из 1
03.04.2006, 14:21
    #33641187
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма не убирается
Что за необычный эффект я наблюдаю?
Работает метод FormSet'а. Пока все его формы скрыты. С помощью CREATEOBJECT создаю независимую форму и показываю SHOW(1). Она отрабатывает и дело доходит до THISFORM.RELEASE. Но форма с экрана не убирается, уничножается только ссылка на объект. Кнопки на форме можно нажимать еще и еще раз. Убирается она только по ESC. Почему так?
PS. VFP6
...
Рейтинг: 0 / 0
03.04.2006, 22:58
    #33642291
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма не убирается
Для эксперимента, попробуй сделать обычную модальную форму на базе твоего класса и запусти ее

DO FORM MyForm.scx

Кстати, какой Service Pack для VFP?
...
Рейтинг: 0 / 0
04.04.2006, 02:34
    #33642340
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма не убирается
Hi Игорь!

1) Воспроизводимый пример нарисуй, а то не очень понятно кто кого запускает,
какие настройки у формсета и формы и т.п.
2) Мой тебе совет - забей вообще на формсет - жизнь станет легче и приятнее
:)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
04.04.2006, 13:48
    #33643438
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма не убирается
ВладимирМДля эксперимента, попробуй сделать обычную модальную форму на базе твоего класса и запусти ее

Форма отрабатывает нормально.
Igor Korolyov 2) Мой тебе совет - забей вообще на формсет - жизнь станет легче и приятнее
:)
Так и сделал - сейчас переписываю этот кусок программы :^))
Мне кажется такое происходит из-за отсутствия объекта для перехода фокуса. FormSet, который породил форму, модальный, но свои формы не показывает. А на главную форму перейти нельзя из-за модальности FormSet'a.
PS VF6SP5
...
Рейтинг: 0 / 0
04.04.2006, 13:52
    #33643463
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма не убирается
смутные ощущения, что связано с модальностью формы, но точно не помню так как давно наборы форм не использую
Спросите ВладимираМ он расскажет. Даже странно что он про модальность ничего не сказал наверное не заметил ...
набор форм конечно не модальный?
...
Рейтинг: 0 / 0
04.04.2006, 14:06
    #33643521
Заботин А.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма не убирается
Попробуйте
1. Свойство .Name должно быть равно имени файла (без расширения).
2. Вместо THISFORM используйте <имя_формы>.release
...
Рейтинг: 0 / 0
05.04.2006, 02:04
    #33644943
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма не убирается
Hi Заботин!

> Свойство .Name должно быть равно имени файла (без расширения).

Зачем? Не вижу в этом никакого смысла...

> Вместо THISFORM используйте <имя_формы>.release

Т.е. вместо более точного и чёткого способа обращения к форме, использовать
менее точный, косвенный, который к тому-же в реальной программе с большой
долей вероятности не будет работать (из-за проблем с областью видимости той
самой неявно созданной переменной-ссылки <имя_формы>)...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
05.04.2006, 09:28
    #33645197
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма не убирается
Я кажется нашел свою ошибку. Она содержится в такой конструкции
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
MyForm=CREATEOBJECT("MyFormClass")
  WITH MyForm
    .Propriety1=Value1
    .Propriety1=Value2
    .Propriety1=Value3
    ...
    .SHOW( 1 )
  ENDWITH
* next command
...
Стоило вынести SHOW(1) за пределы WIDTH...ENDWITH, как все нормализовалось. Форма релизится нормально.
...
Рейтинг: 0 / 0
05.04.2006, 12:48
    #33645954
Заботин А.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма не убирается
Igor Korolyov
> Свойство .Name должно быть равно имени файла (без расширения).
Зачем? Не вижу в этом никакого смысла...
> Вместо THISFORM используйте <имя_формы>.release
Т.е. вместо более точного и чёткого способа обращения к форме, использовать
менее точный, косвенный, который к тому-же в реальной программе с большой
долей вероятности не будет работать (из-за проблем с областью видимости той
самой неявно созданной переменной-ссылки <имя_формы>)...

Posted via ActualForum NNTP Server 1.3
Игорь, я написал "попробуйте".
У меня ещё в VFP6 давным-давно были проблемы для случая имени файла, не равного .name. К сожалению, я не помню подробностей, и именно поэтому написал "попробуйте".
...
Рейтинг: 0 / 0
05.04.2006, 13:27
    #33646103
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма не убирается
Заботин А. Igor Korolyov
> Свойство .Name должно быть равно имени файла (без расширения).
Зачем? Не вижу в этом никакого смысла...
> Вместо THISFORM используйте <имя_формы>.release
Т.е. вместо более точного и чёткого способа обращения к форме, использовать
менее точный, косвенный, который к тому-же в реальной программе с большой
долей вероятности не будет работать (из-за проблем с областью видимости той
самой неявно созданной переменной-ссылки <имя_формы>)...

Posted via ActualForum NNTP Server 1.3
Игорь, я написал "попробуйте".
У меня ещё в VFP6 давным-давно были проблемы для случая имени файла, не равного .name. К сожалению, я не помню подробностей, и именно поэтому написал "попробуйте".
Навряд ли это верно. Может быть Вы в свойстве .Name использовали кириллицу? Тогда проблемы возможны ...
...
Рейтинг: 0 / 0
09.04.2006, 18:09
    #33654431
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форма не убирается
Hi Заботин А.!

> У меня ещё в VFP6 давным-давно были проблемы для случая имени файла, не
> равного .name. К сожалению, я не помню подробностей, и именно поэтому
> написал "попробуйте".

У меня со времён VFP6 имя файла формы и её-же свойство Name различны, и
никаких проблем не возникает - конечно если чётко помнить когда какое имя
использовать - скажем для запуска формы нужно использовать имя файла, а для
поиска уже работающей формы в коллекции _VFP.Forms - её Name...
А вот неявно создаваемой по DO FORM переменной (чьё имя соответствует имени
scx файла) я НИКОГДА не пользовался. Если возникала необходимость в такого
рода ссылке, то я ЯВНО определял переменную (с требуемой мне областью
видимости конечно!), и использовал DO FORM ... NAME ...

Что касается WITH ... ENDWITH - эта конструкция создаёт неявную "безымянную"
переменную (к которой собственно мы и обращаемся через <ничего тут нет>. ) -
причём следит за тем, чтобы эта переменная не уничтожилась до завершения
блока WITH.
Эта "переменная" кстати имеет особую область видимости - скажем если
начинается "вложенный" блок WITH - то переменная "прячется" - примерно как
по директиве private в вызванной процедуре - т.е. по завершении вложенного
блока WITH (как и по возврату из процедуры для private переменной)
переменная "восстанавливается". Также она подобно private переменной видна в
процедурах, вызываемых изнутри блока WITH (что служит иногда причиной трудно
обнаруживаемых логических ошибок).

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Форма не убирается / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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