powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обработка ошибки из init формы
17 сообщений из 17, страница 1 из 1
Обработка ошибки из init формы
    #35489262
dval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть форма, в init которой прописана загрузка данных из таблицы. При возникновении ошибки загрузки мне надо обработать таблицу процедурой и вызвать init этой формы из той же процедуры или закрыть эту форму и do form ...
Ошибка обрабатывается, но потом из процедуры не могу вызвать метод init или закрыть форму, пока форма не активирована.
Как вызвать метод запущеной, но неактивированной формы или закрыть ее?
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35489307
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dvalКак вызвать метод запущеной, но неактивированной формы или закрыть ее?
В ините форма еще не запущена. Именно результат инита определяет "запущенность" формы. Отсюда следует, что достаточно вернуть из инита .f. и форма закроется не запустившись.
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35489653
dval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>что достаточно вернуть из инита .f. и форма закроется не запустившись.
Если из init вернуть .f., форма закрывается, а как это сделать?
Процедура обработки ошибки запускается из init, Return .F. в последней строке процедуры результата не дает.
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35489667
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В init формы:

if !MyFunc()
retu .f.
endif


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35490002
dval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибка обрабатывается, форма закрывается, вернее не инициализируется (спасибо!).
Только форму пришлось запускать с проверкой, если первый раз форма не грузится init=.f., еще раз do form ... А можно ли еще как запустить форму, из процедуры обработки ошибки, например, у меня не получилось.
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35490021
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dvalОшибка обрабатывается, форма закрывается, вернее не инициализируется (спасибо!).
Только форму пришлось запускать с проверкой, если первый раз форма не грузится init=.f., еще раз do form ... А можно ли еще как запустить форму, из процедуры обработки ошибки, например, у меня не получилось.
Может просто взять и сначала сделать загрузку данных и только потом запуск формы? Кстати, данны для форм лучше грузить в методе load, а не в init. Что-то с проектирование не того, все какие-то попытки чесать левой пяткой правое ухо.
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35490120
dval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данные грузятся в объект Activ-X в форме и в Load это не проходит:
o = THISFORM.oleTree.Nodes
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35490150
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvalОшибка обрабатывается, форма закрывается, вернее не инициализируется (спасибо!).
Только форму пришлось запускать с проверкой, если первый раз форма не грузится init=.f., еще раз do form ... А можно ли еще как запустить форму, из процедуры обработки ошибки, например, у меня не получилось.
Не понятно зачем запускать повторно если она не запустилась? Еще раз не запустится.

Если же есть какая-то процедура исправления ошибки автоматом, после которой форма запускается, то запускай исправление из инита и форму не закрывай.
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35490196
dval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Не понятно зачем запускать повторно если она не запустилась? Еще раз не запустится.

Если же есть какая-то процедура исправления ошибки автоматом, после которой форма запускается, то запускай исправление из инита и форму не закрывай.
После обработки ошибка повторно не возникает, а если пользователь открывает форму, то после сообщения об ошибке и необходимости исправления данных форму надо все-таки открыть (после обработки ошибки), а не предлагать еще раз открывать.
Ошибка обрабатывается
on error do ...
это отдельная процедура, а как еще можно по другому из инита ошибку обработать?
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35490212
dval Dima T
Не понятно зачем запускать повторно если она не запустилась? Еще раз не запустится.

