powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как передать параметр в форму?
9 сообщений из 9, страница 1 из 1
Как передать параметр в форму?
    #35356619
Уже ничего не понимаю.
Из 1й формы вызывается 2я. Во второй выбирается значение параметра. Как мне этот параметр передать в 1ю форму?

Сейчас 2я форма модальная, в unload стоит "return myparam", в 1й "do form 2 to myparam".

Ставлю set step on, смотрю, как работает программа. Так там сразу после инита 2й формы идет анлоад, хотя в ините ничего особенного нет (только ControlSource присваивается). Естесственно, не появляется возможности параметру присвоить значение.

Может, я что-то упускаю из вида?
...
Рейтинг: 0 / 0
Как передать параметр в форму?
    #35356831
'''''''''''''''''''''Уже ничего не понимаю.
Из 1й формы вызывается 2я. Во второй выбирается значение параметра. Как мне этот параметр передать в 1ю форму?

Сейчас 2я форма модальная, в unload стоит "return myparam", в 1й "do form 2 to myparam".

Ставлю set step on, смотрю, как работает программа. Так там сразу после инита 2й формы идет анлоад, хотя в ините ничего особенного нет (только ControlSource присваивается). Естесственно, не появляется возможности параметру присвоить значение.

Может, я что-то упускаю из вида?
ИМХО, есть как минимум два варианта:
1. Глобальные (public) переменные
2. Дополнительное свойство формы (создает разработчик) в форме №1...
...
Рейтинг: 0 / 0
Как передать параметр в форму?
    #35356862
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
'''''''''''''''''''''Может, я что-то упускаю из вида?
А в ините второй формы случайно return .F. не происходит?
...
Рейтинг: 0 / 0
Как передать параметр в форму?
    #35356915
Dima T '''''''''''''''''''''Может, я что-то упускаю из вида?
А в ините второй формы случайно return .F. не происходит?

К сожалению, нет
...
Рейтинг: 0 / 0
Как передать параметр в форму?
    #35357208
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в инит формы №2 создай новое св-во:
Код: plaintext
1.
this.AddProperty('MyRez',.F.)
в ходе работы присвой нужное значение этому свойству
Код: plaintext
1.
thisform.MyRez='бла бла бла'
в Unload формы
Код: plaintext
1.
RETURN this.MyPar
...
Рейтинг: 0 / 0
Как передать параметр в форму?
    #35357215
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
'''''''''''''''''''''Уже ничего не понимаю.
Из 1й формы вызывается 2я. Во второй выбирается значение параметра. Как мне этот параметр передать в 1ю форму?

Сейчас 2я форма модальная, в unload стоит "return myparam", в 1й "do form 2 to myparam".

Ставлю set step on, смотрю, как работает программа. Так там сразу после инита 2й формы идет анлоад, хотя в ините ничего особенного нет (только ControlSource присваивается). Естесственно, не появляется возможности параметру присвоить значение.

Может, я что-то упускаю из вида?
1. Через PRIVATE (ТОЛЬКО НЕ Public) переменные, которые определяются и инициируются в методе формы 1 и меняются в форме 2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
PRIVATE m.prPar1, m.prPar2

m.prPar1 =  0 
m.prPar2 = 'ВОТ!'
DO FORM Form2 TO m.Response
IF m.Response
    *-- форма 2 в Unload возвращает способ выхода (ОК или Cancel)
    *-- Использую параметры m.prPar1 и m.prPar2, которые поменялись в форме 2 через ее контролы
ENDIF
2. Отказаться от использования формы и использовать классы и объекты

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
LOCAL m.lcForm
m.lcForm = CREATEOBJECT('MyDialogForm')
IF VARTYPE(m.lcForm) = 'O'
    WITH m.lcForm
         .TextBox2.Value =  1 
         .TextBox1.Value = 'ВОТ!'
         ....
    ENDWITH
    m.loForm.Show( 1 )
    IF m.lcForm.Response
        *-- Класс MyDialogForm содержит кнопки 'OK' и 'Cancel' по которым устанавливает свое
        *-- свойство Response и выполняет Hide() себя, а не Release. После Hide() уплавление
        *-- возвращается в этот метод
        *-- Чтобы форма не закрывалась через "крестик" в событие QueryUnload надо такой код
        *--  вставить:
        *--     THISFORM.Hide()
        *--      NODEFAULT
        *-- RETURN .F.
        *-- Используем все, что есть в форме 2 через ссылку loForm
       WITH m.lcForm
           ...  = .TextBox1.Value
           ...  = .TextBox2.Value
            ....
       ENDWITH
    ENDIF
    RELEASE loForm
ENDIF
С уважением, Алексей
P.S. Лично я использую способ 2
...
Рейтинг: 0 / 0
Как передать параметр в форму?
    #35357243
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в моем предыдущем посте не правильно прописал, надо
RETURN this.MyRez
Или у меня есть еще такой возврат :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
*форма№ 1 
*Init
this.AddProperty("strDate",{})
this.AddProperty("EndDate",{})
*Кнопка запуска
DO FORM f_dateTo WITH thisform

*Форма№ 2 
*init
LPARAMETERS lof
thisform.AddProperty('ParentForm',lof)
*Кнопка выбора
WITH (thisform.parentForm)
	.strDate=thisform.dateBox1.txt.Value 
	.endDate=thisform.dateBox2.txt.Value 
ENDWITH 	
thisform.Release()
...
Рейтинг: 0 / 0
Как передать параметр в форму?
    #35357365
Спасибо всем.
Как оказалось, проблема была совсем в другом: по недосмотру в свойствах второй формы стояла строка As top-level form, которая нарушает модальность.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как передать параметр в форму?
    #39921536
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GoshaS
в моем предыдущем посте не правильно прописал, надо
RETURN this.MyRez
Или у меня есть еще такой возврат :)
Код: sql
1.
2.
3.
*форма№1
*Init
........



Спасибо, помогло даже через много времени.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как передать параметр в форму?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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