Программа зависает или останавливается при нажатии на всплывающее меню. (Функция) - PullRequest
0 голосов
/ 13 декабря 2011

У меня возникла проблема, когда при выполнении определенной процедуры для определенной формы программа зависает.

Я запускал это много раз в других областях программы без проблем.

Я обнаружил, что если я поставлю точку останова или ShowMessage до или после процедуры, она будет работать гладко.

Кроме того, пока он заморожен, если я вообще выхожу из окна (программное обеспечение) и возвращаюсь, то это работает?! (Например, если я просто нажимаю кнопку запуска Windows) ... Любые идеи?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

Это не похоже на правильный подход к исправлению вашей проблемы, но вы можете использовать класс TTimer в Delphi, чтобы подождать определенное время, прежде чем продолжить работу с каким-либо зависшим процессом.

Я подозреваю, что естьлогическая проблема с существующим кодом, и любое исправление синхронизации только решит проблему в вашей конкретной среде.

0 голосов
/ 14 декабря 2011

Вот как я это исправил. Наряду с дополнительной информацией, необходимой для объяснения решения, которое я ранее не осознавал, имело отношение к вопросу.

Вызываемая функция была доступна через всплывающее меню.

Всплывающее меню появилось из основной формы и по какой-то причине появлялось, когда я щелкал правой кнопкой мыши на PageControl (не является частью основной формы), даже когда у меня не было установлено свойство.

Решение - Добавлено свойство всплывающего меню «Основная форма» в свойство PageControl PopupMenu.

Без заморозков!

Спасибо за помощь.

...