|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
В процессе работы программы вызывается внешняя форма Код: vbnet 1. 2. 3. 4. 5. 6.
Однако, при возникновении ошибки в форме управление передается в вызывающую программу, на экране "висит" форма и не понятно как ее закрыть. Еще хуже то, что дальше идет очистка среды формы - закрываются таблицы, библиотеки..... Кто-нить сталкивался с такой проблемой? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2020, 14:57 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
glamis, Вполне возможно чего то не знаю. Но что такое Код: sql 1.
Что вообще вы имели ввиду этими "TO" Изобретение собственного синтаксиса? И фокс не ругается? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 07:35 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
asdor, в хэлп загляни http://www.foxclub.ru/rhproject/project/html/a727f12a-4d9f-45ca-aa01-c1bea7de9749.htm TO VarName Указывает переменную для хранения значения, возвращаемого формой. Если переменная еще не существует, Visual FoxPro автоматически создаст ее. Используйте команду RETURN в процедуре события Unload формы для указания возвращаемого значения. Если вы не указали возвращаемое значение, то будет возвращено дефолтное true (.T.). Если вы используете TO, то свойство формы WindowType должно быть установлено в 1 (Modal). Если процедура события Init формы возвращает .F., экземпляр формы не будет создан,и процедура события Unload не вернет значения в VarName. glamis, думаю надо пример кода с демонстрацией ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 07:46 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
Dima T asdor, в хэлп загляни http://www.foxclub.ru/rhproject/project/html/a727f12a-4d9f-45ca-aa01-c1bea7de9749.htm%5DTO]http://www.foxclub.ru/rhproject/project/html/a727f12a-4d9f-45ca-aa01-c1bea7de9749.htm]TO VarName Сорян. И правда. Просто не использую модальных форм. Никогда. Потому конструкция вызвала удивление) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 07:58 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
Вопрос решил: помогла конструкция NAME: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
При штатном завершении isnull(&_vName)=.t. PS. макрос использую, тк в моем случае возможно рекурсивное использование ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 08:56 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
glamis макрос использую, тк в моем случае возможно рекурсивное использование Рекурсивное использование модальной формы? Ох... готовьтесь хлебнуть) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 20:03 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
asdor, Использую, давно и очень успешно. Только не надо понимать рекурсию как расчет факториала. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2020, 19:38 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
glamis PS. макрос использую, тк в моем случае возможно рекурсивное использование Тут достаточно объявить переменную как LOCAL ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 06:34 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
glamis asdor, Использую, давно и очень успешно. Вызов из одной модальной формы, другой, неизбежно приведет к "недоразумениям". Модальная форма, она потому и модальная, что кроме нее, больше ничего на экране не доступно. Вы же нарушаете этот принцип. И говорите что все ок. Ну-ну) Если же речь, об обычных формах, то конечно все в порядке, сколько угодно, но тогда вызов в первом топике, не верен. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 07:32 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
asdor Вызов из одной модальной формы, другой, неизбежно приведет к "недоразумениям". С чего вдруг? Например одна форма вызвала форму выбора из справочника, там вызвали форму добавления в справочник, там выбор из другого справочника и т.д. В чем криминал? Если использовать просто DO FORM, то проблем нет, а если код-обертку glamis`а, то будет проблема с используемыми переменными т.к. по умолчанию область видимости PRIVATE. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 07:46 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
Dima T В чем криминал? Криминала нет, если форма не модальная. В случае модальной первой, и последующих форм, регулярно происходит, не знаю каким образом, но модальная форма прячется за основную, основная недоступно, программа висит. Это основное что вспомнил. На фоксклубе обсуждали как то это. Не помню какие еще глюки. Кстати, трудно воспроизводимые при отладке. Но когда пользователей много, то это регулярно. Я просто отказался от модальных. Только messagebox))) В фреймвоке, реализовал "псевдомодальность". Т.е. при вызове, "псевдомодальной" формы, делаю недоступной вызывающую (enable=.f.) При закрытии, обратно все разрешаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 08:39 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
asdor Dima T В чем криминал? Криминала нет, если форма не модальная. В случае модальной первой, и последующих форм, регулярно происходит, не знаю каким образом, но модальная форма прячется за основную, основная недоступно, программа висит. Моя прога на 6 фоксе (учет товара в магазине) из только модальных форм отработала более 10 лет в ежедневном режиме на 20+ рабочих местах и ни разу не было ничего подобного. Нынче тоже использую модальные для ожидания ввода из справочников, только вызываю через Form.Show(1), тут тоже никогда не видел данной проблемы. Такую проблему я наблюдал, но причиной ее был вызов SetFocus() на контрол первой формы, вроде по таймеру на той же первой форме, может по событию какому-то, не помню. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 09:04 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
Dima T, Это не единственная проблема. Работает - повезло) Подход, в принципе, не верный. ИМХО. Но я бы, работающее, трогать не стал)))) вот навскидку, первое попавшееся http://forum.foxclub.ru/read.php?29,614664,page=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 10:47 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
asdor Это не единственная проблема. Работает - повезло) Подход, в принципе, не верный. ИМХО. Отчасти согласен, иногда работать с такой прогой не очень удобно, но писать в таком стиле проще. Той проги уже нет. В нынешних модальные вызовы свел к минимуму, но они есть. Сейчас у меня все формы немодальные, но если надо чтобы форма что-то вернула, и потом с этим чем-то дальше в коде надо работать, то тут я ее вызываю модально. В общем я криминалом модальные формы не считаю. asdor вот навскидку, первое попавшееся http://forum.foxclub.ru/read.php?29,614664,page=1 По ссылке похоже тот же старый косяк с фокусом, только фокус не явно в коде отправляется не туда, а с помощью свойств AllwaysOnTop, AllwaysOnBottom. К сожалению VFP9 дописывали быстро-быстро, а потом вообще забросили, поэтому не успели все косяки нормально устранить. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2020, 12:38 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
Dima T, У модальной формы есть одно, я считаю, главное преимущество - она управляет процессом. Переключиться из нее можно только туда, куда она разрешит (прописано в сценарии). Иначе - начинается бардак в работе пользователя. Мало ли что ему взбредет в голову... Видел я таких пользователей, которые чуть не экран пытались пододвинуть под курсор от мыши. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2020, 08:51 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
glamis Dima T, У модальной формы есть одно, я считаю, главное преимущество - она управляет процессом. Переключиться из нее можно только туда, куда она разрешит (прописано в сценарии). Иначе - начинается бардак в работе пользователя. Мало ли что ему взбредет в голову... Видел я таких пользователей, которые чуть не экран пытались пододвинуть под курсор от мыши. Нет такого преимущества. Модальная форма, останавливает ход программы, на своем вызове, и продолжает после ее закрытия. Я понимаю старье, нет смысла дорабатывать. Но новое так писать... Оглянитесь немного, на другие языки. Везде - модальность зло. Почти что паблик))) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2020, 20:47 |
|
Проблема с обработкой ошибки во внешней форме
|
|||
---|---|---|---|
#18+
asdor, Спор о преимуществах и недостатках метода не имеет смысла в отрыве от конкретики. Модальная форма живет по принципу - можно только то что разрешено, модлес - можно то что доступно. Кто сказал, что модал останавливает программу - модал переключает программу на исполнение конкретного действия. И только. Грубо говоря во время ввода наименования контрагента или его ИНН можно переключиться и начать ввод наименование номенклатуры. И не закончив с номенклатурой начать просматривать курс валют. Но зачем? Закончи с контрагентом, переключись на номенклатуру, и тд. Хотя никто не запрещает предусмотреть все эти возможности в модале. Главное не мода на тип формы, а конкретные потребности системы. В конце-концов в каждый конкретный квант времени человек делает какое-то одно действие. Вот и пусть сделает. А прога его подождет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2020, 09:30 |
|
|
start [/forum/topic.php?fid=41&msg=39995975&tid=1581525]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
143ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 234ms |
total: | 472ms |
0 / 0 |