|
|
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
2 ВладимирМ: нет. не работает. главного окна-то нет, черт бы его побрал придется далать DO FORM, а затем READ EVENTS а тут уже ниче не поделать - форма релизится.. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 14:53 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
ВладимирМВообще-то, я не понял самой постановки задачи. Форма ввода логина и пароля ЧТО должна сделать? Я всегда считал, что эта форма дает пользователю ввести 2 значения и по нажатию кнопки Ok делает вывод о допустимости или не допустимости дальнейшей работы этого пользователя. Т.е. эта проверка делается ВНУТРИ формы, а вовсе не в основной программе. Ну, или как минимум, из этой формы организуется вызов внешней процедуры проверки. Другими словами, ЧТО предполагается возвращать из этой формы? Какой смысл в этом самом возвращаемом значении? Значит, логика работы совершенно другая. Эта форма вообще ничего не возвращает, а только САМА принимает решение: продолжить дальнейшую работу с программой или завершить. Уважаемый --Eugene-- обратите внимание на эту цитату ВладимираМ! Именно так и надо делать (только я делаю проверку в событии QueryUnload формы Login, а не в событии Click кнопки OK, но это суть не меняет). Подключение к серверу и проверка пароля производится в форме Login и только там! А способ вызова этой формы, это дело вкуса. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 15:15 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Специально проверил. Если _SCREEN не видимо, то модальность InTop-Level формы игнорируется. Что логично. Если контейнер (_SCREE) в котором открывается объект скрыт, то элемент контейнера (форма) по логике тоже должен быть скрыт. А скрытая (невидимая) форма не может быть модальной. Как только я делаю _SCREEN видимым, тут же "включается" модальность. Так что, у тебя 2 варианта действий: Либо оставить _SCREEN видимым (тогда работает модальность), либо "подвешивать" форму логина через READ EVENTS. При этом, способ создания формы не играет никакой роли. Не важно, будет ли это класс или DO FORM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 23:06 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Aleksey-KПодключение к серверу и проверка пароля производится в форме Login и только там!я же это отлично понимаю. но при чем тут именно логин ? а если я хочу показать форму ввода даты, например ? или просто свой собственный абстрактный инпутбокс. да мало ли что вобщем, ясно всем спасибо, товарищи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 03:45 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
--Eugene--я же это отлично понимаю. но при чем тут именно логин ? а если я хочу показать форму ввода даты, например ? или просто свой собственный абстрактный инпутбокс. да мало ли что вобщем, ясно всем спасибо, товарищи Пожалуйста, но Login является хорошим примером, так как запускается, как правило, в самом начале работы приложения, когда еще приложение полностью не "раскрутилось". А во всех других вариантах, диалоговая форма является "подчиненной" какой то другой формы и я использую передачу параметров в диалоговую форму ссылку на главную (THISFORM) и (или) PRIVATE (не PUBLIC) переменные. С уваженем, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 08:12 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Hi All! 2 Aleksey Передавать ThisForm - это жёстко себя привязывать к формам - предпочитаю (если уж это действительно надо) передать ссылку на Thisform в свойстве ParameterObject-а, а заодно возможно и ссылку на контрол откуда идёт вызов подчинённой формы. Подчёркиваю - ЕСЛИ ЭТО НУЖНО - обычно у меня вызываемая форма не знает ничего о вызывающем её коде, и тем более не делает предположений насчёт того что будет передана форма, или ссылка на контрол... Хотя принципиальной разницы в том что форма или контрол сами служат в качестве ParameterObject (а не отдельный объект) нету. Как уже замечено это позволяет вызывать форму из prg (там то по любому придётся создать объект - прочём IMHO Custom для этого лучше подходит чем Form - а в свежих версиях фокса там в вовсе Empty есть). Также проще работать с "несохраняемым" ParameterObject - т.е. отработала вторая форма, мы получили что хотели и объект уничтожился - а так все данные останутся в свойствах Form... Кстати удалить свойство штатным образом можно стало только начиная с VFP8. Насчёт добавления методов не понял - зачем это надо, и чем тут Form выигрывает по сравнению с Custom (ну точнее классы от них производняе конечно) - если метод есть, его можно вызвать, если же его нету, то ни о каком "добавлении метода" речи не идёт. Кстати для уточнения - scx форма - это особого рода подкласс (правда с рядом ограничений по сравнению с vcx, и с "довеском" в виде "встроенного" DE Object - который кстати ведёт себя не совсем вменяемо - например его метод OpenTables зачем-то вызывается до Init - и вообще есть масса нюансов с DE который в scx форме живёт) - так что некорректно говороить о том, что эта форма есть нечто "базовое". Кстати использование goApp в качестве "точки вызова" формы Login по сути мало отличается от main.prg методы goApp можно рассматривать как общедоступные процедуры, а его свойства как Public переменные (со всеми вытекающими из этого нюансами использования). 2 --Eugene-- Неважно где будет "создаваться" значение свойств - т.е. у тебя по закрытию формы (кнопка, "крестик" и т.п.) нужно лишь установить какие-то свойства формы и всё. И т.к. у тебя в форме в Init была строка This.Show(1) - то управление вернётся в Init (это трюк конечно, но он вполне работает) - и можно будет присвоить значения параметрам переданным по ссылке. Я не призываю так делать, но это вполне возможно. Насчёт VarType+Isnull - да, это избыточно, но если заменить это нa Type+Isnull - то будет в самый раз! Дело в том, что Vartype (oSomeObject.oSomeProperty) - может вызвать ошибку - если собственно объекта oSomeObject не существует - тогда как TYPE() ошибки поглощает, что весьма удобно - НО Type имеет проблему - он возвращает "реальный" тип - т.е. если у тебя была где-то ссылка на объект, скажем форму, а потом ОБЪЕКТ уничтожили (ссылка при этом зануляется автоматом) - то ТИП остаётся "O" - несмотря на то, что "значение" там будет .NULL. Обходят это второй проверкой через Isnull, или "усложнив" проверку в Type скажем так: Type("oSomeObject.oSomeProperty.Name") = "C" - ну или проверив иное гарантированно имеющееся у соответствующего объекта свойство (если оно есть, значит и объект жив). 2 Владимир&Aleksey Я считаю что как раз ТАК делать и не стоит - что текое форма - это элемент UI - сегодня это одна форма, завтра другая, послезавтра третья - а вот логика авторизации - это отдельная вещь - причём она также может меняться много раз - НЕЗАВИСИМО от изменения формы ввода (сегодня в DBF храним логин и пароль - завтра на SQL сервере, или просто способ хэширования пароля поменяли, или ещё что) - и я бы ни в коем случае не советовал "совмещать" эти 2 вещи. Форма ввода должна... ввести данные и вернуть их в точку вызова - т.е. быть не более "навороченной" (не в плане UI конечно - там можно хоть радугу и фанфары сделать? или чтоб она подпрыгивала и пританцовывала при наборе) чем Inputbox() - а уже в точке вызова и должен проходить анализ - при этом конечно это должен быть метод класса goApp, или отдельный объект... А саму форму можно оставить висеть на время проверки, выведя туда прогрессбар или анимацию или ещё чего - но всё-же разделить 2 задачи (UI и собственно авторизацию) стоит. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 01:08 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Hi All! 2 Aleksey Передавать ThisForm - это жёстко себя привязывать к формам - предпочитаю (если уж это действительно надо) передать ссылку на Thisform в свойстве ParameterObject-а, а заодно возможно и ссылку на контрол откуда идёт вызов подчинённой формы. Подчёркиваю - ЕСЛИ ЭТО НУЖНО - обычно у меня вызываемая форма не знает ничего о вызывающем её коде, и тем более не делает предположений насчёт того что будет передана форма, или ссылка на контрол... Хотя принципиальной разницы в том что форма или контрол сами служат в качестве ParameterObject (а не отдельный объект) нету. У меня как раз все наоборот. Как правило (за очень редким исключением), диалоговые формы не универсальные, и "ЗНАЮТ" (в том числе и через передаваемую ссылку), что за форма ее вызывает. Igor Korolyov Насчёт добавления методов не понял - зачем это надо, и чем тут Form выигрывает по сравнению с Custom (ну точнее классы от них производняе конечно) - если метод есть, его можно вызвать, если же его нету, то ни о каком "добавлении метода" речи не идёт. Я имел в виду, что через ссылку на вызывающую форму я могут использовать ее методы в диалоговой, чтобы не дублировать их. Igor Korolyov Кстати использование goApp в качестве "точки вызова" формы Login по сути мало отличается от main.prg методы goApp можно рассматривать как общедоступные процедуры, а его свойства как Public переменные (со всеми вытекающими из этого нюансами использования). А в чем проблема использование PUBLIC переменных с "широко известными" всем объектам программы именами, на которые можно ссылаться из любого места приложения, в том числе и из FRX файлов, меню и пр. У меня в приложении всего два таких PUCLIC объекта: oApp и oError (обработчик ошибок). И ничего плохого в том, что они PUBLIC я не вижу. Опасность использования таких объектов не том, что они PUBLIC,а в бесконтрольном их создании. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 09:15 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
я нашел-таки легкий выход из сложившейся ситуации. в форме диалога делаю следующее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 11:21 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
CLEAR EVENTS написши в дестрой напиши а из кликов кнопок убери а в кликах вместо напиши thisform.release() какое-то шаманство творишь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 11:31 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
точно.. о дестрое я как-то не подумал.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 11:43 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Как вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 12:12 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
2 Maltsev Max а если крестиком закрыли ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 12:22 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Привет --Eugene-- а если крестиком закрыли ? form.controlbox=.f. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 12:55 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
valeryka привет, у тебя метод прям как у хирурга-онколога шучу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 13:00 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
http://forum.foxclub.ru/read.php?32,177198,177219#msg-177219 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 13:01 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
valeryka а если крестиком закрыли ? form.controlbox=.f.ну ты прям как oldschool программер, начавший еще в далеком прошлом с FPW2.6 так нельзя с юзерами обращаться. они тоже люди ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 13:14 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
PaulWisthttp://forum.foxclub.ru/read.php?32,177198,177219#msg-177219я в курсе про QueryUnload(). но она же не вызывается при релизе(). дублировать код подтверждения закрытия формы в релизе() и в QueryUnload() ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 13:18 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- PaulWisthttp://forum.foxclub.ru/read.php?32,177198,177219#msg-177219я в курсе про QueryUnload(). но она же не вызывается при релизе(). дублировать код подтверждения закрытия формы в релизе() и в QueryUnload() ? Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 13:46 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- valeryka а если крестиком закрыли ? form.controlbox=.f.ну ты прям как oldschool программер, начавший еще в далеком прошлом с FPW2.6 так нельзя с юзерами обращаться. они тоже люди это почему? у меня на каждой форме есть кнопка с дверью и типсом ВЫХОД.. а крестики заблочены.. патамучто я так хочу.. так сказать проверки юзерофф на сообразительность.. заметил странную весчь.. несмотря на наличие двери все норовят в окно.. ой на крест закрывать.. вот оно лекционное = "окна в виндовозе закрываются на крест" но ниче потыкался на крестне зукрывается - вишь и кнопку с дверями увидел.... не знаю почему - но после такого создается впечатление, что рядовые пользователи - не люди а роботы - сказали на крест - записал в память и везде крест ищет...., а кнопка ВЫход как-то не видна.. странно это все.. думать умеют? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 13:51 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Привет Алекс! у тебя метод прям как у хирурга-онколога А ТО! Не позволяйте пользователям баловаться, на кнопуньки давить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 13:54 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
фдуч11100CLEAR EVENTS напиши в дестрой, а из кликов кнопок убери. а в кликах вместо напиши thisform.release()хм, ввел-таки меня в заблуждение. в этом случае получается, что : Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 13:59 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Да, так их и по кумполу им по-кумполу а недавно Влад Колосов предложил формочку бегающую нарисовать юзер тычит в кнопку, а она от него убегает во прикольно "Вдруг из маминой из спальни кривоногий и хромой ... " шучу "ну и шутки у Вас ..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 13:59 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
сейчас нарисую по-позже выложу положите юзерам интересно прибьют??? или посмеются??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 14:01 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
хм, ввел-таки меня в заблуждение. в этом случае получается, что : а ты мой золотой костыль юзай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 14:02 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
ffffffff____а крестики заблочены.. патамучто я так хочу.. думать умеют?твоя должность - программист. человек интелектуального труда. тот, кто облегчает людям жизнь. - это раз. стандарты пользовательского интерфейса - они для того и сделаны, чтобы юзер всегда на интуитивном уровне знал куда тыкать. а ты обламываешь им всю интуицию (кстати с легкой руки чуваков из Visual FoxPro Team) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 14:16 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33507493&tid=1592454]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
165ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 491ms |

| 0 / 0 |
