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

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

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

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

Попробовал Return "abc" - все работает,
но когда перед Return ставлю Do Case (чтоб опередить что именно пользователь накликал на форме) ругается что невидит ничего из обектов в форме...
к томуже в Unload - невидны Local Private переменный.
Видимо без Public необойтись
...
Рейтинг: 0 / 0
27.10.2004, 16:08
    #32757424
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Forma - Parameter
Заведи свойства в вызывающей форме, которые будут заполняться во второй форме, после закрытий второй формы анализируй заполненные свойства первой и строй фильтр.
...
Рейтинг: 0 / 0
27.10.2004, 16:13
    #32757440
_Kat_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Forma - Parameter
ИЗ хелпа:
Формы могут возвращать значения.
Как вернуть значение из формы
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
27.10.2004, 16:23
    #32757461
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Forma - Parameter
Если требуется более подробное объяснение, то Вам сюда:

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


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