powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Forma - Parameter
14 сообщений из 14, страница 1 из 1
Forma - Parameter
    #32756830
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просмотрел форум - нашел кучу ответов как запустить форму с параметрами...
а вот как чтобы форма вернула параметр в главную форму?

На главной форме грид, когда юзер жмет кнопочку вызывается маленькая форма где он указывает условия фильтра. Затем форма закрывается ...и фильтр выдает ошибку так как невидит переменных из формы с условиями для фильтра.
...
Рейтинг: 0 / 0
Forma - Parameter
    #32756867
jumper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
головой подумай немного
сделай переменную глобальной
...
Рейтинг: 0 / 0
Forma - Parameter
    #32756889
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex SheffПросмотрел форум - нашел кучу ответов как запустить форму с параметрами...
а вот как чтобы форма вернула параметр в главную форму?

На главной форме грид, когда юзер жмет кнопочку вызывается маленькая форма где он указывает условия фильтра. Затем форма закрывается ...и фильтр выдает ошибку так как невидит переменных из формы с условиями для фильтра.
А переменные как описаны: Local, Private или Public ?
Советую, с целью поднятия образованности , почитать в книжках по Clipper (ну, или по C++) раздел про область видимости переменных.
Надо, чтобы переменные, через которые передаются данные, были описаны как Public и их описание находилось бы либо в вызывающей форме, либо в запускающей процедуре...
...
Рейтинг: 0 / 0
Forma - Parameter
    #32756914
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про переменные Public я и сам догадался...
но мы неищем легких путей :)
что память незасорять - думал может какие параметры обратно передаются
...
Рейтинг: 0 / 0
Forma - Parameter
    #32756969
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex SheffПро переменные Public я и сам догадался...
но мы неищем легких путей :)
что память незасорять - думал может какие параметры обратно передаются
В самой форме есть такое свойство (property) как Tag. Как сказано в справке, туда можно поместить любое символьное значение (а уж со строкой можно сделать почти все, что хочешь: преобразовать почти к любому виду, сделать разбор на элементы/буквы и т.д.). К тому же, это свойство никак не влияет на форму...
...
Рейтинг: 0 / 0
Forma - Parameter
    #32757048
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
очень интересное свойство этот TAG
но я видимо чего-то недопонял (или не я :)):
Форма1 запускает Форма2, на форма2 юзер устанавливает параметры...
допустим я записал значение в TAG, затем форма2 закрывается, дальше работает форма1. как мне в форма1 увидеть этот TAG
...
Рейтинг: 0 / 0
Forma - Parameter
    #32757059
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Sheffочень интересное свойство этот TAG
но я видимо чего-то недопонял (или не я :)):
Форма1 запускает Форма2, на форма2 юзер устанавливает параметры...
допустим я записал значение в TAG, затем форма2 закрывается, дальше работает форма1. как мне в форма1 увидеть этот TAG
Есть два варианта:
1. Форма2 не закрывается, а делается лишь Hide (скрытой); тогда можно брать данные из ее Tag'a
2. Форма2 кладет необходимые данные НЕ В СВОЙ Tag, а в Tag Формы1, после чего благополучно закрывается.

Тебе лишь надо оценить достоинства и недостатки этих методов...
...
Рейтинг: 0 / 0
Forma - Parameter
    #32757104
АлександрК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В форме, из которой должно вернуться значение заведи св-во (можно и Tag использовать). Эта же форма должна быть модальной.
Вызов формы: DO FORM Form2 WITH ..Параметры.. TO m.Return
m.Return - это переменная (св-во), в которую форма возвращает значение.
В Unload формы: RETURN ТвоеСвойство
...
Рейтинг: 0 / 0
Forma - Parameter
    #32757363
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлександрК
В Unload формы: RETURN ТвоеСвойство

Попробовал Return "abc" - все работает,
но когда перед Return ставлю Do Case (чтоб опередить что именно пользователь накликал на форме) ругается что невидит ничего из обектов в форме...
к томуже в Unload - невидны Local Private переменный.
Видимо без Public необойтись
...
Рейтинг: 0 / 0
Forma - Parameter
    #32757424
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заведи свойства в вызывающей форме, которые будут заполняться во второй форме, после закрытий второй формы анализируй заполненные свойства первой и строй фильтр.
...
Рейтинг: 0 / 0
Forma - Parameter
    #32757440
_Kat_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИЗ хелпа:
Формы могут возвращать значения.
Как вернуть значение из формы
1. Установите значение свойства формы WindowType равным 1, для того чтобы сделать ее модальной.
2. В обработчик события UnLoad включите команду RETURN с возвращаемым значением.
3. Для вызова формы используйте команду DO FORM с ключевым словом TO.
Например, если FindCustID является модальной формой, возвращающей текстовую строку, следующая команда присвоит возвращаемую строку переменной cCustID.
DO FORM FindCustID TO cCustID
Решение вопросов В случае возникновения ошибки убедитесь, что значение свойства WindowType равно 1 (модальная форма).
*конец цитаты

Пример из жизни
PUBLIC usercod && можешь и локальную и какую хочешь
DO FORM passwordform2 TO usercod
IF EMPTY(usercod)
usercod=VAL(ALLTRIM(STR(DAY(DATE())))+ALLTRIM(STR(MONTH(DATE())))+ALLTRIM(STR(YEAR(DATE()))))
ENDIF
READ EVENTS


В форме passwordform2 добавили свойство ReturnString
где хочешь, там и присвой значение этому свойству
(НАПРИМЕР В КЛИКЕ OK)
например thisform.ReturnString=sotr.id_sotr
А в UNLOAD passwordform2
написано
* На всякий случай проверяем модальность формы
IF This.WindowType = 1
* Можешь чего нибудь проверить там
типа так:
DO CASE
CASE This.ReturnString=666
WAIT WIND "О зарегился супер юзер" TIMEOUT 5000
RETURN This.ReturnString
........
ENDCASE
ENDIF

НУ Уже на пальцах вроде объяснила
...
Рейтинг: 0 / 0
Forma - Parameter
    #32757461
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если требуется более подробное объяснение, то Вам сюда:

http://www.foxclub.ru/kb/index.php?sid=75423&aktion=artikel&rubrik=004&id=4&lang=ru
...
Рейтинг: 0 / 0
Forma - Parameter
    #32757907
Alex Sheff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое всем спасибо... _Kat_ - поцелуйчик
...
Рейтинг: 0 / 0
Forma - Parameter
    #32759262
_Kat_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поцелуйчик принимаю, должен будешь
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Forma - Parameter
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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