powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / вопросик по формам
9 сообщений из 9, страница 1 из 1
вопросик по формам
    #32999625
vital_345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть главная форма form_start
На ней две кнопки. Нажимая на одну, проверяем опр-е условия таблицы бд и переходим на другую форму, где отобр-ся записи, не попадающие под это условие.
переход такой

form_start.visible=0
do form form_p
read events

Сво-ва формы form_p
Desktop = .T.
ShowWindow =2
WindowType=0

Метод form_p.Unload такой:
clear events
form_start.visible=1

Точно так же сделано для второй кнопки и формы form_l

Вопрос в следующем. Когда я нажимаю на одну из кнопок, отобр-ся форма соот-я ей, смотрим на нее, закрываем. Все работает. После этого я нажимаю на 2-ю кнопку и когда закрываю второе окно, выдается ошибка

Object Form_Start not found
По дебаггеру ошибка соот-т методу unload строке form_start.visible=1

Почему в первый раз все работает, а во второй нет?
...
Рейтинг: 0 / 0
вопросик по формам
    #32999768
Дмитрий Петров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вторая форма в Unload не знает что такое form_start.

Сделайте ее "доступной". Передать объект формы параметром,
Publ переменной или еще ...

PS Такое обращение с Read Event до добра не доведет :)
...
Рейтинг: 0 / 0
вопросик по формам
    #32999769
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
слишком уж много реад эвентов это как минимум а там может еще чего есть
...
Рейтинг: 0 / 0
вопросик по формам
    #32999945
vital_345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий ПетровВторая форма в Unload не знает что такое form_start.

Сделайте ее "доступной". Передать объект формы параметром,
Publ переменной или еще ...

PS Такое обращение с Read Event до добра не доведет :)
а что здесь не так с read events?
и как лучше сделать?
...
Рейтинг: 0 / 0
вопросик по формам
    #32999988
vital_345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий ПетровВторая форма в Unload не знает что такое form_start.

Сделайте ее "доступной". Передать объект формы параметром,
Publ переменной или еще ...

PS Такое обращение с Read Event до добра не доведет :)
а что здесь не так с read events?
и как лучше сделать?
...
Рейтинг: 0 / 0
вопросик по формам
    #33000021
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если всё что вам нужно это две связные формы может имеет смысл задуматься о формсете тода многие проблемы отпадут
ну или почитать чё нить а то тут объяснять долго
http://www.caws.atnet.ru/vfox/vfoxpro2.html
http://www.foxclub.ru/articles/
...
Рейтинг: 0 / 0
вопросик по формам
    #33000101
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vital_345
а что здесь не так с read events?
и как лучше сделать?
По "правилам хорошего тона" (см.статьи Владимира Максимова) требуется ставить read events в начале работы программы (один раз) и clear events во всех точках программы, где она физически заканчивает свою работу (желательно тоже один раз).

Read events (приблизительно, конечно) отвечает за контроль обработки сообщений Windows программе написанной на FoxPro. А когда Вы пишете clear events соответствующий обработчик начинает игнорировать сообщения Windows.

Если говорить более понятными терминами, то можно представить read events как цикл "do while .T. - enddo", а clear events - как "exit".

Так вот, Вашу программу при таких допущениях можно представить упрощенно в таком виде:
Код: plaintext
1.
2.
3.
4.
5.
6.
DO WHILE .T.
  <OPEN FORM  1 > && Нажимаем на кнопку  1 
  EXIT
  <OPEN FORM  2 > && Нажимаем на кнопку  2 
  EXIT
ENDDO

Видите ошибку?
...
Рейтинг: 0 / 0
вопросик по формам
    #33001704
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi All!

1) Не советую использовать Formset - это лишь внесёт ещё больше непонимания и сумятицы.
2) Множественный READ EVENTS возможен - главное пользоваться им ОЧЕНЬ аккуратно, и не забывать что в один момент времени может быть активно не более одного READ EVENTS (НО может быть и НИ одного)
3) Если пропадает ссылка на объект - значит кто-то её уничтожил или записал туда нечто своё. Это вполне возможно с PUBLIC и PRIVATE переменными - почему и советуют их избегать. Eсли ЯВНО передавать "дочерним" формам ссылку на родителя - будет проще и приятнее жить.
4) Visible = 0 это ужасно. У формы есть 2 спец. метода - Show() и Hide() коими и стоит по возможности пользоваться.
5) Восершенно неясно КАК запускается сама главная форма - подозвреваю что она тоже висит на своём READ EVENTS (которые "вкладывать" нельзя - см п.2), и соотвественно от того и проблемы возникают.

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


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