![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
Можно ли отвловить ошибку следующим образом. Допустим, я где-либо в среде программирования указываю, что в процессе работы программы мне нужно отследить изменение свойства Enabled у такой-то кнопки. Как это сделать??? Как сделать так, чтобы во время работы программы и при наступлении события (изменилось свойство Enabled у данной кнопки) выполнение программы прервалось и мне среда указала на строку, где это произошло???? Возможно ли это??? Мне просто нужно отладить довольно здоровую программу, а сам строчку не могу найти, которая мне нужна в коде. Спасибо за ответ.
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 3 Всего: 128 |
MacTep, можно отладить хоть 20000 строк, если знать, где искать. Сузьте поиск до какой-нибудь функции, в которой происходит ошибка.
Для отслеживания значений переменных используйте средство отладки Watch List. |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
Вот и именно. Я знаю, как пользоваться и Watch List и всем таким. А в том-то и дело, что я не вижу, каким образом в моем коде может смениться именно свойство enabled. Возможно, что оно меняется при смене свойства другого компонента, например, панельки. Поэтому и спрашиваю... Есть ли возможность отследить конкретно, когда сменилось значение. То есть не по шагам отлаживать, а на лету. Сменилось значение - прога остановила выполнение....
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
Хм, смена Enabled не генерирует события, так что найти его походу можно только Ctrl +F, F3.
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 7 Всего: 122 |
ну а если написать
и размножить этот текст в нужные места!!! |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
Вариант 1
у каждой записи в списке WatchList можно вызвать свое контекстное меню. И в этом контекстном меню есть пункт "Break when changed". Но этот пункт доступен только во время работы программы(т.е. до запуска приложения он неактивен), т.к. неизвестен ещё адрес, по которому будет размещается переменная, изменение которой нужно отследить. Вариант 2 При работе со списком breakpoint'ов(вызывается по Ctrl + B) в контекстном меню есть пункт Add с подпунктами
Установка Data breakpoint аналогична "Варианту 1". Только надо знать адрес. А Address breakpoint - для того же, что и "обычные" break'и(Source breakpoint), с тем отличием, что эти breakpoint'ы никак не связаны с исходным кодом(в смысле, адресу может не соответствовать конкретная строка исходного кода). |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
так же можно поставить опцию Use Debug dcu и поставить бряку в классе кнопки на SetEnabled....
-------------------- There are always someone smarter than you... |
|||
|
||||
| sw04 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 372 Регистрация: 22.1.2007 Где: Ufa Репутация: нет Всего: 18 |
Тогда лучше сделать глобальную переменную debug, например, булевую, чтоб при изменении его значения можно было показывать и не показывать информацию о дебаге(в нашем случае многочисленные showmessage). на практике просто надо проверять не только состояние кнопки, но и значение debug. -------------------- <удалено администрацией> |
||||
|
|||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
Спасибо! Попробую решить проблему.
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |