![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать место в коде, где происходит исключение? [D5]
lipskiy © (2002-06-16 01:17:00)Происходит эксепшен, место в коде компилятор не показывает. Как узнать это место?
Ошибка возникает стабильно при одних и тех же действиях - при перемещении сплиттера мышкой, в определенной точке - oops!
vlchel (2002-06-17 06:56:00) [1]Есть подозрение что дело именно в расчете координат (плохо разработан алгоритм пересчета размеров) при суммарной ширине полей менее чем какоето значение размер одного становится отрицательным а еще хуже нулевым. В таблице наверняка есть обработчик сообщения OnResize поработай с ним
lipskiy (2002-06-16 19:00:00) [2]
> В предполагаемом месте поставь BreakPoint и пошагово...
Предполагаемое место - здоровенный компонент, не мной писанный.
Ну и такой метод я конечно и сам всегда использую, ну тут - это невозможно, много завязано на графику.
> Я обычно ставлю вывод сообщения перед каким либо куском
> кода и после него, потом более мельче и так далее. Лучшего
> способа я не нашел.
Видимо так и придется делать, искать наощупь, это я тоже знаю, просто м.б. есть более быстрый способ, очень уж здоровый компонент, искать долго.
> Делфи останавливается при ошибке?
Останавливается, галка эта установлена.
> После остановки на ошибке вызови окно просмотра стека и
> поднимись повыше к функциям, которые ты писал.
Это я тоже пробовал - ни хрена не понятно по названиям, нет такого в коде.
> А можно по-подробнее, я не особый спец.
Вот подробнее.
Компонент - таблица GridView, на форме два ее экземпляра, разделенных горизонтальным сплиттером. При уменьшении одной из таблиц по размеру с помощью этого сплиттера при определенной высоте возникает ошибка. Ясно, что глючат какие-то вычисления размеров, координат и т.п. Нащупать то можно, не проблема, вопрос - можно ли это сделать быстро - просто сразу и однозначно?
NailS (2002-06-16 15:48:00) [3]Делфи останавливается при ошибке?
Если нет, то сходи в Tools/Debuger Options/Language Exception
и поставь галку Stop on delphi Exceptions.
После остановки на ошибке вызови окно просмотра стека и поднимись повыше к функциям, которые ты писал.
GOOFFY (2002-06-16 10:57:00) [4]Удалено модератором
BlackTiger (2002-06-16 10:51:00) [5]А можно по-подробнее, я не особый спец.
GOOFFY (2002-06-16 10:46:00) [6]Удалено модератором
BlackTiger (2002-06-16 10:44:00) [7]Сбой видимо происходит еще до НАПИСАННОГО кода, где-нибудь в инициализации об"екта.
Я обычно ставлю вывод сообщения перед каким либо куском кода и после него, потом более мельче и так далее. Лучшего способа я не нашел.
Сложнее с сервисами, но там я делаю то же самое, но сообщения вывожу в файл.
Может быть есть способы по-проще.
~Rand~ (2002-06-16 09:02:00) [8]Удалено модератором
Voldemar (2002-06-16 01:44:00) [9]В предполагаемом месте поставь BreakPoint и пошагово...