Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.07.24;
Скачать: CL | DM;

Вниз

Отловить таймер   Найти похожие ветки 

 
Gu   (2011-04-12 18:18) [0]

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


 
Gu   (2011-04-12 18:20) [1]

или может какието сторонние проги есть, которые компоненты могут отслеживать?


 
clickmaker ©   (2011-04-12 18:27) [2]

> там видео идет

где "там"?


 
Jeer ©   (2011-04-12 18:40) [3]


> после оставляния мауса и клавы впокое


Оставь этот проект в покое и начни с нуля.
Своего.


 
Gu   (2011-04-12 18:50) [4]

>> где "там"?
неважно, вот конкретно что нужно
>>> можно ли както в основной форме какой нить запрос повесить, чтобы узнать какой таймер в это время активируется (ровно 60 сек после оставляния мауса и клавы впокое)?

>> Оставь этот проект в покое и начни с нуля.
мне проще на ваш совет внимания не обращать


 
И. Павел ©   (2011-04-12 18:54) [5]

Что значит "поддергивается"? Летают компоненты по форме что ли?


> все работает норм, тольк вот если клаву и маус не трогать
> очевидно где то включается таймер (ровно через 60 сек начинается
> - мышку тронешь все обратно нормально)

Поставьте свой таймер и "поддергивайте" клаву и маус раз в 59 секунд :) Чтобы тому, кто будет сопровождать программу после вас, было уже вдвойне интереснее.


 
Gu   (2011-04-12 18:54) [6]

может както можно через FindComponent все таймеры найти и имена отобразить?


 
Gu   (2011-04-12 18:55) [7]

2 павел. ну я уже так сделал :) но все же интересно, кто из таймеров мешается.


 
И. Павел ©   (2011-04-12 18:58) [8]


> может както можно через FindComponent все таймеры найти
> и имена отобразить?

У вас все таймеры доступны? Т.е. вы можете к любому из них обратиться? Никто не зашит в скрытые секции компонентов?


> ну я уже так сделал :)

Я вообще-то пошутил.


 
Gu   (2011-04-12 19:00) [9]

код полностью доступен, включая компоненты, но его оч. много, даже простым поиском строки на TTimer в *.pas в папке проекта чуть не половина файлов находится, пробовал искать на "60", тоже много всего.


 
Anatoly Podgoretsky ©   (2011-04-12 19:01) [10]

Ну мучайся


 
clickmaker ©   (2011-04-12 19:01) [11]

> пробовал искать на "60", тоже много всего.

попробуй еще 60000 и 60*1000


 
Gu   (2011-04-12 19:01) [12]

или может можно узнать кто отслеживает клаву и маус? хотя мож.там у виндов все запрашивается...


 
Gu   (2011-04-12 19:02) [13]

>> 60000 и 60*1000
и :=60 и .interval и тп пробовал, находит, но все нето


 
И. Павел ©   (2011-04-12 19:04) [14]


> 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:13) [15]

по форме понятно, а в проекте всем?
например там в юзес куча всего подключается, при таком поиске компоненты оттуда в список не попадут.


 
Gu   (2011-04-12 19:19) [16]

еще некоторые таймеры там как      
FHintTimerID := SetTimer(0, 0, FHintWindow.HideHintTime, @HideHintTimerProc);
идут..


 
И. Павел ©   (2011-04-12 19:19) [17]


> 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;


Ну и еще не забудьте про модули данных.


 
И. Павел ©   (2011-04-12 19:20) [18]


> Gu   (12.04.11 19:19) [16]

Если долго не двигать мышкой, то компоненты просто мерцают, или же меняют свои позиции на форме?


 
Gu   (2011-04-12 19:24) [19]

мерцают, не оч заметно, но напрягает (фокус например появляется пропадает на кнопках).


 
Gu   (2011-04-12 19:27) [20]

>> for i := 0 to Application.ComponentCount - 1 do
тож не катит, например в юзесах половина юнитов которые цепляются к основной форме - они невизуальные, таймеры там есть, но такой поиск их не найдет.


 
Gu   (2011-04-12 19:45) [21]

короче пока остановился на варианте о котором говорили выше, повесил еще один таймер который раз в 59 секунд двигает маус вправо-влево на 1 пиксель :)


 
Gu   (2011-04-12 19:46) [22]

если еще идеи возникнут по основному вопросу, готов выслушать, Павлу спасибо за советы.


 
Anatoly Podgoretsky ©   (2011-04-12 20:16) [23]

