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

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

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

А что все формы сделаны на базе Class = BaseClass
...
Рейтинг: 0 / 0
Как узнать из какой формы была запущена текущая форма?
    #32940870
sanya_tir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да
...
Рейтинг: 0 / 0
Как узнать из какой формы была запущена текущая форма?
    #32940875
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да электричество напоминает отдаленно
ладно _screen - контейнер содержит все открытые формы
через контейнер мона достучаться до свойств формы так понятнее
тока если откроете еще форму то индекс может измениться поэтому всё делаеться быстро и компактно )
...
Рейтинг: 0 / 0
Как узнать из какой формы была запущена текущая форма?
    #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
Как узнать из какой формы была запущена текущая форма?
    #32943068
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.P.S. Public переменные - зло
согласен но дурные привычки есть дурные привычки
...
Рейтинг: 0 / 0
Как узнать из какой формы была запущена текущая форма?
    #32943140
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно же просто - в открываемой форме создать переменную, типа:
kto_menya_otkryl = SYS(16,0)
где и будет написано, кто ж это сделал ;)
можно вырезать SUBSTR-ом - между последним слэшем и точкой перед расширением файла.
...
Рейтинг: 0 / 0
Как узнать из какой формы была запущена текущая форма?
    #32943167
Edbo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имя вызвавшей формы или программного модуля:
?PROGRAM(PROGRAM(-1)-1)
...
Рейтинг: 0 / 0
Как узнать из какой формы была запущена текущая форма?
    #32943276
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Edbo :

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


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