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

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

Наверх




Память: 0.47 MB
Время: 0.01 c
1-71079
kinder
2002-08-09 13:42
2002.08.22
Выпадающий список в DBGrid


8-71275
Анастасия
2002-04-13 17:43
2002.08.22
mediaplayer


3-70958
alexela
2002-08-03 21:10
2002.08.22
база DBase


3-71035
Alex_Vas
2002-08-01 07:17
2002.08.22
ADO с паролем


1-71133
Cr@sh
2002-08-13 12:58
2002.08.22
Повтрение изображения в TImage (расположение плиткой).