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

Вниз

Нужно получать Idle сообщения   Найти похожие ветки 

 
yaJohn   (2003-06-11 17:52) [0]

Вах! Стыдно мне, стыдно... Уперся, вот, в примитивный вопрос: наследуем компонент порожденный от TWinControl. Нужно получать Idle сообщения. Что перехватывать то надо???
WM_IDLE я не нашел...


 
MBo   (2003-06-11 18:23) [1]

можно поподробнее, зачем это нужно?


 
yaJohn   (2003-06-11 18:32) [2]

Пишу компонент. У него есть property позволяющее привязать его в DesignTime к другому компоненту.
property Target: TComponent read.... write....
Из моего компонента мне нужно отслеживать состояние Target. Никакой особо жесткой временной привязки нету. Мой компонент должен визуально отобразить изменение состояние Target, не более.
Видятся следующие методы:
1) Делегирование событий. Это плохо. Очень. Юзер моего компонента тоже хочет с событиями Target работать.
2) Если Target - окно - хук на него. Это заморочно.
3) Таймер. Это как-то неизящно...
4) Поскольку мы никуда не спешим - айдл представляется наиболее перспективным.

Вот.


 
Suntechnic   (2003-06-11 18:34) [3]

Да нет никаких Idle сообщений в Win API. Idle processing это трюк Borland-а чтобы облегчить нам жизнь в некоторых аспектах реализации. Так что я бы присоединился к вопросу MBo © (11.06.03 18:23).


 
yaJohn   (2003-06-11 18:39) [4]

>Да нет никаких Idle сообщений в Win API
Ага. Нету. Это значит что я не совсем туп, просто АПИ не знаю ;)
Значит придется подчинится зову природной лени и сделать на таймере.


 
MBo   (2003-06-11 18:44) [5]

единственное, что есть в API - WM_ENTERIDLE, но это совсем из другой оперы - соообщение родителю диалога или меню.

Target компонент - любой или свой конкретный?
Если второе, ему нужно придать функциональность, подобную Notification-механизму.
Иначе - какие именно изменения состояния нужно отслеживать?


 
VMcL   (2003-06-11 18:52) [6]

Application.OnIdle ?


 
yaJohn   (2003-06-12 11:40) [7]

Нет, к сожалению Target не мой. В общем случае - любой TComponent.
Отслеживается состояние одного из property. Какого именно задается в моем компоненте в DesignTime (через RTTI).
Условно говоря - мой компонент - обсервер.
В целом задача уже решена. У моего компонента есть метод Update, который делает все что нужно. Соответственно, юзеру осталось вызвать его в нужный момент. Однако, хотелось сделать маленький подарок совсем ленивым...
2 VMcL
Пишется компонент, и нет никаких гарантий того, что пользователь не использует в своем проекте Application.OnIdle.

А вообщето меня давно уже нервирует отсувствие в delphi механизма множественного делегирования...



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

Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.023 c
7-84801
chernoruk
2003-04-18 19:45
2003.06.26
Запуск приложения


14-84540
Asteroid
2003-06-07 02:09
2003.06.26
Недокументированный API


14-84658
Pat
2003-06-09 23:43
2003.06.26
SoftIce: 9x -->НТ


1-84149
Bosso
2003-06-11 09:57
2003.06.26
Как бороть баг с 300-ми кнопками?


6-84504
Savage
2003-04-22 11:12
2003.06.26
Закачка файлика на ftp сервер





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский