Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.07.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.004 c
15-1301903703
oldmanAPOOERE
2011-04-04 11:55
2011.07.24
Сегодня - день Интернета.


15-1302110786
Inovet
2011-04-06 21:26
2011.07.24
DMClient & IE9


2-1303379680
samalex2504
2011-04-21 13:54
2011.07.24
Переместить курсор в TEdit на начало


15-1302270628
Galera
2011-04-08 17:50
2011.07.24
Медленный поиск у RxMemoryData


4-1249032759
Armature_Current
2009-07-31 13:32
2011.07.24
Синхронизация потоков





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский