|
|
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
я работаю с 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 того объекта необходимое значение. форма отрабатывает, релизится, а объект остается. теперь я могу узнать значение ! люди, но это же бред, делать такие вещи ради того, что должно работать само, а не работает, мать его. подскажите более простой способ, но без использования (глобальных) переменных, пожалста спасибо заранее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 07:50 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 09:20 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
хм, этот способ очень хорош, но только в том случае, если я работаю с классами форм. но как быть, если политика партии такова, что мне приходится иметь дело с SCX файлами ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 10:50 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
А зачем PUBLIC переменные!?. Достаточно PRIVATE, определенные в том методе, который вызывает диалоговую форму. Глянь мой пример тут: http://www.caws.atnet.ru/vfox/vfox-sql6.html, метод AddNew С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 10:54 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
может не в тему.. но как-то надо было с формы передать значения 5-ти текстбоксов.. сделал просто При выгрузке формы пишется SELECT Text1 AS Param1, Taxt2 AS Param2... INTO CURSOR MyCursor и все... при закрытии этой формы курсор остался и делай с его значениями, что угодно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 11:01 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
do form with par1,par2,par3 (так только в форме будут видны, но не вернутся) do form with @par1,@par2,@par3 (эти назад вернутся) в форме в ините lparam tpar1,tpar2,tpar3 затем им где нить присваивай tpar1=.. tpar2=... tpar3=... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 11:19 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
alex11100 do form with @par1,@par2,@par3 (эти назад вернутся) 1 версия? 2 есть в документации (в 5-6-7 не нашел) или методом проб найдено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 11:34 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
???? читайте, там все написано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 11:50 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 01:09 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Aleksey-KА зачем PUBLIC переменные!?. Достаточно PRIVATE, определенные в том методе, который вызывает диалоговую форму.если речь идет о строке Код: plaintext и это только одна (1) бага. а их там пруд пруди, если копнуть глубже. чего только PageFrame стоит, мать его alex11100 Код: plaintext 1. 2. 3. Igor KorolyovЧтобы "показать" форму в отсутствие главного окна её пришлось сделать AsTopLevel - так? А теперь почитай хелп про AsTopLevel+Modal - коротко говоря модальность в этом случае игнорируется. Так что у тебя абсолютно нормальный случай НЕмодальной формы. нет, я делаю ее (InTopLevelForm или InScreen) + Desktop=.T. Form::Desktop - хорошее свойство Igor Korolyov я например тоже параметры в форму передаю (и получаю обратно) при помощи паттерна ParameterObjectзначит не один я очередной раз придумал велосипед с квадратными колесами.. это воодушевляет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 04:09 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov ... Кстати такая функциональность у меня прописана сразу в базовом классе формы - у меня ЛЮБОЕ взаимодействие вызывающего кода с вызываемой формой происходит при помощи ParameterObject .... Какой смысл создавать специальный объект-посредник для передачи параметров в диалоговую форму. Чем для этого плоха сама вызывающая форма. Кто вам при вызове диалоговой форму мешает передать ссылку на вызывающюю и затем в конструкторе модальной: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 1. Имеете доступ во всем курсорам главной формы (DataSession у них равны) 2. Через ссылку THISFORM.P_Form имеете доступ ко всем свойствам вызывающей формы. Тем более, как вы сами заметили, свойства можно добавлять (и, кстати, удалять) динамически. В том числе и в вызывающую (не модальную) форму. С уважением, Алексей P.S. Кстати, методы вы добавлять в свой Proxy-объект динамически не можете, а я могу через ссылку на вызывающую форму, использовать и ее методы в модальной форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 09:11 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- если речь идет о строке Код: plaintext и это только одна (1) бага. а их там пруд пруди, если копнуть глубже. чего только PageFrame стоит, мать его Ну, допустим, в VFP тоже етсь область видимости переменных (LOCAL, PRIVATE, PUBLIC) и она тоже имеет огромное значение. Или вы все свои переменные оформляли в виде PUBLIC? Насчет указателей. Они тоже есть в VFP и активно используются. В моем примере, которые вы привели как раз и используются указатель на вызывающюю форму (THISFORM) для того, чтобы модальная форма могла через этот указатель использовать свойства и методы вызывающей формы (например ее DataSession и положения относительно _SCREEN). В VFP тоже считается дурным тоном иметь "связку между программными можулями через переменные" (и тем более, через PUBLIC). Но вызов модальной формы из главной - это никак нельзя назвать, как связь между програмными модулями. Вот вместе они составляют программный модуль. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 09:25 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Aleksey-K Igor Korolyov ... у меня ЛЮБОЕ взаимодействие вызывающего кода с вызываемой формой происходит при помощи ParameterObject .... Какой смысл создавать специальный объект-посредник для передачи параметров в диалоговую форму. Чем для этого плоха сама вызывающая форма. Кто вам при вызове диалоговой форму мешает передать ссылку на вызывающюю и затем в конструкторе модальной...да ? а если я вызываю форму из PRG файла ? это вам не шубу в трусы заправлять (пардон) Aleksey-KP.S. Кстати, методы вы добавлять в свой Proxy-объект динамически не можете, а я могу через ссылку на вызывающую форму, использовать и ее методы в модальной форме.странно, а разве вообще можно "добавлять" методы динамически ? а если речь идет об использовании существующих методов формы, переданной по ссылке в вызываемую, то оно, конечно, хорошо, но, опять же, как быть, если "вызывающей" формы нет, а "вызываемая" форма запускается в PRG файле. например, в main.prg происходит DO FORM Login.scx ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 09:37 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
--Eugene--? а если я вызываю форму из PRG файла ? это вам не шубу в трусы заправлять (пардон) Я бы вам советовал: 1. Отказаться от использования VFP и вернуться назад на PASCAL, DELPTHI и пр. Там у вас, очевидно, получалось лучше и с шубами и с трусами. 2. Сменить тон. 3. Отказаться от вызова формы Login из главного программного модуля. (это уже по существу). Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 09:45 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
прошу прощения, если вас задела пара слов не по существу Aleksey-KЯ бы вам советовал отказаться от вызова формы Login из главного программного модуляа как вы себе представляете запуск диалога входа если не в главной программе ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 09:58 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Обычную форму можно заставить вести себя как класс local loFrm Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 10:16 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
--Eugene--прошу прощения, если вас задела пара слов не по существу Aleksey-KЯ бы вам советовал отказаться от вызова формы Login из главного программного модуляа как вы себе представляете запуск диалога входа если не в главной программе ? Ну, например, главная программа тоже реализован как класс, объект которого создается в MAIN.PRG и для входа в систему (после успешного создания экземпляра этого класса), просто вызывается соответствующий метод этого объекта, например Login, а у объекта есть свойства: User_Login, User_Password и еще все, что вашей душе угодно. Может вам поможет мой пример: http://www.caws.atnet.ru/vfox/vfox-sql.html С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 10:26 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
CripОбычную форму можно заставить вести себя как класс local loFrm Код: plaintext 1. ясно. или передавать в Инит названия переменных, заранее определенных для возвращения результатов или использовать фиктивный объект в качестве посредника.. жаль, что нет нормального способа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 10:32 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Aleksey-KНу, например, главная программа тоже реализован как класс, объект которого создается в MAIN.PRGспасибо за пример. а можно ли как-то перегрузить класс приложения и сделать свой, из которого будет получаться объект Application ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 10:39 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 10:47 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
alex11100 Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 12:44 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
и чта дальша??? этоть мой золотой костыль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 12:54 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Вообще-то, я не понял самой постановки задачи. Форма ввода логина и пароля ЧТО должна сделать? Я всегда считал, что эта форма дает пользователю ввести 2 значения и по нажатию кнопки Ok делает вывод о допустимости или не допустимости дальнейшей работы этого пользователя. Т.е. эта проверка делается ВНУТРИ формы, а вовсе не в основной программе. Ну, или как минимум, из этой формы организуется вызов внешней процедуры проверки. Другими словами, ЧТО предполагается возвращать из этой формы? Какой смысл в этом самом возвращаемом значении? Значит, логика работы совершенно другая. Эта форма вообще ничего не возвращает, а только САМА принимает решение: продолжить дальнейшую работу с программой или завершить. Следовательно код главной программы будет примерно таким: Код: plaintext 1. 2. 3. 4. В событии UNLOAD формы Login.scx дается примерно такой код: Код: plaintext 1. 2. 3. 4. 5. ВСЕ! Какие еще возвращаемые значения? Если в этой форме делаются какие-то глобальные настройки, то они именно глобальные. Т.е. присваиваются глобальным переменным или глобальному объекту. Опять нет смысла в возвращаемых значениях. К сведению : Если в модальной форме дать команду ThisForm.Hide(), то форма скроется и выполнение программы продолжится со следующей после команды DO FORM команды. Т.е. с модальными формами можно работать так: Код: plaintext 1. 2. 3. 4. 5. В данном случае, заголовок окна формы будет прочитан если форма будет закрыта командой ThisForm.Hide(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 13:58 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- там что про изнул то было типа нашел у меня глюк??? нехорошо - дяденьку обидел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 14:28 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
2 alex11100 :) ВладимирМВообще-то, я не понял самой постановки задачи. Форма ввода логина и пароля ЧТО должна сделать? Я всегда считал, что эта форма дает пользователю ввести 2 значения и по нажатию кнопки Ok делает вывод о допустимости или не допустимости дальнейшей работы этого пользователя... Другими словами, ЧТО предполагается возвращать из этой формы? Какой смысл в этом самом возвращаемом значении?не вдавайтесь в подробности, да Бог знает, что там на форме делается. разве только логин может там быть ? ВладимирМ К сведению : Если в модальной форме дать команду ThisForm.Hide(), то форма скроется и выполнение программы продолжится со следующей после команды DO FORM команды. Т.е. с модальными формами можно работать так: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 14:42 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- фдуч11100CLEAR EVENTS напиши в дестрой, а из кликов кнопок убери. а в кликах вместо напиши thisform.release()хм, ввел-таки меня в заблуждение. в этом случае получается, что : Код: plaintext 1. 2. 3. 4. И правильно. Просто народ тебя не понял. Ты послал "куда подальше" вообще всю идеологию программирования. А совет тебе давали исходя из того, что ты все-таки этой идеологии придерживаешся. Хочешь идти "своим путем"? Да пожалуйста! На FoxPro можно еще и не такое "чудо" сотворить. Вот, программку пенсионного фонда, например... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 14:27 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
а фдуч11100 по-англицки будет alex11100 во как а я всех перехитрил шучу корябки не туда тыкают так все БАРДАК все ПЛОХО делается все намного проще зачем вообще там read even если засвечивается модальная форма???? какие ивенты в фоксе могут быть если форма модальная ???? зачем лису мучаете ??? алгоритм такой должен быть старт прг код идет DO FORM login NAME login if type("login")=="O" and !isnull(login) if empt(login.islogin) myquit() endif else myquit() endif дальше код read even myquit() *********** proc myquit() ... quit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 14:37 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- ffffffff____а крестики заблочены.. патамучто я так хочу.. думать умеют?твоя должность - программист. человек интелектуального труда. тот, кто облегчает людям жизнь. - это раз. стандарты пользовательского интерфейса - они для того и сделаны, чтобы юзер всегда на интуитивном уровне знал куда тыкать. а ты обламываешь им всю интуицию (кстати с легкой руки чуваков из Visual FoxPro Team) не ну я же не говорю, что я ПРАВ меняя стандарты.. но мне почему-то хочется чтобы все чуток думали, а не тупо "вот в школе сказали, что на крест и фсе!!!" получается человек тупеет что ли??? рассказ такой как-то был Азимова.. тема = в будущем люди не учатся а ложатся на денек в клинику и им в голову вгонятю с пленок знания... класс.. только вот беда - прогресс ушел через пяток лет - знания устарели, а новые получить они не знают как.... название рассказа запамятовал... quot --Eugene--][ а ты обламываешь им всю интуицию (кстати с легкой руки чуваков из Visual FoxPro Team)[/quot] вот это не понял... ты хочешь сказать, что заблочить крестик можно тлько в фоксе что ли??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 14:38 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
alex11100делается все намного проще зачем вообще там read even если засвечивается модальная форма???? какие ивенты в фоксе могут быть если форма модальная ???? зачем лису мучаете ??? Вся проблема в том, что --Eugene-- на момент открытия окна логина делает основную форму невидимой (_SCREEN.Visible = .F.). Как следствие, любая модальность игнорируется и форма получается НЕ модальной. По сути, --Eugene-- хочет использовать процедурный подход программирования в ситуации, когда процедурный подход заведомо не применим. Вот и мучается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 14:43 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Вся проблема в том, что --Eugene-- на момент открытия окна логина делает основную форму невидимой (_SCREEN.Visible = .F.). Как следствие, любая модальность игнорируется и форма получается НЕ модальной. я делаю фсе на топ-левел формах.. и 1-я логин.. и никаких проблем... а он мучается.. зачем??? потому что ему основное окно фокса нравится? а мне вот не нравится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 14:51 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
alex11100зачем вообще там read even если засвечивается модальная форма????а затем, что если SCREEN=OFF, то у твой код не проканает. форма пролетит и все. поетому надо писать READ EVENTS, чтобы ее "завесить". короче, если главного окна нет, то модальность теряется, мать ее. alex11100зачем лису мучаете ???это я-то оказывается живодер ??? да ёбтеть, эта лиса мне уже по ночам снится, чтоб ее волки съели ! ! ! ffffffff____вот это не понял... ты хочешь сказать, что заблочить крестик можно тлько в фоксе что ли???нет. я хочу сказать, что из-за того, что фокс мягко говоря баговое средство разработки, многие софтины из-под него можно отличить на первый же взгляд. по их косячности и порой гратескной неинтуитивности интерфейса. ВладимирМПо сути, --Eugene-- хочет использовать процедурный подход программирования в ситуации, когда процедурный подход заведомо не применим. Вот и мучается...а все почему? а потому, что вижуал фокс является генетическим мутантом досового фокса и виндовозных надстроек на него. нет, сами подумайте, это же не я придумал команду DO FORM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 14:55 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- ffffffff____вот это не понял... ты хочешь сказать, что заблочить крестик можно тлько в фоксе что ли???нет. я хочу сказать, что из-за того, что фокс мягко говоря баговое средство разработки, многие софтины из-под него можно отличить на первый же взгляд. по их косячности и порой гратескной неинтуитивности интерфейса. Это твое ИМХО надо сказать Отличить кстати можно исключительно из-за того, что ты работаешь в окне форкса и фсе... Неинтуитивность - это что???? что это??? если на форме есть кнопка = ВЫХОД какая тут нужна интуитивность-то??? надо думать разве???? (см картинку кстати.. на чем писано?) --Eugene-- ВладимирМПо сути, --Eugene-- хочет использовать процедурный подход программирования в ситуации, когда процедурный подход заведомо не применим. Вот и мучается...а все почему? а потому, что вижуал фокс является генетическим мутантом досового фокса и виндовозных надстроек на него. нет, сами подумайте, это же не я придумал команду DO FORM Это не он мутант, это ты просто начал с досовского и не можешьпереучиться... я тоже долго не мог.. а Ду Форм чем плох-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 15:12 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
ой мне нравится логики никакой ни тебе многовалютности ни тебе нифига а тут сидишь как остолоп Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. все пойду к руководителю проекта мозги промою ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2006, 15:17 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Hi Aleksey! > У меня как раз все наоборот. Как правило (за очень редким исключением), > диалоговые формы не универсальные, и "ЗНАЮТ" (в том числе и через > передаваемую ссылку), что за форма ее вызывает. Ага, а потом появится форма с PageFrame или просто с 2-мя контейнерами-гридами откуда нужно вызывать этот диалог... А он то к форме привязан, её методы дёргает - вот и приплыли... Нет ну можно конечно победить - нагородить кода в этих методах которые диалог вызывает, определять а откуда ж он был вызван и т.п. Мне это не кажется удобным. > Я имел в виду, что через ссылку на вызывающую форму я могут использовать > ее методы в диалоговой, чтобы не дублировать их. А я имел в виду, что у ParameterObject тоже вполне могут быть свои методы, а также явно написал, что если уж надо, то в свойства ParameterObject можно поместить ссылку и на ThisForm (получим всё то-же что и у тебя), и ссылку на This или This.Parent (получим доступ к тому кто вызвал диалог - или его контейнеру, вдруг вся логика там)... Так что не убедил - продолжаю читать что у меня подход гибче и ширше - а твой он включает как "подвид" :) > А в чем проблема использование PUBLIC переменных с "широко известными" > всем объектам программы именами, на которые можно ссылаться из любого > места приложения, в том числе и из FRX файлов, меню и пр. Никаких проблем! Всё очень хорошо - пока не начинаешь их использовать не по назначению - напимер для передачи/возврата параметров :) > У меня в приложении всего два таких PUCLIC объекта Ну примерно так-же, хотя вполне можно "спрятать" их внутрь системного _SCREEN например... Т.е. сделать свойством - и тогда DISPLAY MEMORY покажет кристальную чистоту проекта от всяких PUBLIC переменных хотя они конечно есть. > Опасность использования таких объектов не том, что они PUBLIC,а в > бесконтрольном их создании. Я бы сказал что в использовании - создавать то вполне можно где угодно и как угодно - но вот использовать их при этом "правильно" практически невозможно. Т.е. это вопрос парадигмы программирования - надо чётко понимать что это такое и когда это приемлемо, а когда нет. Например передавать или принимать параметры через Public/Private переменные я считаю неприемлемо - за исключением "якобы передачи" их в SQLEXEC() или в тот-же отчёт - но тут вся соль в том, что на самом деле это никакая не передача - просто и эта функция и отчёт исполняются в контексте того кода который их вызвал - даже можно объявить переменные LOCAL а они тем не менее замечательно будут доступны и функции и отчёту... 2 --Eugene-- 1) Не кипятись - везде есть свои тараканы, фокс не исключение. 2) Гораздо чаще проблемы возникают не из за того что среда кривая, а просто из-за незнания :) 3) Если ты решил остановится на способе "без убиения формы" - т.е. чтобы потом обращаться к ней (к её свойствам) по ссылке - то просто напиши в QueryUnload две строчки как посоветовал Владимир - NODEFAULT предотвратит уничтожение формы по нажатию "креста", а вторая строка "переведёт" нажатие "креста" в нажатие твоей кнопки. И не слушай кошмарные советы по блокировке этого самого "креста" - заблокированный крест при одновременном наличии кнопки "Выход" - обычно признак того что программист просто не знает как правильно обрабатывать его нажатия. А рассуждения про "глупых пользователей привыкших к этому кресту" - скажем так сами по себе не очень умны... Напоминает чем-то пьяного водителя, который пытается доказать что ПДД придумали идиоты и для идиотов, а он слишком умный/крутой чтобы их соблюдать :) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2006, 23:53 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
ffffffffffffffffffНеинтуитивность - это что???? что это??? если на форме есть кнопка = ВЫХОД какая тут нужна интуитивность-то??? надо думать разве????Неинтуитивность - это как раз то, когда тыкаешь на крест, а он заблочен. и вроде ситуация обычная, а он заблочен. или когда пытаешься сдвинуть форму, а она не двигается. и вроде ситуация обычная, а она не двигается.. ffffffffffffffffff(см картинку кстати.. на чем писано?)а вот это интересно. колись, как нацепил скин. я бы тоже, наверное, попробовал ffffffffffffffffffты просто начал с досовского и не можешьпереучиться... я тоже долго не мог.. а Ду Форм чем плох-то?ду форм - это оператор, вызывающий форму. не увязывается он с ООП, хотя... вобщем, вопрос решен. пасиба, товарищи, ваша помощь порой неоценима ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 04:11 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- двигается.. ffffffffffffffffff(см картинку кстати.. на чем писано?)а вот это интересно. колись, как нацепил скин. я бы тоже, наверное, попробовал запросто.. поищи Vfpskin2_En.zip в и-нете... и цепляй там все просто.. кстати, я блокирую крест вовсе не потому, что не знаю как обработать его.. а именно из-за этих скинофф.. приходится во имя красивости жертвовать чем-то Дело в том, что в форме с нацепленным скином, при ее максимизации, минимизации, (закрытию по кресту - там нет проблем) скин себя несколько некрасиво ведет.. конечно код класса скина-то открытый.. по 1 комменты там написаны на Португальском 2 копать чужой код - увольте.. мне показалось вроще заблочить всю полоску стандартных кнопок в углу формы чем копать-копать-копать... конечно я не прав.. но мне так показалось проще, а конечному пользователь так или иначе по сути все равно... кнопку крест в конце концов я могу и разблочить, но при таком скине она и так незаметна посему.... Не серчайте на меня Игорь!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 10:11 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Hi ffffffffffffffffff! К скинам я отношусь отрицательно - они очень мало где уместны (с WinAmp я могу смириться, хотя "целится" в его UI элементы - это сущая мука, но если вдруг Word или собственно среда разработки фокса такими попсовыми будут - думаю это будет немеряно раздражать). Поэтому принять такую жертву ради сомнительного удовольствия видеть "впуклые и выпуклые" формы я бы не смог. Кроме того Closable = .F. отключает вполне стандартную реакцию окна на Ctrl+F4 - если работаешь с клавиатуры, то надо иметь комбинацию для закрытия окна - Ctrl+F4 стандартный вариант - для диалогов без большого ввода конечно и Esc подходит, но если по ESC отменяется "полуввод" в текстбокс - то для закрытия формы он уже не годится... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 02:54 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Hi ffffffffffffffffff! К скинам я отношусь отрицательно - они очень мало где уместны (с WinAmp я могу смириться, хотя "целится" в его UI элементы - это сущая мука, но если вдруг Word или собственно среда разработки фокса такими попсовыми будут - думаю это будет немеряно раздражать). Поэтому принять такую жертву ради сомнительного удовольствия видеть "впуклые и выпуклые" формы я бы не смог. Кроме того Closable = .F. отключает вполне стандартную реакцию окна на Ctrl+F4 - если работаешь с клавиатуры, то надо иметь комбинацию для закрытия окна - Ctrl+F4 стандартный вариант - для диалогов без большого ввода конечно и Esc подходит, но если по ESC отменяется "полуввод" в текстбокс - то для закрытия формы он уже не годится... Posted via ActualForum NNTP Server 1.3 я с Вами согласен - но писал учет рекламному агенству - тамошний дизайнер сказал - надо скині - ибо красиво... ну а потом я втянулся.. мне они не мешают.. с клавиатурі мі умеем работать - простіе юзері - сомневаюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2006, 12:21 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Hi ffffffffffffffffff! Хехе, если бы ты видел какие пассы вытворяют иногда пользователи с мышой :) Я бы сказал что это с мышой многие работать не могут (попасть на кнопку даже порой не могут, уж не говоря про DblClick), а с клавиатурой как-то попроще (кроме комбинаций клавиш конечно). Хотя чем дальше, тем меньше таких бедолаг остаётся, но всё ещё встречаются. А если вспомнить про несчастных обладателей ноутбуков - ведь тачпад это просто песня какая-то :( Ведь это жутко неудобная вещь - наверное лет пять надо только им и пользоваться чтоб хоть как-то научится управлять... Что касается скорости - так в "напряжённых" системах ввода просто невозможно пользователю быстро работать одновременно и с клавиатуры и мышой - постоянно дёргать руку между ними. Т.е. мысль такая, что вообще-то любая хорошо написанная программа должна обеспечивать работу и в случае "только с клавиатуры" - конечно исключения есть - например графика (рисование) или игры (но кстати тоже далеко не все)... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2006, 01:45 |
|
||
|
Как вернуть значение из модальной формы ?
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Hi ffffffffffffffffff! Хехе, если бы ты видел какие пассы вытворяют иногда пользователи с мышой :) Я бы сказал что это с мышой многие работать не могут (попасть на кнопку даже порой не могут, уж не говоря про DblClick), а с клавиатурой как-то попроще (кроме комбинаций клавиш конечно). Хотя чем дальше, тем меньше таких бедолаг остаётся, но всё ещё встречаются. А если вспомнить про несчастных обладателей ноутбуков - ведь тачпад это просто песня какая-то :( Ведь это жутко неудобная вещь - наверное лет пять надо только им и пользоваться чтоб хоть как-то научится управлять... Что касается скорости - так в "напряжённых" системах ввода просто невозможно пользователю быстро работать одновременно и с клавиатуры и мышой - постоянно дёргать руку между ними. Т.е. мысль такая, что вообще-то любая хорошо написанная программа должна обеспечивать работу и в случае "только с клавиатуры" - конечно исключения есть - например графика (рисование) или игры (но кстати тоже далеко не все)... Posted via ActualForum NNTP Server 1.3 конечно я с таким тоже встречался.. и это есть часть проблемы "ого сколько у меня окон открыто - не могу разобраться" Скины не мешают мне запретить работать с клавы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2006, 11:51 |
|
||
|
|

start [/forum/topic.php?all=1&fid=41&tid=1592454]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 502ms |

| 0 / 0 |
