Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.46 MB
Время: 0.259 c
15-1158172652
Колдун
2006-09-13 22:37
2006.10.08
Опять задачка :-)


2-1158577906
Emik
2006-09-18 15:11
2006.10.08
ProgressBar1


2-1158089245
Виктор_
2006-09-12 23:27
2006.10.08
код клавиши BackSpace


15-1158332236
Deqww
2006-09-15 18:57
2006.10.08
Рекурсия - непонятная штука!


2-1158227996
worldmen
2006-09-14 13:59
2006.10.08
Вставить текст в другую программу.