в моем приложении У меня есть основная форма с кнопкой. Нажав на эту кнопку, создается и отображается форма (не созданная автоматически в dpr); в этой форме я поместил компонент TApplicationEvents, и я определил его обработчик события OnIdle. Этот обработчик событий не вызван! Может ли это зависеть от того, что я вывел эту вторую форму не из TForm, а из другого класса, TChartBasicForm (с помощью VFI)? Большое спасибо за ответы. Массимо.Почему вызов TApplicationEvents.OnIdle не вызван?
ответ
Приобретение незанятого события приложения может привести к множеству проблем с отладкой и другим головным болям обслуживания, особенно в форме, отличной от основной. Я понимаю, что это не может ответить на ваш конкретный вопрос (что трудно сделать в этот момент с учетом неопределенности), но уверены ли вы, что не можете выполнить то, что вы пытаетесь сделать с помощью TTimer
или TThread
?
Спасибо за внимание всем людям. «Это не работает» означает, что он вообще не называется. Вместо этого работает OnShowHint!
Ooops! Возможно, я понял плохое поведение! В основной форме я определил процедуру как этот:
procedure IdleHandler(Sender: TObject; var Done: Boolean);
и в FormCreate:
Application.OnIdle := IdleHandler;
Это, вероятно, ингибирует TApplicationEvents.OnIdle, даже если в IdleHandler, в конце процедура, я ставлю:
Application.OnIdle := nil;
потому что код полезно попробовать соединение только в Бегин из приложения заревой.
Прошу прощения: мое лицо красное ......
Причина, по которой ваши действия вызвали отказ TApplicationEvents, заключалась в том, что TApplicationEvents работает, назначая * свои собственные * методы событиям TApplication. Когда вы назначаете свой метод непосредственно событию TApplication, вы нарушили связь между ним и объектом TApplicationEvents. Это печально, но так оно и работает. –
- 1. Почему вызов onServiceConnected не вызван?
- 2. Почему обратный вызов быть вызван
- 3. Почему вызов the_post_thumbnail всегда вызван?
- 4. Почему этот вызов AJAX не вызван?
- 5. Почему мой вызов jQuery.get() не вызван?
- 6. Почему вызов конструктора копирования не вызван?
- 7. V8: Почему вызов WeakReferenceCallback не вызван?
- 8. обратный вызов события 'data' не вызван, почему?
- 9. Асинхронный вызов не вызван
- 10. $ meteor.call Обратный вызов не вызван
- 11. onBindDialogView не вызван - Почему?
- 12. Почему BroadcastReceiver не вызван?
- 13. Почему не вызван BackgroundWorker.OnDoWork?
- 14. Почему метод не вызван?
- 15. Почему мой onPrepareOptionsMenu не вызван?
- 16. Почему JsonConverter.WriteJson() никогда не вызван, хотя JsonConverter.ReadJson() вызван?
- 17. Почему мой метод не вызван?
- 18. Многопоточность в Android - почему мой вызов onCompleted callback не вызван?
- 19. AS3 для Facebook - почему мой обратный вызов не вызван?
- 20. iOS 9 UIApplicationDidBecomeActiveNotification обратный вызов не вызван
- 21. Почему $ routeChangeSuccess никогда не вызван?
- 22. Почему конструктор перемещения не вызван?
- 23. Почему метод класса не вызван?
- 24. Почему деструктор не вызван исключением?
- 25. Почему прослушиватель событий не вызван?
- 26. Почему QWidget :: paintEvent не вызван?
- 27. Почему мой будильник не вызван?
- 28. Почему метод Javascript не вызван?
- 29. Почему UncaughtExceptionHandler не вызван ExecutorService?
- 30. Почему конструктор move не вызван?
«Это не работает», вероятно, наименее полезная фраза в истории отладки. Вы имеете в виду, что это вообще не называется? Можете ли вы проверить, что, поставив точку останова в обработчике событий и заметив, что он никогда не прерывается? Или вы имеете в виду, что это что-то делает, а не то, что вы ожидали от этого? –
Я написал приложение для быстрого тестирования с VFI, но не от TChartBasicForm, и все работает так, как ожидалось. Можете ли вы предоставить дополнительную информацию? –
Проголосовало за закрытие, так как кажется, что больше не актуально в соответствии с собственным ответом Массимо. – jpfollenius