Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как узнать из какой формы была запущена текущая форма? / 17 сообщений из 17, страница 1 из 1
02.03.2005, 12:15
    #32940732
sanya_tir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
Ситуация следующая... Есть одна форма которая вызывается из разных мест, все ничего, только при запуске из одной определенной формы нужно в ней запускать другой запрос. Одним словом нужно узнать имя формы (или еще что-то), чтобы можно было добавить условие...
...
Рейтинг: 0 / 0
02.03.2005, 12:20
    #32940741
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
владимирМ наверное посветует что получше
но всё же глобалиные переменные имеют место быть в природе поэтому
в клике вызывающей формы присвоение значение в ините чтение и интерпритация далнешее просто
а вообще я например неуверен что способ лучший
...
Рейтинг: 0 / 0
02.03.2005, 12:22
    #32940749
sanya_tir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
Эта форма вызывается из многих форм. Поэтому, чтобы передавать параметр, нужно их всех править, что не совсем хорошо... может есть другой способ???
...
Рейтинг: 0 / 0
02.03.2005, 12:24
    #32940754
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
При запуске формы можно указать список параметров, и в Ините запускаемой формы, этот список можно поймать

Код: plaintext
1.
2.
DO FORM FormName WITH cParameterList

CREATEOBJECT(ClassName [, eParameter1, eParameter2, ...])
...
Рейтинг: 0 / 0
02.03.2005, 12:29
    #32940768
sanya_tir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
Опять же параметр ...
...
Рейтинг: 0 / 0
02.03.2005, 12:42
    #32940811
sanya_tir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
А может кто подскажет как определить открыта в данный момент определенная форма или нет?
...
Рейтинг: 0 / 0
02.03.2005, 12:46
    #32940820
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
for i=1 to _screen.formcount
messagebox(_screen.forms(i).name)
endfor
...
Рейтинг: 0 / 0
02.03.2005, 12:47
    #32940825
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
так сойдет ????
...
Рейтинг: 0 / 0
02.03.2005, 12:53
    #32940852
sanya_tir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
Почти...
вот есть название формы.
так как узнать открыта она или нет. Типа exist(formname) есть что-то?
...
Рейтинг: 0 / 0
02.03.2005, 12:54
    #32940859
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
авторОпять же параметр ...

А что все формы сделаны на базе Class = BaseClass
...
Рейтинг: 0 / 0
02.03.2005, 12:56
    #32940870
sanya_tir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
да
...
Рейтинг: 0 / 0
02.03.2005, 12:57
    #32940875
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
да электричество напоминает отдаленно
ладно _screen - контейнер содержит все открытые формы
через контейнер мона достучаться до свойств формы так понятнее
тока если откроете еще форму то индекс может измениться поэтому всё делаеться быстро и компактно )
...
Рейтинг: 0 / 0
03.03.2005, 00:59
    #32942569
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
Hi sanya_tir!

Неправильные у тебя понятия... Через параметр это и делается. А править надо
лишь ту форму, вызов из которой ты и хочешь отследить - напиши там например
Код: plaintext
DO FORM Form2 WITH ThisForm
- в остальных ничего не правь, а в Init вызываемой напиши:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
LPARAMETERS toCaller
IF PCOUNT() <  1 
    * Вызвали из той формы, которая не передаёт параметра
ELSE
    * Ага, параметр имеется - можно даже к вызывающей форме обратиться :)
    * toCaller лучше запомнить в некоторое свойство Thisform - чтоб и из 
других методов можно было обращаться.
ENDIF

P.S. Если форма есть в _SCREEN.forms() - значит она запущена (правда может
быть скрыта). Ещё есть старый добрый WEXIST("MyForm") - по Name формы можно
определить именно факт наличия такой формы, ну а по WVISIBLE("MyForm") и
факт "видимости".
P.P.S. Public переменные - зло, лучше держись от них подальше, пока не
поднатаскаешься в фоксе побольше (тогда по крайней мере ты не будешь
попадать в дурацкие проблемные ситуации из-за использования PUBLIC
переменных).

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
03.03.2005, 11:00
    #32943068
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
P.P.S. Public переменные - зло
согласен но дурные привычки есть дурные привычки
...
Рейтинг: 0 / 0
03.03.2005, 11:15
    #32943140
Crispy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
А можно же просто - в открываемой форме создать переменную, типа:
kto_menya_otkryl = SYS(16,0)
где и будет написано, кто ж это сделал ;)
можно вырезать SUBSTR-ом - между последним слэшем и точкой перед расширением файла.
...
Рейтинг: 0 / 0
03.03.2005, 11:24
    #32943167
Edbo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
Имя вызвавшей формы или программного модуля:
?PROGRAM(PROGRAM(-1)-1)
...
Рейтинг: 0 / 0
03.03.2005, 12:03
    #32943276
Crispy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать из какой формы была запущена текущая форма?
to Edbo :

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


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