|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.05.2009, 19:09 | #1 |
Новичок
Джуниор
Регистрация: 28.05.2009
Сообщений: 10
|
Не могу обработать исключение
В Builder кинул на форму TStringGrid, делаю нехитрые манипуляции, для того чтобы ячейка не подсвечивалась, но вследствии этого появляется проблема, если нажимать на колёсико мышки и вращать - вырабатывается исключение EInvalidGridOperation, но в блок try catch(...) я не попадаю и выдаётся сообщение от компонента, а нужно чтобы ничего не появлялось. Вопрос как?
try { Form2->ShowModal(); } catch(...) { } сам TStringGrid лежит на TForm2 |
28.05.2009, 19:46 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Среда билдера перехватывает все исключения. Либо настройки среды измените, либо запускайте прогу через проводник.
|
28.05.2009, 20:36 | #3 |
Новичок
Джуниор
Регистрация: 28.05.2009
Сообщений: 10
|
Да дело не в среде, это и так понятно, что билдер перехватывает исключение, но сообщение которое выдаётся явно не от билдера а от компонента, пытаюсь через отладчик убить этот диалог
|
29.05.2009, 16:07 | #4 |
Новичок
Джуниор
Регистрация: 28.05.2009
Сообщений: 10
|
тема открыта
|
29.05.2009, 16:51 | #5 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Цитата:
Разве что это не исключение, а MessageDlg просто кто-то вызвал. |
|
29.05.2009, 17:01 | #6 |
Новичок
Джуниор
Регистрация: 28.05.2009
Сообщений: 10
|
Я сам не поверил, оно вылетает и ещё как... Причём я успел понять, что там какие-то Delphi исключения или что-то типа того, не реагирует на них ни даже блок try в Application. Сидел под отладчиком, в ollydebugger,
там прям исключения посылаются kernel32.dll, потом чего-то ещё делается и опять туда же, но уже вылетает диалог с ошибкой, при попытке его не вызывать (махинации с асмом) вылетает сообщение либо access violation либо ничего, но параметры компонента TStringGrid сильно меняются в худшую сторону, пропадают столбцы и данные, а как перехватить - не знаю |
29.05.2009, 17:05 | #7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Приведите тут тогда код своих хитрых манипуляций и что именно нужно, а то может это меньшей кровью сделать можно
|
29.05.2009, 17:43 | #8 |
Новичок
Джуниор
Регистрация: 28.05.2009
Сообщений: 10
|
делаем так, чтобы выделения не было в стринг гриде
Код:
должно вылезти Grid Index out of range! мультиселект выключен у меня оно не обрабатывается в блоке try catch(...) Последний раз редактировалось Sazary; 29.05.2009 в 17:59. |
29.05.2009, 18:14 | #9 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Мда... Тогда уж лучше в обработчике OnSelectCell написать всего одну строку: CanSelect = false. Одно но: левая верхняя ячейка будет всегда выделена и как от этого избавиться я без понятия.
А исключение наверно делфийское и не ловится сишным кодом или еще какая глупость из-за смешивания паскаля с си в одном компиляторе |
29.05.2009, 19:51 | #10 |
Новичок
Джуниор
Регистрация: 28.05.2009
Сообщений: 10
|
вот и я мучился с этой ячейкой, напишут же компонент, так чтобы ничего нормально не оформить, пришлось лечить методом ondrawcell, но всё равно порой на доли секунды выделение проскакивает, по хорошему нужно переопределять обработчик рисования,но не хочется заморачиваться =)
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача на исключение строк в матрице | DRAG | Помощь студентам | 11 | 20.04.2011 21:31 |
Как обработать исключение? | XPAiN | БД в Delphi | 9 | 16.05.2008 15:09 |
Исключение EIdReadTimeout | Pedro | Работа с сетью в Delphi | 1 | 22.09.2007 22:51 |
Неуловимое исключение в Apro компонентах | Slaveg123 | Работа с сетью в Delphi | 0 | 01.07.2007 00:28 |