![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Susel |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 27.3.2004 Репутация: нет Всего: нет |
Есть 2-а собственных компонента TMyPanel и TMyExtLookupEdit - наследники TPanel и TdxInplaceExtLookupEdit соответственно.
TMyPanel - связанные панели, т.е. есть ссылка (свойство такого же типа TMyPanel) на предыдущую панель PrevPanel и на следующую NextPanel. Для TMyPanel определена процедура:
Для TMyExtLookupEdit переопределена процедура DoExit таким образом, что в случае неверного ввода генерируется ошибка:
Есть форма содержащая MyPanel1 и MyPanel2. MyPanel1 содержит MyExtLookupEdit1. Форма имеет следующий код:
ShowNext и HideNext равносильны curPanel.NextPanel.Visible:=true и curPanel.NextPanel.Visible:=false соответственно. Проблема в том, что при возникновении ошибки (введено неверное значение в MyExtLookupEdit1) ошибка генерируется и сообщение об ошибке появляется, но управление не передается в блок except и следующая панель остается видимой. |
||||||
|
|||||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
значит исключение бросает не curPanel.ShowNext
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Susel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 27.3.2004 Репутация: нет Всего: нет |
В режиме трассировки ставлю точку остановки на curPanel.ShowNext в блоке try, нажимаю F8 - получаю ошибку, но управление блоку except не передается....
![]() |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
В режиме трасировки и при запуске из delpi исключения вызываются всегда - это не значит что програма работает с ошибками.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Susel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 27.3.2004 Репутация: нет Всего: нет |
alexeis1
Чёт не понял к чему это!? При запуске exe - ошибка также успешно генерируется, но следующая панель не исчезает! Это сообщение отредактировал(а) Susel - 13.1.2006, 17:44 |
|||
|
||||
ShadeSt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 256 Регистрация: 9.8.2005 Где: Россия, г. Ставро поль Репутация: нет Всего: 7 |
может быть такое что ты уже обрабатываешь эту ошибку..
Получается что у тебя есть ошибка при вызове DoSome, но в процедуре ShowNext ты не попадешь в блок Except. -------------------- It's nice to be importand, but it's more importand to be nice © Scooter |
|||
|
||||
Susel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 27.3.2004 Репутация: нет Всего: нет |
ShadeSt
Проверял, нет такого..... Да и как правило, если обрабатываю ошибки - ставлю raise, т.е. не подавляю сообщение об ошибке, как в твоем примере... |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ShadeSt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 256 Регистрация: 9.8.2005 Где: Россия, г. Ставро поль Репутация: нет Всего: 7 |
Тогда интересно в обработчике какого события ошибка и где ты ее потом хочешь поймать?
Вне этого обработчика что ли? -------------------- It's nice to be importand, but it's more importand to be nice © Scooter |
|||
|
||||
Susel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 27.3.2004 Репутация: нет Всего: нет |
_hunter
Передается следующей за блоком try...except инструкции....... |
|||
|
||||
ShadeSt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 256 Регистрация: 9.8.2005 Где: Россия, г. Ставро поль Репутация: нет Всего: 7 |
Если ты хочешь поймать тут ошибку, то надо чтобы она была в процедуре ShowNext. А исключение при неверном вводе, у тебя где?? в TEdit.OnExit? Это сообщение отредактировал(а) ShadeSt - 13.1.2006, 18:09 -------------------- It's nice to be importand, but it's more importand to be nice © Scooter |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
создай тестовый проект в котором просто кинь исключение и попробуй его поймать.
потом перенеси код в этот проект -- посмотри что будет. может ты обработку исключений отключил... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Susel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 27.3.2004 Репутация: нет Всего: нет |
Да, исключение можно сказать в OnExit (на самом деле в DoExit), но DoExit фактически вызывается в ShowNext, хотя и через сообщение винды......
Добавлено @ 18:34 _hunter В блоке try сгенерировал деление на 0 - except отработал, однако если деление на ноль генерирую в DoExit - управление блоку except не передается...... |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
значит где-то в ShowNext стоит свой обработчик.
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Susel |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 27.3.2004 Репутация: нет Всего: нет |
Ну нет там обработчика....нет.....
![]() Добавлено @ 19:16 Приведу больше кода:
|
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |