:: Архив конференции по VFP до 2005 года
ЗАПУСК НЕМОДАЛЬНЫХ ФОРМ ИЗ ОДНОЙ - ДРУГУЮ
Ден
Автор
Пожалуйста - помогите. Много программировал на FoxPro for Dos, сейчас переделываю свои приложения под VFP. Проблема простая, но замучался с ней. Имеется главный файл .PRG - из него вызываю первую немодальную форму (do form form1 ... read events ). По нажатию кнопки (button1.click), на первой форме, производятся различные преобразования данных и необходимо запустить еще одну форму (do form form2), на которой пользователь должен вводить уточняющую информацию, необходимую для завершения обработки в button1.click. То есть мне нужно, чтобы button1.click исполнялся до комманды do form form2, затем управление передавалось form2, а после ее завершения, button1.click доисполнялся до конца. Сейчас же, имею ситуацию, когда управление на form2 передается только после того как исполнится весь код метода button1.click. Замечу, что в foxpro for DOS, на котором я писал раньше, все происходило именно так, как мне надо. Конечно, можно сделать form2 - modal, но в модальных окнах недоступно меню, а желательно, чтобы оно было доступно отовсюду. Попробовал после do form form2 ставить read events - не помогло. Подскажите, как правильно организовать вызов немодальных форм друг из друга и возможно ли это? Заранее благодарен.

[piva]
(В следующий раз старайтесь название темы не писать все заглавными буквами)
Ratings: 0 negative/0 positive
Re: ЗАПУСК НЕМОДАЛЬНЫХ ФОРМ ИЗ ОДНОЙ - ДРУГУЮ
AlexK

Сообщений: 2114
Откуда: Королев,Москва
Дата регистрации: 11.12.2000
Проще найти как меню включить , чем объяснить. В gotFocus do menu

forum.foxclub.ru



Отредактировано (24.06.05 08:54)


------------------
Береги природу, мать Вашу. Моя страничка www.genrep.net
Ratings: 0 negative/0 positive
Re: ЗАПУСК НЕМОДАЛЬНЫХ ФОРМ ИЗ ОДНОЙ - ДРУГУЮ
Владимир Максимов

Сообщений: 14098
Откуда: Москва
Дата регистрации: 02.09.2000
Почитай здесь

www.foxclub.ru
Ratings: 0 negative/0 positive
Re: ЗАПУСК НЕМОДАЛЬНЫХ ФОРМ ИЗ ОДНОЙ - ДРУГУЮ
Sergey Konoplev

Сообщений: 99
Откуда: Krasnodar
Дата регистрации: 25.02.2004
Например, так:
1. Создай в 1-й форме свойство lChild = .f.
2. В button1.click оставь ту часть кода, которая заканчивается командой do form form2, перед которой поставь
ThisForm.lChild = .t.
3. Вторую часть кода из button1.click перенеси в Form1.Activate в обертке if-endif:
if ThisForm.lChild
ThisForm.lChild = .f.
<Вторая часть кода из button1.click>
endif
4. В форме 2 при входе можно будет позаботиться о псевдомодальности формы 1: задисейблить ее, запретить минимизацию, максимизацию и возможность закрытия крестиком, а при выходе из формы 2 - все разрешить.
А еще лучше: при входе в форму 2 запомнит эти параметры для формы 1, запретить, а при выходе - восстановить.
Используй для этого специально заведенные свойства формы. Ну а там и до написания класса формы с этими действиями - один шаг.




------------------
С наилучшими пожеланиями, Сергей
Ratings: 0 negative/0 positive
Re: ЗАПУСК НЕМОДАЛЬНЫХ ФОРМ ИЗ ОДНОЙ - ДРУГУЮ
Владимир С
Hi, Ден!
Может я не до конца в ситуацию вник, но почему на form1 не использовать PageFrame Control?
Ratings: 0 negative/0 positive
Re: ЗАПУСК НЕМОДАЛЬНЫХ ФОРМ ИЗ ОДНОЙ - ДРУГУЮ
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi Sergey!

Лучше всё-же сделать классы со своими методами (в т.ч. и метод типа "OnSelectionInChildForm"), явно передавать ссылки - т.е. чтобы Form2 могла обратится к Form1 и соответственно при закрытии Form2 она спрячет себя, и дёрнет соответствующий метод form1 - чтобы "обработать возврат". Причём "вызывающим контролом" может быть не сама форма Form1, а скажем Textbox или CommandButton на ней.




------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 9 (Гостей: 9)

© 2000-2024 Fox Club 
Яндекс.Метрика