powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Форма появляется и сразу пропадает
8 сообщений из 8, страница 1 из 1
Форма появляется и сразу пропадает
    #35676973
Tohan_ORA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Вызываю форму2 из формы 1

Код: plaintext
1.
DO FORM form2  NAME vlink_2 LINKED  
READ events
-Форма 2 мелькает и исчезает

Код: plaintext
1.
DO FORM form2   
READ events
-так Форма 2 отображается

Но мне нужно именно со ссылкой чтобы после вызывать метод формы2 из формы 1
...
Рейтинг: 0 / 0
Форма появляется и сразу пропадает
    #35677004
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не вдаваться в объяснения, то переменная vlink_2 должна быть предварительно объявлена как PUBLIC. Но это не очень хорошее решение. Вы можете получить ряд проблем в будущем.

Если же решать "по правильному", то надо либо записать ссылку на Form2 в каком-либо свойстве Form1, либо через BindEvent() связать нужные события Form1 и Form2.

Код: plaintext
1.
2.
DO FORM Form2
BindEvent(Form1, "MethodForm1", Form2, "MethodForm2",  1 )

В результате такой связки после выполнения метода (события) с именем MethodForm1 в первой форме автоматически сработает метод (событие) с именем MethodForm2 во второй форме.

Никаких дополнительных ссылок создавать не надо
...
Рейтинг: 0 / 0
Форма появляется и сразу пропадает
    #35677114
Tohan_ORA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМЕсли не вдаваться в объяснения, то переменная vlink_2 должна быть предварительно объявлена как PUBLIC. Но это не очень хорошее решение. Вы можете получить ряд проблем в будущем.

Если же решать "по правильному", то надо либо записать ссылку на Form2 в каком-либо свойстве Form1, либо через BindEvent() связать нужные события Form1 и Form2.

Код: plaintext
1.
2.
DO FORM Form2
BindEvent(Form1, "MethodForm1", Form2, "MethodForm2",  1 )

В результате такой связки после выполнения метода (события) с именем MethodForm1 в первой форме автоматически сработает метод (событие) с именем MethodForm2 во второй форме.

Никаких дополнительных ссылок создавать не надо

Последовал Вашему совету-сделал через BindEvent
Но,теперь после отработки "MethodForm1" получаю следующую ошибку:
Код: plaintext
1.
2.
3.
No PARAMETER statement is found.
Процедура:MethodForm2
Содержимое строки породившее исключение:MESSAGEBOX('form2')
Номер ошибки: 1238  
...
Рейтинг: 0 / 0
Форма появляется и сразу пропадает
    #35677256
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, вы как-то неправильно перехватили сообщение об ошибке.

Ошибка 1238 говорит о том, что была вызвана некая процедура или функция с параметрами, а в самой этой вызванной функции нет ключевого слова PARAMETER.

В отношении системной функции MessageBox() этого быть не может. Разве что, вы написали собственную функцию с таким именем.
...
Рейтинг: 0 / 0
Форма появляется и сразу пропадает
    #35677266
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай, BindEvent() не предполагает передачу параметров между связанными событиями. Она определяет последовательность событий. Кто после кого будет вызван.

Если необходимо обработать какие-то общие данные в этих событиях, то эти данные передаются другими способами. В зависимости от того, что это за данные.
...
Рейтинг: 0 / 0
Форма появляется и сразу пропадает
    #35677313
Tohan_ORA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМПо-моему, вы как-то неправильно перехватили сообщение об ошибке.

Ошибка 1238 говорит о том, что была вызвана некая процедура или функция с параметрами, а в самой этой вызванной функции нет ключевого слова PARAMETER.

В отношении системной функции MessageBox() этого быть не может. Разве что, вы написали собственную функцию с таким именем.

Да, я создал собственный метод в форме2-в который ничего и не предполагалось передавать.
Как только я прописал в нем
Код: plaintext
Lparameters v
-всё заработало! :-)
Хотя значение этого параметра я нигде и не использую.
Спасибо!
...
Рейтинг: 0 / 0
Форма появляется и сразу пропадает
    #35697542
Arbuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В main.prg :
Код: plaintext
Obj_FormAll=createobject("form")
В методе Init формы:
Код: plaintext
Obj_FormAll=ThisForm
Потом какие угодно методы формы можно вызывать:
Код: plaintext
1.
2.
Obj_FormAll.Enabled=.T.
Obj_FormAll.Grid1.SetFocus
...
Рейтинг: 0 / 0
Форма появляется и сразу пропадает
    #35697543
Arbuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Read Events обязательно перед вызовом другой формы каждый раз делать?
Обычно один раз даю в main.prg перед запуском первой формы - и понеслась...
Clear Events - перед завершением работы программы (иногда при ошибках просто QUIT)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Форма появляется и сразу пропадает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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