Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
1-71100
Alfik
2002-08-12 19:36
2002.08.22
unitstall


1-71128
andrey_pst
2002-08-13 09:57
2002.08.22
Получение имен неизвестных файлов.


1-71179
Yuri Btr
2002-07-31 10:21
2002.08.22
Как можно перезапустить самого себя?


1-71084
staratel
2002-08-12 13:20
2002.08.22
Каталог программы


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский