Почему не вызывается TApplicationEvents.OnIdle? - PullRequest
1 голос
/ 20 января 2010

в моем приложении у меня есть основная форма с кнопкой. При нажатии этой кнопки создается и отображается форма (не создается автоматически в dpr); в этой форме я разместил компонент TApplicationEvents и определил его обработчик события OnIdle. Этот обработчик событий не вызывается! Может ли это зависеть, потому что я получил эту вторую форму не из TForm, но из другого класса, TChartBasicForm (с помощью VFI)? Большое спасибо за ответы. Массимо.

Ответы [ 2 ]

1 голос
/ 21 января 2010

Спасибо за интерес ко всем людям. «Это не работает» означает, что это не называется вообще. Вместо этого событие OnShowHint работает!

по электронной почте Ой! Возможно, я поняла плохое поведение! В основной форме я определил процедуру, подобную этой:

procedure IdleHandler(Sender: TObject; var Done: Boolean);

и в FormCreate:

Application.OnIdle := IdleHandler;

Это, вероятно, запрещает TApplicationEvents.OnIdle, даже если в IdleHandler в конце процедуры ставлю:

Application.OnIdle := nil;

потому что код полезен, чтобы попробовать соединение только в начале заявки.

Прошу прощения: мое лицо красное ......

1 голос
/ 21 января 2010

Перехват события простоя приложения может привести к множеству проблем отладки и других проблем с обслуживанием, особенно в форме, отличной от основной формы. Я понимаю, что это может не ответить на ваш конкретный вопрос (что трудно сделать в данный момент, учитывая неопределенность), но вы уверены, что не сможете выполнить то, что пытаетесь сделать с помощью TTimer или TThread?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...