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

Сообщения - где эта очередь и кто крайний?   Найти похожие ветки 

← →
jj   (2002-06-18 20:44) [0]

В DBCtrlGrid на OnPaintPanel выполняю свою прорисовку панелей, и она, мягко говоря, притормаживает, в зависимости от мощности компа.
Если юзер давит на кнопки постоянно, грид отрисовывается инертно. Хочу отключить тормозные операции, временно, чтобы после повторить, когда юзер уймется, прямо в OnPainPanel проверяю GetInputState – она молчит, как рыба об лед, типа нет ничего в очереди, а панели продолжают так же инертно отрисовываться, когда уже никто ничего и не жмет.

procedure TForm1.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid; Index: Integer);
…
If GetInputState() then ….юзер торопится, нельзя выполнять тормозные штуки
Else ….мона, все равно он мух ловит.
…

Когда, как и где буферизируются и обрабатываются сообщения – загадка, во всяком случае, для меня. Наверно, я чтонить неправильно делаю, но что ? Где эта очередь ?
Клава и мыша – полбеды, грид может репозиционироваться , например, и по команде с датасорса (датасета, и т.д….).Судя по исходникам VCL, эти мессаги вообще идут напрямую в контрол через Perform(), мимо очереди, если я не ошибаюсь.И тем не менее они где-то буферизируются…..
Вообще, можно ли для конкретного контрола узнать, сколько сообщений стоят к нему в очередь ? И какие ?
Если прямого ответа нет, то , плиз, подскажите хотя бы, где самообразоваться мона…


← →
blackman   (2002-06-19 10:12) [1]

Мона, если нуна
http://delphi.mastak.ru/articles.html


← →
SPeller ©   (2002-06-19 22:58) [2]

В WinSDK есть функции которые возвращают и вынимают сообющения из очереди.


← →
jj   (2002-06-20 03:42) [3]

И GetInputState - одна из них...:)
В такой очереди я уже стоял...:) Где другая ?
Идея в чем - если знать, что в системе произошли события, предназначенные конкретному контролу,независимо от способа - SendMessage, PostMessage, Perform, хардварно,т.д., то можно реагировать, даже и в том случае, если они еще не дошли до него, вернее, если он еще не обрабатывает их.
Но это если знать...



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

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



Память: 0.45 MB
Время: 0.009 c
1-71229
Администратор
2002-08-11 16:25
2002.08.22
ListView


3-71037
UnDISCOvery
2002-08-01 15:17
2002.08.22
Различные локальные платформы БД в аспекте безопасности ...


1-71104
Dmitrey
2002-08-12 18:35
2002.08.22
Хитрый TPopUpMenu


7-71397
qwen
2002-06-08 00:03
2002.08.22
Как полчить спсиок всех дисков?


3-70994
S@shka
2002-07-31 12:53
2002.08.22
Чем отличается Commit от CommitRetaining




   Наверх