Текущий архив: 2006.10.08;
Скачать: CL | DM;
ВнизМерцания при прорисовке ячеек грида Найти похожие ветки
← →
nali (2006-08-26 17:51) [0]Помогитье с проблемой, кто разбирается в прорисовке окон:
В компоненте TMyGrid ( наследник от TCustomGrid) сильные мерцания
при прорисовке, срабатывают они в перегруженной процедуре
DrawCell. Мерцания из-за куска кода в котором вызывается
несколько функций рисования такие как:
Canvas.Rectangle(lRect);
Canvas.Ellipse(lCircleRect);
Canvas.FloodFill(lRect.Left,lRect.Top, FixedColor, fsSurface);
Вот сокращенная версия drawcell:
procedure TMyGrid.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
begin
Canvas.Lock;
inherited;
....
....
if ACol=1 then
DrawControlRect; // если закоментировать здесь, то мерцаний не будет
Canvas.Unlock;
end;
procedure TMyGrid.DrawControlRect;
begin
...
Canvas.Rectangle(lRect);
...
Canvas.Ellipse(lCircleRect);
...
Canvas.FloodFill(lRect.Left,lRect.Top, FixedColor, fsSurface);
end;
На 98 никаких мерцаний нет, а вот на 2000 и XP видна прори
совка кождой ячейки (типа мегания) в столбце для которого вызывается DrawControlRect.
А вообще чем принципиально отличается gdi 98 от gdi 2000 ?
Только что попробовал закоментировать процедуры рисования
в DrawControlRect и мерцания прекратились...
← →
Savek (2006-08-26 18:19) [1]Где-то слышал, что для перерисовки грида убедительно НЕ рекомендуется использовать событие OnDrawCell. Попробуй повесить свой код на OnDrawColumnCell, вдруг поможет...
Страницы: 1 вся ветка
Текущий архив: 2006.10.08;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.043 c