Почему приложение выдает ошибку «У элемента управления нет родительского окна» после запуска в течение 3 недель? - PullRequest
2 голосов
/ 08 декабря 2011

Я запускаю приложение, разработанное под Windows 7, в Delphi XE на компьютере с Windows 7 около 3 недель без перерыва, но оно перестало работать после этого и выдает сообщение с сообщением «У элемента управления нет родительского окна. " После этого, похоже, ничего не работает прямо в программном обеспечении, если оно не выключено и не перезапущено.

У меня есть представление о том, что означает эта ошибка, но я пытаюсь выяснить. Почему?

Любые советы или предложения будут с благодарностью. Спасибо.

Ответы [ 2 ]

6 голосов
/ 08 декабря 2011

Признак утечки ресурса, окно обрабатывает скорее всего. Диагностика с помощью TaskMgr.exe, вкладка Процессы. Просмотр + Выбор столбцов и отметьте маркеры, объекты пользователя и объекты GDI. Следите за значениями для вашей программы, пока вы ее используете. Постоянное увеличение означает проблемы, Windows перестает давать больше после 10 000.

Если это не поможет, то улучшите обработку исключений, чтобы вы могли получить более точную диагностику, поэтому для диагностики проблемы важна трассировка стека.

4 голосов
/ 08 декабря 2011

Вам следует установить копию MadExcept, JclExcept или другой библиотеки обработки исключений, которая поддерживает отображение / запись стека вызовов при возникновении неперехваченного исключения (если вы не можете воспроизвести исключение во время работы внутри отладчика IDE, то есть).Затем вы можете выяснить, что ваше приложение пыталось сделать во время исключения, и, надеюсь, сузить его до той части кода, которая обращается к конкретному элементу управления пользовательского интерфейса, в котором отсутствует его родительское окно.

...