• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Delphi Выяснение, откуда было вызвано окно сообщения

  • Автор темы Автор темы Lomanu4
  • Дата начала Дата начала

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
Во время отладки приложения появляется окно сообщения, и мне нужно знать его происхождение - откуда в коде оно было вызвано? Поиск в кодовой базе строки сообщения может сработать, но сообщение может быть создано динамически, так что это определенно не сработает. Я склонен использовать следующую технику, чтобы добраться до исходной точки.

Прежде всего приостановите приложение с помощью пункта меню «Выполнить», «Приостановка программы» или аналогичной кнопки.

В этот момент вы можете подумать, что стек вызовов поможет, но, увы, нет. Как мы видим здесь, стек вызовов пуст:


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Однако важной частью информации здесь является то, что отладчик просматривает не тот поток с точки зрения того, что нас интересует Ctrl+Alt+T. at является последним в списке.


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Эта тема нам неинтересна. Нам нужен основной поток, UI-поток, который стоит первым в списке. Дважды щелкните этот первый поток, и стек вызовов сразу же пополнится множеством записей:


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Если вы сканируете сверху вниз, вы начнете видеть подозрительно выглядящие записи, связанные с работой окна сообщений, и в конечном итоге (и мы надеемся) вы придете к записям, связанным с вашим кодом. В приведенном ниже случае первая запись в «коде пользователя» (мой код) — это TForm2.Five. Если вы дважды щелкните эту запись, вы попадете в соответствующий код, а редактор выделит точку, к которой мы вернемся (после вызова) красным цветом (по умолчанию). Конечно, красная линия находится сразу после моего вызова ShowMessage.


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу