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

DO FORM MyForm.scx

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

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

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

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

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

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

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

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

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

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

Posted via ActualForum NNTP Server 1.3
Игорь, я написал "попробуйте".
У меня ещё в VFP6 давным-давно были проблемы для случая имени файла, не равного .name. К сожалению, я не помню подробностей, и именно поэтому написал "попробуйте".
Навряд ли это верно. Может быть Вы в свойстве .Name использовали кириллицу? Тогда проблемы возможны ...
...
Рейтинг: 0 / 0
Форма не убирается
    #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
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Форма не убирается
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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