> Gu  (12.04.2011 19:02:13)  [13]

Таймер не обязательно должен быть компонентом, свойства Интервал может
назначаться динамически. Это может быть в каком либо компоненте третьих
сторон.


 
sniknik ©   (2011-04-12 20:22) [24]

> Таймер не обязательно должен быть компонентом
и это может быть совсем не таймер, а типа события onidle.


 
Jeer ©   (2011-04-12 21:35) [25]


> если еще идеи возникнут


[3]


 
Leonid Troyanovsky ©   (2011-04-12 22:23) [26]


> Gu   (12.04.11 18:20) [1]

> или может какието сторонние проги есть

Winsight, Spy++

--
Regards, LVT.


 
clickmaker ©   (2011-04-12 23:00) [27]

> повесил еще один таймер который раз в 59 секунд двигает
> маус вправо-влево на 1 пиксель

главное - сам не забудь про это. А то через месяцок-другой рискуем увидеть тут вопрос: "Есть проект, с кучей компонентов сторонних (очень много кода), все работает норм, тольк вот мышь периодически дергается вправо-влево..."


 
Плохиш ©   (2011-04-13 02:07) [28]

Хм, и никто не посоветовал нанять программиста. Мельчает форум, однако...


 
Германн ©   (2011-04-13 02:59) [29]


> Плохиш ©   (13.04.11 02:07) [28]
>
> Хм, и никто не посоветовал нанять программиста. Мельчает
> форум, однако...

Так это к тебе претензии. Это твоя прерогатива советовать нанять программиста!
:)


 
han_malign   (2011-04-13 09:17) [30]

Искать надо не таймер, а Repaint и Update - и прибивать нафиг(за исключением элементов ListView и TreeView - которые по другому не умеют)...
Ну и Invalidate можно посмотреть, только уже аккуратно...


 
Молчанов   (2011-04-13 09:37) [31]

Попробуйте:
 SetThreadExecutionState(ES_SYSTEM_REQUIRED or ES_DISPLAY_REQUIRED or ES_CONTINUOUS);


 
clickmaker ©   (2011-04-13 10:34) [32]

SetDevelopmentState(DS_BRAIN_REQUIRED or DS_STRAIGHT_HANDS_REQUIRED);


 
Плохиш ©   (2011-04-13 12:05) [33]


> Германн ©   (13.04.11 02:59) [29]

Последнее время стало прикольно читать ветки по поиску причин стука в подвале ;-)


 
Dennis I. Komarov ©   (2011-04-13 14:59) [34]


> clickmaker ©   (13.04.11 10:34) [32]

:)))


 
oldman ©   (2011-04-13 21:12) [35]


> Плохиш ©   (13.04.11 12:05) [33]
> Последнее время стало прикольно читать ветки по поиску причин
> стука в подвале ;-)


Подозрение есть, что у автора сабжа скринсейвер настроен на 60 секунд. А картинка глючит - видеокарта кривая...


 
Inovet ©   (2011-04-15 02:16) [36]

> [35] oldman ©   (13.04.11 21:12)
> скринсейвер настроен на 60 секунд.

Забавно. А может это скринсейвер такой и есть.


 
Германн ©   (2011-04-15 02:43) [37]


> Забавно. А может это скринсейвер такой и есть.

"Такие" скринсейверы на моей памяти делал только Руссинович. Но очень давно.


 
Gu   (2011-04-15 04:20) [38]

>> Подозрение есть, что у автора сабжа скринсейвер настроен на 60 секунд. А картинка глючит - видеокарта кривая...

ну это совсем уже ;)
1. с.сейвер отключен
2. наблюдается на 5 разных пк - железо тут нипричем
могли еще написать что клава сломана и кнопка западает :)

SetThreadExecutionState - помучаю завтра. но это не решение проблемы, а ее обход. сейчас двиганье мауса итак работает



Страницы: 1 вся ветка

Текущий архив: 2011.07.24;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.008 c
15-1302270240
Palladin
2011-04-08 17:44
2011.07.24
Russian Code Cup


2-1302930981
mefodiy
2011-04-16 09:16
2011.07.24
Как отключить F12 в Delphi 2010


2-1303058118
prodex
2011-04-17 20:35
2011.07.24
Ошибка при вызове CreateBlobStream


2-1303364820
jacksotnik
2011-04-21 09:47
2011.07.24
засечь время работы процедуры


15-1301903703
oldmanAPOOERE
2011-04-04 11:55
2011.07.24
Сегодня - день Интернета.