![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите: Invalidate
dummy © (2006-11-13 20:59:00)Добрый вечер господа.
Помогите понять пожалуйста, как работаетDBGrid.Invalidate.
В книгах ничего не нашел, а в хелпе только общее описание.
Как я понял этот оператор указывает на то, что DBGrid должен быть перекрашен, а также позволяет избавиться от нежелательного мерцания.
Вот только не могу понять каким образом его использовать.
Простой вызов >DBgrid1.Invalidate< ни к чему не приводит.
Dummy (2006-11-14 00:33:00) [1]> [5] Percent (13.11.06 22:23)
> [6] Percent (13.11.06 22:29)
Спасибо большое !
Percent (2006-11-13 22:29:00) [2]Кроме того, события прорисовки (WM_PAINT) в очереди не накапливаются, то есть, если в очереди уже есть одно сообщение о прорисовке, то последующие не будут в нее добавляться; вплоть до того момента, как сообщение будет выбрано из очереди - после этого новое сообщение о прорисовке будет добавлено в очередь.
То есть,
for i := 0 to 999 do Invalidate; - вызовет одну прорисовку контрола.
for i := 0 to 999 do Refresh; - вызовет тысячу прорисовок контрола.
Percent (2006-11-13 22:23:00) [3]в чем преимущество Invalidate перед Refresh;
Ни в чем. Они просто используются по-разному.
Invalidate вызывает отсроченнуюперерисовку.
Refresh (и Repaint) - незамедлительную.
Dummy (2006-11-13 22:10:00) [4]ОК, вроде разобрался. Спасибо! :)
Может тогда хоть объясните: в чем преимущество Invalidate перед Refresh;
Dummy (2006-11-13 21:16:00) [5]> [1] Loginov Dmitry © (13.11.06 21:03)
Вот и прошу помочь разобраться
> [2] Leonid Troyanovsky © (13.11.06 21:03)
Мне кажется в этом не смысла :), т.к. спорить с Вами мне не хватит знаний.
И все же, как его нужно использовать?
Loginov Dmitry (2006-11-13 21:03:00) [6]dummy (13.11.06 20:59)
Как я понял этот оператор указывает на то, что DBGrid должен быть перекрашен
ага. Всеми цветами радуги сразу.
Leonid Troyanovsky (2006-11-13 21:03:00) [7]
> dummy (13.11.06 20:59)
> Простой вызов > DBgrid1.Invalidate < ни к чему не приводит.
Докажи.
--
Regards, LVT.