Главная страница
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
3-70988
Egor111
2002-07-31 09:37
2002.08.22
Помогите по Access


1-71080
VDen
2002-08-12 12:05
2002.08.22
Выход из условия в case


1-71120
Сережа
2002-08-05 11:05
2002.08.22
Запуск программы из значка или из значка в трее


1-71078
Vitas2
2002-08-11 08:33
2002.08.22
TBitmap


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