Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.038 c
1-84284
delphimun
2003-06-13 12:51
2003.06.26
Как мне приделать, к циклу progressbar?


14-84623
Vulko
2003-06-06 19:57
2003.06.26
Вам говорит о чем нибудь...


14-84654
MalkoLinge
2003-06-06 11:01
2003.06.26
Типа история


14-84681
bkv
2003-06-04 17:12
2003.06.26
Вызов почтовой программы с созданным новым письмом


8-84463
Salavat
2003-03-05 15:31
2003.06.26
И все-таки об использовании сканера