Если же есть какая-то процедура исправления ошибки автоматом, после которой форма запускается, то запускай исправление из инита и форму не закрывай.
После обработки ошибка повторно не возникает, а если пользователь открывает форму, то после сообщения об ошибке и необходимости исправления данных форму надо все-таки открыть (после обработки ошибки), а не предлагать еще раз открывать.
Ошибка обрабатывается
on error do ...
это отдельная процедура, а как еще можно по другому из инита ошибку обработать?
У любого класса, в том числе и формы, есть метод Error.
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35490279
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvalэто отдельная процедура, а как еще можно по другому из инита ошибку обработать?
Про метод Error() тебе уже сказали, только у него побочный эффект в том что он все ошибки на форме перехватит (а не только в Init()), т.е. обработчик заданный по ON ERROR никогда не сработает.
Если VFP9 TRY ... CATCH
Можно из обработчика ошибок после успешной обработки сделать RETRY для повтора строки вызвавшей ошибку.
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35490307
dval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разницы никакой, что on error do, что error формы. Сначала хотелось как-то из процедуры обработки ошибки повторно запускать форму, потому и внешняя процедура.
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35490332
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dvalРазницы никакой, что on error do, что error формы. Сначала хотелось как-то из процедуры обработки ошибки повторно запускать форму, потому и внешняя процедура.
Да вот в этом " повторном запуске формы" основная ошибка. Форма или должна запуститься или не должна. В любом случае сама себя она запускать не должна. Где-то логическая ошибка в проектировании.
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35490494
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты лучше опиши что ты хочешь добиться и для чего. Тебе посоветуют.

А то "хочу, чтобы круг стал квадратом, скажите как сделать".


А потом выяснится что ты просто хочешь велосипед, но не догадываешься что на
круглых колесах удобнее.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35491980
dval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Galyamov Rinat
Ты лучше опиши что ты хочешь добиться и для чего. Тебе посоветуют.

Есть форма со списком в виде OleTree, данные в который грузятся из таблицы (в init формы). Этот список редактируется на изолированных ПК, затем данные периодически загружаются в общую таблицу. При объединении данных иногда бывает нарушение порядка, что при загрузке в OleTree дает ошибку 1429, которая исправляется отдельной процедурой. Обработка процедурой занимает время, ошибки бывают редко, поэтому постоянно при загрузке проверять на ошибки нецелесообразно.
Все, в принципе уже сделано, с вашей помощью.
Форма запускается, при наличии ошибки запускается обработка, форма не активируется (init формы возвращает .f.) и запускается вновь. Вызвать init второй раз без активации формы из процедуры обработки нельзя (retry не работает), другие методы для загрузки OleTree тоже не годятся (activate или gotfocus).
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35492264
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dval Galyamov Rinat
Ты лучше опиши что ты хочешь добиться и для чего. Тебе посоветуют.

Есть форма со списком в виде OleTree, данные в который грузятся из таблицы (в init формы). Этот список редактируется на изолированных ПК, затем данные периодически загружаются в общую таблицу. При объединении данных иногда бывает нарушение порядка, что при загрузке в OleTree дает ошибку 1429, которая исправляется отдельной процедурой.
А что мешает в ините обернуть наполнение дерева в TRY ... CATCH и в случае ошибки очистить дерево выполнить исправление и тут же повторить загрузку?
...
Рейтинг: 0 / 0
Обработка ошибки из init формы
    #35492475
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Два вопроса:

1
> При объединении данных иногда бывает нарушение порядка, что при загрузке в
> OleTree дает ошибку 1429, которая исправляется отдельной процедурой.
> Обработка процедурой занимает время, ошибки бывают редко, поэтому
> постоянно при загрузке проверять на ошибки нецелесообразно.

Что значит нарушение порядка????

Всем известно, что перед занесением дочерней ветки в treeview нужно занести
родительскую. Ну и обеспечь нужный порядок и контроль. Сначала заносим все
родительские, потом дочернии, потом внучатые и т.д.
Если появилась дочка, у которой нет родителя - обработали не дожидаясь, пока
treeview выкинет ошибку. Т.е. ПЕРЕД загрузкой данных в treeview мы их
ПОДГОТАВЛИВАЕМ.
В этом случае никакой ошибки просто не может возникнуть и такие вопросы не
будут появляться.


2
> Вызвать init второй раз без активации формы из процедуры обработки
> нельзя (retry не работает), другие методы для загрузки OleTree тоже не
> годятся (activate или gotfocus).


А из "процедуры обработки ошибки" разве нельзя вызвать метод "FillTreeview",
в который поместить код по добавлению данных в дерево и вынести туда весь
код из СОБЫТИЯ (обрати внимание, что это все таки не метод, а событие)
"init"? При наступлении события init тоже вызывать этот метод.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обработка ошибки из init формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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