Вниз
Скачать: CL | DM;

Нужно получать 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
7-84766
S.P.I.R.I.T
2003-04-16 02:07
2003.06.26
Скрытие программы от ALT+TAB??????


1-84134
Vulko
2003-06-08 11:13
2003.06.26
Положение текстового курсора.


14-84691
Armaniak
2003-06-02 16:15
2003.06.26
Где достать ODBC драйвер для клиппера


1-84216
Графика
2003-06-12 13:42
2003.06.26
Как у предка убрать published ?


3-83970
Jaxtor
2003-05-29 16:30
2003.06.26
DBGridEh




   Наверх