Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
15.08.2008, 11:58
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
Есть форма, в init которой прописана загрузка данных из таблицы. При возникновении ошибки загрузки мне надо обработать таблицу процедурой и вызвать init этой формы из той же процедуры или закрыть эту форму и do form ... Ошибка обрабатывается, но потом из процедуры не могу вызвать метод init или закрыть форму, пока форма не активирована. Как вызвать метод запущеной, но неактивированной формы или закрыть ее? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 12:09
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
dvalКак вызвать метод запущеной, но неактивированной формы или закрыть ее? В ините форма еще не запущена. Именно результат инита определяет "запущенность" формы. Отсюда следует, что достаточно вернуть из инита .f. и форма закроется не запустившись. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 13:31
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
>что достаточно вернуть из инита .f. и форма закроется не запустившись. Если из init вернуть .f., форма закрывается, а как это сделать? Процедура обработки ошибки запускается из init, Return .F. в последней строке процедуры результата не дает. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 13:34
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
В init формы: if !MyFunc() retu .f. endif Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 15:06
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
Ошибка обрабатывается, форма закрывается, вернее не инициализируется (спасибо!). Только форму пришлось запускать с проверкой, если первый раз форма не грузится init=.f., еще раз do form ... А можно ли еще как запустить форму, из процедуры обработки ошибки, например, у меня не получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 15:11
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
dvalОшибка обрабатывается, форма закрывается, вернее не инициализируется (спасибо!). Только форму пришлось запускать с проверкой, если первый раз форма не грузится init=.f., еще раз do form ... А можно ли еще как запустить форму, из процедуры обработки ошибки, например, у меня не получилось. Может просто взять и сначала сделать загрузку данных и только потом запуск формы? Кстати, данны для форм лучше грузить в методе load, а не в init. Что-то с проектирование не того, все какие-то попытки чесать левой пяткой правое ухо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 15:40
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
Данные грузятся в объект Activ-X в форме и в Load это не проходит: o = THISFORM.oleTree.Nodes ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 15:51
|
|||
---|---|---|---|
Обработка ошибки из init формы |
|||
#18+
dvalОшибка обрабатывается, форма закрывается, вернее не инициализируется (спасибо!). Только форму пришлось запускать с проверкой, если первый раз форма не грузится init=.f., еще раз do form ... А можно ли еще как запустить форму, из процедуры обработки ошибки, например, у меня не получилось. Не понятно зачем запускать повторно если она не запустилась? Еще раз не запустится. Если же есть какая-то процедура исправления ошибки автоматом, после которой форма запускается, то запускай исправление из инита и форму не закрывай. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 16:06
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
Dima T Не понятно зачем запускать повторно если она не запустилась? Еще раз не запустится. Если же есть какая-то процедура исправления ошибки автоматом, после которой форма запускается, то запускай исправление из инита и форму не закрывай. После обработки ошибка повторно не возникает, а если пользователь открывает форму, то после сообщения об ошибке и необходимости исправления данных форму надо все-таки открыть (после обработки ошибки), а не предлагать еще раз открывать. Ошибка обрабатывается on error do ... это отдельная процедура, а как еще можно по другому из инита ошибку обработать? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 16:12
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
dval Dima T Не понятно зачем запускать повторно если она не запустилась? Еще раз не запустится. Если же есть какая-то процедура исправления ошибки автоматом, после которой форма запускается, то запускай исправление из инита и форму не закрывай. После обработки ошибка повторно не возникает, а если пользователь открывает форму, то после сообщения об ошибке и необходимости исправления данных форму надо все-таки открыть (после обработки ошибки), а не предлагать еще раз открывать. Ошибка обрабатывается on error do ... это отдельная процедура, а как еще можно по другому из инита ошибку обработать? У любого класса, в том числе и формы, есть метод Error. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 16:28
|
|||
---|---|---|---|
Обработка ошибки из init формы |
|||
#18+
dvalэто отдельная процедура, а как еще можно по другому из инита ошибку обработать? Про метод Error() тебе уже сказали, только у него побочный эффект в том что он все ошибки на форме перехватит (а не только в Init()), т.е. обработчик заданный по ON ERROR никогда не сработает. Если VFP9 TRY ... CATCH Можно из обработчика ошибок после успешной обработки сделать RETRY для повтора строки вызвавшей ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 16:38
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
Разницы никакой, что on error do, что error формы. Сначала хотелось как-то из процедуры обработки ошибки повторно запускать форму, потому и внешняя процедура. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 16:46
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
dvalРазницы никакой, что on error do, что error формы. Сначала хотелось как-то из процедуры обработки ошибки повторно запускать форму, потому и внешняя процедура. Да вот в этом " повторном запуске формы" основная ошибка. Форма или должна запуститься или не должна. В любом случае сама себя она запускать не должна. Где-то логическая ошибка в проектировании. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.08.2008, 18:02
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
Ты лучше опиши что ты хочешь добиться и для чего. Тебе посоветуют. А то "хочу, чтобы круг стал квадратом, скажите как сделать". А потом выяснится что ты просто хочешь велосипед, но не догадываешься что на круглых колесах удобнее. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.08.2008, 10:35
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
Galyamov Rinat Ты лучше опиши что ты хочешь добиться и для чего. Тебе посоветуют. Есть форма со списком в виде OleTree, данные в который грузятся из таблицы (в init формы). Этот список редактируется на изолированных ПК, затем данные периодически загружаются в общую таблицу. При объединении данных иногда бывает нарушение порядка, что при загрузке в OleTree дает ошибку 1429, которая исправляется отдельной процедурой. Обработка процедурой занимает время, ошибки бывают редко, поэтому постоянно при загрузке проверять на ошибки нецелесообразно. Все, в принципе уже сделано, с вашей помощью. Форма запускается, при наличии ошибки запускается обработка, форма не активируется (init формы возвращает .f.) и запускается вновь. Вызвать init второй раз без активации формы из процедуры обработки нельзя (retry не работает), другие методы для загрузки OleTree тоже не годятся (activate или gotfocus). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.08.2008, 12:14
|
|||
---|---|---|---|
Обработка ошибки из init формы |
|||
#18+
dval Galyamov Rinat Ты лучше опиши что ты хочешь добиться и для чего. Тебе посоветуют. Есть форма со списком в виде OleTree, данные в который грузятся из таблицы (в init формы). Этот список редактируется на изолированных ПК, затем данные периодически загружаются в общую таблицу. При объединении данных иногда бывает нарушение порядка, что при загрузке в OleTree дает ошибку 1429, которая исправляется отдельной процедурой. А что мешает в ините обернуть наполнение дерева в TRY ... CATCH и в случае ошибки очистить дерево выполнить исправление и тут же повторить загрузку? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.08.2008, 13:18
|
|||
---|---|---|---|
|
|||
Обработка ошибки из init формы |
|||
#18+
Два вопроса: 1 > При объединении данных иногда бывает нарушение порядка, что при загрузке в > OleTree дает ошибку 1429, которая исправляется отдельной процедурой. > Обработка процедурой занимает время, ошибки бывают редко, поэтому > постоянно при загрузке проверять на ошибки нецелесообразно. Что значит нарушение порядка???? Всем известно, что перед занесением дочерней ветки в treeview нужно занести родительскую. Ну и обеспечь нужный порядок и контроль. Сначала заносим все родительские, потом дочернии, потом внучатые и т.д. Если появилась дочка, у которой нет родителя - обработали не дожидаясь, пока treeview выкинет ошибку. Т.е. ПЕРЕД загрузкой данных в treeview мы их ПОДГОТАВЛИВАЕМ. В этом случае никакой ошибки просто не может возникнуть и такие вопросы не будут появляться. 2 > Вызвать init второй раз без активации формы из процедуры обработки > нельзя (retry не работает), другие методы для загрузки OleTree тоже не > годятся (activate или gotfocus). А из "процедуры обработки ошибки" разве нельзя вызвать метод "FillTreeview", в который поместить код по добавлению данных в дерево и вынести туда весь код из СОБЫТИЯ (обрати внимание, что это все таки не метод, а событие) "init"? При наступлении события init тоже вызывать этот метод. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&tablet=1&tid=1587374]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 313ms |
total: | 461ms |
0 / 0 |