![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отловить таймер
Gu © (2011-04-12 18:18:00)Есть проект, с кучей компонентов сторонних (очень много кода), все работает норм, тольк вот если клаву и маус не трогать очевидно где то включается таймер (ровно через 60 сек начинается - мышку тронешь все обратно нормально), и некоторые элементы управления немного поддергиваются, там видео идет и это оч. мешает. В коде вроде таймеров нету, в компонентах - куча, и все вроде бы за другое отвечают, понятно что гдето один зарыт нужный, можно ли както в основной форме какой нить запрос повесить, чтобы узнать какой таймер в это время активируется (ровно 60 сек после оставляния мауса и клавы впокое)?
И. Павел (2011-04-12 19:20:00) [21]
> Gu (12.04.11 19:19) [16]
Если долго не двигать мышкой, то компоненты просто мерцают, или же меняют свои позиции на форме?
И. Павел (2011-04-12 19:19:00) [22]
> Gu (12.04.11 19:13) [15]
Перебрать все формы приложения можно так:
for i := 0 to Application.ComponentCount - 1 do
begin
if (Application.Components[i] is TForm)
then Memo1.Lines.Add((Application.Components[i] as TForm).Name);
end;
Ну и еще не забудьте про модули данных.
Gu (2011-04-12 19:19:00) [23]еще некоторые таймеры там как
FHintTimerID := SetTimer(0, 0, FHintWindow.HideHintTime, @HideHintTimerProc);
идут..
Gu (2011-04-12 19:13:00) [24]по форме понятно, а в проекте всем?
например там в юзес куча всего подключается, при таком поиске компоненты оттуда в список не попадут.
И. Павел (2011-04-12 19:04:00) [25]
> Gu (12.04.11 19:00) [9]
Тогда просто на 59-ой секунде проходите все таймеры и запоминайте их свойство Enabled где-нибудь (к примеру в свойстве tag). А на 61 секунде проходите снова и смотрите - не включился ли какой-нибудь таймер.
Пройти все компоненты на форме можно так:
for i := 0 to ComponentCount - 1 do
if Components[i] is TTimer then
...
Gu (2011-04-12 19:02:00) [26]>> 60000 и 60*1000
и :=60 и .interval и тп пробовал, находит, но все нето
clickmaker (2011-04-12 19:01:00) [27]> пробовал искать на "60", тоже много всего.
попробуй еще 60000 и 60*1000
Anatoly Podgoretsky (2011-04-12 19:01:00) [28]Ну мучайся
Gu (2011-04-12 19:01:00) [29]или может можно узнать кто отслеживает клаву и маус? хотя мож.там у виндов все запрашивается...
Gu (2011-04-12 19:00:00) [30]код полностью доступен, включая компоненты, но его оч. много, даже простым поиском строки на TTimer в *.pas в папке проекта чуть не половина файлов находится, пробовал искать на "60", тоже много всего.
И. Павел (2011-04-12 18:58:00) [31]
> может както можно через FindComponent все таймеры найти
> и имена отобразить?
У вас все таймеры доступны? Т.е. вы можете к любому из них обратиться? Никто не зашит в скрытые секции компонентов?
> ну я уже так сделал :)
Я вообще-то пошутил.
Gu (2011-04-12 18:55:00) [32]2 павел. ну я уже так сделал :) но все же интересно, кто из таймеров мешается.
Gu (2011-04-12 18:54:00) [33]может както можно через FindComponent все таймеры найти и имена отобразить?
И. Павел (2011-04-12 18:54:00) [34]Что значит "поддергивается"? Летают компоненты по форме что ли?
> все работает норм, тольк вот если клаву и маус не трогать
> очевидно где то включается таймер (ровно через 60 сек начинается
> - мышку тронешь все обратно нормально)
Поставьте свой таймер и "поддергивайте" клаву и маус раз в 59 секунд :) Чтобы тому, кто будет сопровождать программу после вас, было уже вдвойне интереснее.
Gu (2011-04-12 18:50:00) [35]>> где "там"?
неважно, вот конкретно что нужно
>>> можно ли както в основной форме какой нить запрос повесить, чтобы узнать какой таймер в это время активируется (ровно 60 сек после оставляния мауса и клавы впокое)?
>> Оставь этот проект в покое и начни с нуля.
мне проще на ваш совет внимания не обращать
Jeer (2011-04-12 18:40:00) [36]
> после оставляния мауса и клавы впокое
Оставь этот проект в покое и начни с нуля.
Своего.
clickmaker (2011-04-12 18:27:00) [37]> там видео идет
где "там"?
Gu (2011-04-12 18:20:00) [38]или может какието сторонние проги есть, которые компоненты могут отслеживать?