Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 вопросик по формам  [new]
vital_345
Guest
Есть главная форма 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

Почему в первый раз все работает, а во второй нет?
6 апр 05, 10:31    [1444105]     Ответить | Цитировать Сообщить модератору
 Re: вопросик по формам  [new]
Дмитрий Петров
Member

Откуда: Пермь
Сообщений: 43
Вторая форма в Unload не знает что такое form_start.

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

PS Такое обращение с Read Event до добра не доведет :)
6 апр 05, 11:04    [1444321]     Ответить | Цитировать Сообщить модератору
 Re: вопросик по формам  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
слишком уж много реад эвентов это как минимум а там может еще чего есть
6 апр 05, 11:04    [1444322]     Ответить | Цитировать Сообщить модератору
 Re: вопросик по формам  [new]
vital_345
Guest
Дмитрий Петров
Вторая форма в Unload не знает что такое form_start.

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

PS Такое обращение с Read Event до добра не доведет :)

а что здесь не так с read events?
и как лучше сделать?
6 апр 05, 11:52    [1444601]     Ответить | Цитировать Сообщить модератору
 Re: вопросик по формам  [new]
vital_345
Guest
Дмитрий Петров
Вторая форма в Unload не знает что такое form_start.

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

PS Такое обращение с Read Event до добра не доведет :)

а что здесь не так с read events?
и как лучше сделать?
6 апр 05, 11:59    [1444658]     Ответить | Цитировать Сообщить модератору
 Re: вопросик по формам  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
если всё что вам нужно это две связные формы может имеет смысл задуматься о формсете тода многие проблемы отпадут
ну или почитать чё нить а то тут объяснять долго
http://www.caws.atnet.ru/vfox/vfoxpro2.html
http://www.foxclub.ru/articles/
6 апр 05, 12:05    [1444711]     Ответить | Цитировать Сообщить модератору
 Re: вопросик по формам  [new]
Станислав C.
Member

Откуда: Екатеринбург
Сообщений: 1030
vital_345

а что здесь не так с read events?
и как лучше сделать?

По "правилам хорошего тона" (см.статьи Владимира Максимова) требуется ставить read events в начале работы программы (один раз) и clear events во всех точках программы, где она физически заканчивает свою работу (желательно тоже один раз).

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

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

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

Видите ошибку?
6 апр 05, 12:19    [1444813]     Ответить | Цитировать Сообщить модератору
 Re: вопросик по формам  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

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

7 апр 05, 04:45    [1447311]     Ответить | Цитировать Сообщить модератору
 Re: вопросик по формам  [new]
vital345
Guest
cпасибо, наконец-то начал понимать философию фокса
7 апр 05, 09:43    [1447532]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить