Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как вернуть значение из модальной формы ? / 25 сообщений из 65, страница 1 из 3
24.01.2006, 07:50
    #33498644
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
я работаю с Visual FoxPro 8 SP1

у меня есть модальная форма диалога входа (ну там имя, пароль, все такое).
во время работы этой формы мне не нужно главное окно ФоксПро, поетому я пишу SCREEN=OFF в файле CONFIG.FPW.
мне нужно вернуть некоторое значение из этой формы (например, вошел человек или нет) я не хочу использовать глобальные переменные для подобных случаев, поскольку считаю такой подход примером плохого тона (ну вы меня понимаете - область видимости переменных и все такое...), поэтому я пользуюсь оператором DO FORM MyForm TO MyVar.

вот. мы подошли к сути.
поскольку у меня нет ни главного окна ФоксПро (SCREEN=OFF) ни своего главного окна (я его еще не инициализировал, поскольку человек еще не вошел. а мало ли, может, он ваще не войдет) из за того, что главного окна нет, сразу после срабатывания Инита моей модальной формы она сразу выгружается (не знаю почему, видимо это очередной баг фокса, мать его).
вот. я могу, конечно, делать и так:
DO MyForm
READ EVENTS
а в Unload-е формы писать CLEAR EVENTS, но тогда как я верну значение вызывающей форму программе ?
я додумался только до следующего идиотического способа:
определяю класс на основе Custom, добавив в него всего одно PUBLIC свойство vRetVal.
создаю объект этого класса перед тем, как вызываю форму.
вызываю форму, передавая этот объект в ее Init, а там сохраняю его в заранее определенном для этого свойстве формы.
использкую READ EVENTS / CLEAR EVENTS для того, чтобы форма работала нормально.
при завершении работы формы назначаю свойству vRetVal того объекта необходимое значение.
форма отрабатывает, релизится, а объект остается. теперь я могу узнать значение !

люди, но это же бред, делать такие вещи ради того, что должно работать само, а не работает, мать его.

подскажите более простой способ, но без использования (глобальных) переменных, пожалста

спасибо заранее
...
Рейтинг: 0 / 0
24.01.2006, 09:20
    #33498759
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
o = CREATEOBJECT('ReturnValue')
WITH o
	.show( 1 )
	WAIT WINDOW TRANSFORM(.ReturnValue)
	.release()
ENDWITH 	


DEFINE CLASS returnvalue AS form

	Caption = "Form1"
	Name = "Form1"


	ADD OBJECT commandbutton1 AS commandbutton WITH ;
		Top =  204 , ;
		Left =  24 , ;
		Height =  36 , ;
		Width =  288 , ;
		Caption = "thisform.ReturnValue = 100", ;
		Name = "Commandbutton1"


	PROCEDURE Init
		this.AddProperty('ReturnValue') 
	ENDPROC


	PROCEDURE commandbutton1.Click
		thisform.ReturnValue =  100 
	ENDPROC


ENDDEFINE
...
Рейтинг: 0 / 0
24.01.2006, 10:50
    #33498974
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
хм, этот способ очень хорош, но только в том случае, если я работаю с классами форм. но как быть, если политика партии такова, что мне приходится иметь дело с SCX файлами ?
...
Рейтинг: 0 / 0
24.01.2006, 10:54
    #33498995
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
А зачем PUBLIC переменные!?. Достаточно PRIVATE, определенные в том методе, который вызывает диалоговую форму.
Глянь мой пример тут: http://www.caws.atnet.ru/vfox/vfox-sql6.html, метод AddNew
С уважением, Алексей
...
Рейтинг: 0 / 0
24.01.2006, 11:01
    #33499037
FM32YO aka KID
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
может не в тему.. но как-то надо было с формы передать значения 5-ти текстбоксов.. сделал просто
При выгрузке формы пишется
SELECT Text1 AS Param1, Taxt2 AS Param2... INTO CURSOR MyCursor
и все... при закрытии этой формы курсор остался и делай с его значениями, что угодно....
...
Рейтинг: 0 / 0
24.01.2006, 11:19
    #33499120
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
do form with par1,par2,par3 (так только в форме будут видны, но не вернутся)

do form with @par1,@par2,@par3 (эти назад вернутся)


в форме в ините
lparam tpar1,tpar2,tpar3

затем им где нить присваивай

tpar1=..
tpar2=...
tpar3=...
...
Рейтинг: 0 / 0
24.01.2006, 11:34
    #33499195
FM32....
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
alex11100

do form with @par1,@par2,@par3 (эти назад вернутся)



1 версия?
2 есть в документации (в 5-6-7 не нашел)
или методом проб найдено?
...
Рейтинг: 0 / 0
24.01.2006, 11:50
    #33499264
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
????
читайте, там все написано
...
Рейтинг: 0 / 0
25.01.2006, 01:09
    #33501117
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
Hi All!

2 --Eugene--

Чтобы "показать" форму в отсутствие главного окна её пришлось сделать
AsTopLevel - так? А теперь почитай хелп про AsTopLevel+Modal - коротко
говоря модальность в этом случае игнорируется. Так что у тебя абсолютно
нормальный случай НЕмодальной формы. При этом ты сделал совершенно верный,
нормальный и IMHO красивый вариант реализации - я например тоже параметры в
форму передаю (и получаю обратно) при помощи паттерна ParameterObject - это
универсально, гибко (хоть 1 возвращай параметр, хоть 1000 - с передачей тоже
самое - никаких дурных ограничений на число параметров при вызове метода).
Вообще я считаю что трюк с "возвратом" значения из формы слеудет давно
перестать использовать - уже хотя-бы потому что он работает ТОЛЬКО с scx
формами, причём ТОЛЬКО с модальными.

Варианты с Private переменной, и тем более с курсором гораздо хуже (начиная
с того что Private объявленная в main по сути ничем не отличается от Public,
а возврат через курсор будет работать исключительно если вызываемая форма
имеет Default DataSession)...

> определяю класс на основе Custom, добавив в него всего одно PUBLIC
> свойство vRetVal.
> создаю объект этого класса перед тем, как вызываю форму.

Свойство можно добавить в рантайме - т.е. можно использовать сразу базовый
класс, не плодя новых.
loParameter = CREATEOBJECT("Custom")
loParameter.AddProperty("vRetVal", .F.)
....

> вызываю форму, передавая этот объект в ее Init, а там сохраняю его в
> заранее определенном для этого свойстве формы.

Кстати такая функциональность у меня прописана сразу в базовом классе
формы - у меня ЛЮБОЕ взаимодействие вызывающего кода с вызываемой формой
происходит при помощи ParameterObject. При этом занимаясь субклассированием
конечно приходится помнить о необходимости вызова из Init подкласса кода
родителя, с передачей ему этого параметра (если он был принят! что вызывает
несколько громоздкую констуркцию). Впрочем это можно обойти, если запретить
в подклассах переопреелять САМ Init формы, создав скажем 2 "своих" метода, и
уже их вызывать из Init базовой формы...

> люди, но это же бред, делать такие вещи ради того, что должно работать
> само, а не работает

С модальныи формами только "это" работает - у тебя же форма немодальная.

2 alex11100

Ага, только ты забыл что для того чтобы это всё работало, нужно ещё и в Init
формы написать This.Show() - а кроме того присваивать "возвращаемые"
значения не "где-нибудь" а в том же само Init формы, но уже ниже
This.Show() - т.е. когда форма уже скрыта/уничтожается.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
25.01.2006, 04:09
    #33501160
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
Aleksey-KА зачем PUBLIC переменные!?. Достаточно PRIVATE, определенные в том методе, который вызывает диалоговую форму.если речь идет о строке
Код: plaintext
DO FORM Currency_AddEdit WITH THISFORM, "ADD" TO m.llResponse
, то читайте мой первый пост внимательнее. дело в том, что раньше я программировал было на паскале, на си. там область видимости переменных играет немалую роль, и считается дурным тоном делать связку по данным между программными модулями. там это проще, поскольку есть указатели. в фоксе же их нет. вот и приходится выеживаться. мать его. да тут дело даже не в этом, а в том, что бага в фоксе (описанная мной ранее) не дает нормально жить.
и это только одна (1) бага. а их там пруд пруди, если копнуть глубже. чего только PageFrame стоит, мать его
alex11100
Код: plaintext
1.
2.
3.
do form with @par1,@par2,@par3
tpar1=..
tpar2=...
tpar3=...
это в ините проканает. а если мне нужно их присваивать в анлоаде или в дестрое или еще где ?

Igor KorolyovЧтобы "показать" форму в отсутствие главного окна её пришлось сделать
AsTopLevel - так? А теперь почитай хелп про AsTopLevel+Modal - коротко
говоря модальность в этом случае игнорируется. Так что у тебя абсолютно
нормальный случай НЕмодальной формы.
нет, я делаю ее (InTopLevelForm или InScreen) + Desktop=.T.
Form::Desktop - хорошее свойство
Igor Korolyov
я например тоже параметры в форму передаю (и получаю обратно) при помощи паттерна ParameterObjectзначит не один я очередной раз придумал велосипед с квадратными колесами.. это воодушевляет
...
Рейтинг: 0 / 0
25.01.2006, 09:11
    #33501360
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
Igor Korolyov
...
Кстати такая функциональность у меня прописана сразу в базовом классе
формы - у меня ЛЮБОЕ взаимодействие вызывающего кода с вызываемой формой
происходит при помощи ParameterObject
....

Какой смысл создавать специальный объект-посредник для передачи параметров в диалоговую форму. Чем для этого плоха сама вызывающая форма. Кто вам при вызове диалоговой форму мешает передать ссылку на вызывающюю и затем в конструкторе модальной:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
LPARAMETERS loForm
WITH THISFORM
DODEFAULT()
IF PCOUNT() =  1  AND UPPER(VARTYPE(m.loForm)) == "O" ;
   AND UPPER(m.loForm.BaseClass) = "FORM"
      .P_Form = m.loForm
ELSE
   IF TYPE("_SCREEN.ActiveForm") == "O" AND ;
         UPPER(_SCREEN.ACTIVEFORM.BaseClass) = "FORM"
     .P_Form = _Screen.ActiveForm
  ENDIF
ENDIF
IF TYPE("THISFORM.P_FORM") == "O" ;
       AND UPPER(THISFORM.P_FORM.BaseClass) = "FORM"
   SET DATASESSION TO (THISFORM.P_FORM.DataSessionID)
ENDIF
ENDWITH
И теперь в модальной форме вы:
1. Имеете доступ во всем курсорам главной формы (DataSession у них равны)
2. Через ссылку THISFORM.P_Form имеете доступ ко всем свойствам вызывающей формы.
Тем более, как вы сами заметили, свойства можно добавлять (и, кстати, удалять) динамически. В том числе и в вызывающую (не модальную) форму.
С уважением, Алексей
P.S. Кстати, методы вы добавлять в свой Proxy-объект динамически не можете, а я могу через ссылку на вызывающую форму, использовать и ее методы в модальной форме.
...
Рейтинг: 0 / 0
25.01.2006, 09:25
    #33501382
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
--Eugene--
если речь идет о строке
Код: plaintext
DO FORM Currency_AddEdit WITH THISFORM, "ADD" TO m.llResponse
, то читайте мой первый пост внимательнее. дело в том, что раньше я программировал было на паскале, на си. там область видимости переменных играет немалую роль, и считается дурным тоном делать связку по данным между программными модулями. там это проще, поскольку есть указатели. в фоксе же их нет. вот и приходится выеживаться. мать его. да тут дело даже не в этом, а в том, что бага в фоксе (описанная мной ранее) не дает нормально жить.
и это только одна (1) бага. а их там пруд пруди, если копнуть глубже. чего только PageFrame стоит, мать его
Ну, допустим, в VFP тоже етсь область видимости переменных (LOCAL, PRIVATE, PUBLIC) и она тоже имеет огромное значение. Или вы все свои переменные оформляли в виде PUBLIC?
Насчет указателей. Они тоже есть в VFP и активно используются. В моем примере, которые вы привели как раз и используются указатель на вызывающюю форму (THISFORM) для того, чтобы модальная форма могла через этот указатель использовать свойства и методы вызывающей формы (например ее DataSession и положения относительно _SCREEN).
В VFP тоже считается дурным тоном иметь "связку между программными можулями через переменные" (и тем более, через PUBLIC). Но вызов модальной формы из главной - это никак нельзя назвать, как связь между програмными модулями. Вот вместе они составляют программный модуль.
С уважением, Алексей.
...
Рейтинг: 0 / 0
25.01.2006, 09:37
    #33501410
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
Aleksey-K Igor Korolyov
...
у меня ЛЮБОЕ взаимодействие вызывающего кода с вызываемой формой
происходит при помощи ParameterObject
....

Какой смысл создавать специальный объект-посредник для передачи параметров в диалоговую форму. Чем для этого плоха сама вызывающая форма. Кто вам при вызове диалоговой форму мешает передать ссылку на вызывающюю и затем в конструкторе модальной...да ? а если я вызываю форму из PRG файла ? это вам не шубу в трусы заправлять (пардон)
Aleksey-KP.S. Кстати, методы вы добавлять в свой Proxy-объект динамически не можете, а я могу через ссылку на вызывающую форму, использовать и ее методы в модальной форме.странно, а разве вообще можно "добавлять" методы динамически ? а если речь идет об использовании существующих методов формы, переданной по ссылке в вызываемую, то оно, конечно, хорошо, но, опять же, как быть, если "вызывающей" формы нет, а "вызываемая" форма запускается в PRG файле. например, в main.prg происходит DO FORM Login.scx ?
...
Рейтинг: 0 / 0
25.01.2006, 09:45
    #33501423
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
--Eugene--? а если я вызываю форму из PRG файла ? это вам не шубу в трусы заправлять (пардон)

Я бы вам советовал:
1. Отказаться от использования VFP и вернуться назад на PASCAL, DELPTHI и пр. Там у вас, очевидно, получалось лучше и с шубами и с трусами.
2. Сменить тон.
3. Отказаться от вызова формы Login из главного программного модуля. (это уже по существу).
Алексей.
...
Рейтинг: 0 / 0
25.01.2006, 09:58
    #33501451
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
прошу прощения, если вас задела пара слов не по существу
Aleksey-KЯ бы вам советовал отказаться от вызова формы Login из главного программного модуляа как вы себе представляете запуск диалога входа если не в главной программе ?
...
Рейтинг: 0 / 0
25.01.2006, 10:16
    #33501505
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
Обычную форму можно заставить вести себя как класс
local loFrm
Код: plaintext
1.
do form frmMy name loFrm noshow 
loFrm.Show() 
...
Рейтинг: 0 / 0
25.01.2006, 10:26
    #33501539
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
--Eugene--прошу прощения, если вас задела пара слов не по существу
Aleksey-KЯ бы вам советовал отказаться от вызова формы Login из главного программного модуляа как вы себе представляете запуск диалога входа если не в главной программе ?
Ну, например, главная программа тоже реализован как класс, объект которого создается в MAIN.PRG и для входа в систему (после успешного создания экземпляра этого класса), просто вызывается соответствующий метод этого объекта, например Login, а у объекта есть свойства: User_Login, User_Password и еще все, что вашей душе угодно.
Может вам поможет мой пример: http://www.caws.atnet.ru/vfox/vfox-sql.html
С уважением, Алексей.
...
Рейтинг: 0 / 0
25.01.2006, 10:32
    #33501561
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
CripОбычную форму можно заставить вести себя как класс
local loFrm
Код: plaintext
1.
do form frmMy name loFrm noshow 
loFrm.Show() 
это понятно, но потом ведь все равно придется дописать READ EVENTS, а в методе Unload этой формы написать CLEAR EVENTS, поскольку диалог входа является модальной формой. но как мне получить результат ? я не могу использовать DO FORM TO, потому, как не имею главного окна.

ясно. или передавать в Инит названия переменных, заранее определенных для возвращения результатов или использовать фиктивный объект в качестве посредника..

жаль, что нет нормального способа
...
Рейтинг: 0 / 0
25.01.2006, 10:39
    #33501598
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
Aleksey-KНу, например, главная программа тоже реализован как класс, объект которого создается в MAIN.PRGспасибо за пример. а можно ли как-то перегрузить класс приложения и сделать свой, из которого будет получаться объект Application ?
...
Рейтинг: 0 / 0
25.01.2006, 10:47
    #33501629
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
Igor Korolyov
я не стараюсь разжевывать, я просто намекнул как это делается

вот еще способ

this.runform(nameform,@par1,@par2,@par3)

method runform
lpara tnameform,tpar1,tpar2,tpar3
local oForm
do form tnameform name oForm
if type(oForm)=="O" and oForm.lResult = .t.
tpar1 = ??
tpar2 = ??
tpar3 = ??
endif


а это вообще вот рабочий кусок
*:Remarks:
Активация формы выбора товаров.

*:Example:
oDlg.SelectList_Good(this.cObjCl, this.cExpr, this.tcExprConst, @lcXML)

lparameters tcCursor, tcExpr, tcExprConst, tnPriID, tData, tcTrasfer
* Создаем курсорадаптер для справочника
if type("tcCursor")="C" and !used(tcCursor)
if oApp.loadObject(tcCursor)<>0
oDlg.MsgErr("Невозможно инициализировать объект "+tcCursor,1,1,1,1, cj_getReturn())
return -1
endif
endif
* Активируем форму выбора из справочника
local lnResult, oDlgSelectList
lnResult = 0
oDlgSelectList = createobject("frm_selectlist_good", tcCursor, tcExpr, tcExprConst, tnPriID, tData)
if vartype(oDlgSelectList)=="O" and !isnull(oDlgSelectList)
oDlgSelectList.show()
if vartype(oDlgSelectList)=="O" and !isnull(oDlgSelectList)
lnResult = oDlgSelectList.nModalResult
tcTrasfer = oDlgSelectList.cTrasfer
else
lnResult = 0
tcTrasfer = 0
endif
endif
release oDlgSelectList

return lnResult
...
Рейтинг: 0 / 0
25.01.2006, 12:44
    #33502065
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
alex11100
Код: plaintext
1.
2.
3.
if vartype(oDlgSelectList)=="O" and !isnull(oDlgSelectList)
...
endif
Код: plaintext
1.
2.
3.
?vartype(THISFORM)
O
?vartype(.NULL.)
X
...
Рейтинг: 0 / 0
25.01.2006, 12:54
    #33502100
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
и чта дальша???

этоть мой золотой костыль
...
Рейтинг: 0 / 0
25.01.2006, 13:58
    #33502317
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
Вообще-то, я не понял самой постановки задачи.

Форма ввода логина и пароля ЧТО должна сделать?

Я всегда считал, что эта форма дает пользователю ввести 2 значения и по нажатию кнопки Ok делает вывод о допустимости или не допустимости дальнейшей работы этого пользователя.

Т.е. эта проверка делается ВНУТРИ формы, а вовсе не в основной программе. Ну, или как минимум, из этой формы организуется вызов внешней процедуры проверки.

Другими словами, ЧТО предполагается возвращать из этой формы? Какой смысл в этом самом возвращаемом значении?

Значит, логика работы совершенно другая. Эта форма вообще ничего не возвращает, а только САМА принимает решение: продолжить дальнейшую работу с программой или завершить.

Следовательно код главной программы будет примерно таким:

Код: plaintext
1.
2.
3.
4.
_SCREEN.Visible = .F.	&& обычно дается в Config.fpw
DO MainMenu.mpr		&& Основное управляющее меню приложения
DO FORM Login.scx
READ EVENTS

В событии UNLOAD формы Login.scx дается примерно такой код:

Код: plaintext
1.
2.
3.
4.
5.
IF (разрешить работу с программой)
	_SCREEN.Visible = .T.
ELSE
	CLEAR EVENTS
ENDIF

ВСЕ! Какие еще возвращаемые значения?

Если в этой форме делаются какие-то глобальные настройки, то они именно глобальные. Т.е. присваиваются глобальным переменным или глобальному объекту. Опять нет смысла в возвращаемых значениях.

К сведению :

Если в модальной форме дать команду ThisForm.Hide(), то форма скроется и выполнение программы продолжится со следующей после команды DO FORM команды. Т.е. с модальными формами можно работать так:

Код: plaintext
1.
2.
3.
4.
5.
DO FORM MyModalForm.scx NAME MyForm
IF TYPE("m.MyForm") = "O" AND IsNull(m.MyForm) = .F.
	?MyForm.Caption
	MyForm.Release()
ENDIF

В данном случае, заголовок окна формы будет прочитан если форма будет закрыта командой ThisForm.Hide().
...
Рейтинг: 0 / 0
25.01.2006, 14:28
    #33502437
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
--Eugene--
там что про изнул то было
типа нашел у меня глюк???

нехорошо - дяденьку обидел
...
Рейтинг: 0 / 0
25.01.2006, 14:42
    #33502515
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вернуть значение из модальной формы ?
2 alex11100 :)

ВладимирМВообще-то, я не понял самой постановки задачи.
Форма ввода логина и пароля ЧТО должна сделать?
Я всегда считал, что эта форма дает пользователю ввести 2 значения и по нажатию кнопки Ok делает вывод о допустимости или не допустимости дальнейшей работы этого пользователя... Другими словами, ЧТО предполагается возвращать из этой формы? Какой смысл в этом самом возвращаемом значении?не вдавайтесь в подробности, да Бог знает, что там на форме делается. разве только логин может там быть ? ВладимирМ К сведению :
Если в модальной форме дать команду ThisForm.Hide(), то форма скроется и выполнение программы продолжится со следующей после команды DO FORM команды. Т.е. с модальными формами можно работать так:
Код: plaintext
1.
2.
3.
4.
5.
DO FORM MyModalForm.scx NAME MyForm
IF TYPE("m.MyForm") = "O" AND IsNull(m.MyForm) = .F.
	?MyForm.Caption
	MyForm.Release()
ENDIF
В данном случае, заголовок окна формы будет прочитан если форма будет закрыта командой ThisForm.Hide().а вот это действительно то, что мне нужно! спасибо, дружище!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как вернуть значение из модальной формы ? / 25 сообщений из 65, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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