Вниз
Скачать: 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
3-83975
PIV
2003-05-24 22:35
2003.06.26
Базы данных


6-84496
Akni
2003-04-22 16:18
2003.06.26
Nonblocking Socket в отдельном потоке


8-84450
AM
2003-03-11 14:06
2003.06.26
Многоугольник по координатам в OpenGL


3-83968
andrey__
2003-05-27 15:25
2003.06.26
Нужно определить фиксированную часть в <B>TDBGrid </B>


3-83973
Rustik
2003-05-29 17:49
2003.06.26
При конвертации из DOS в WIN превые буквы забиваются решеткой




   Наверх