problem z "miganiem" podczas rysowania w canvasie

0

mam problem z miganiem komponentu. mam label i rysuje na nim bitmape, i jak najezdzam kursorem to chce zeby sie zmienil kolor podswietlenia czyli tlo, i rysuje po canvasie od nowa tylko ze z innym kolorem, ale podczas wjezdzania i zjedzania kursora brzydko miga ta bitmapka. jak temu zaradzic?

with Canvas do
  begin
    Brush.Color := pColor;
    FillRect(pRect); // koloruje tlo
{ ... }
  end;
// bitmapa
  if Icon > -1 then
  begin
    Canvas.BrushCopy(pIconRect, pIcon, pBitmapRect, clWhite);
    Canvas.CopyRect(pIconRect, pIcon.Canvas, pBitmapRect);
  end;

// tekst na labelu
  pCaptionHeight := Canvas.TextHeight(Caption);
  case VerticalAlignment of
    vaTop: pTextTop := ITEM_MIN_SPACE;
    vaMiddle: pTextTop := (Height - pCaptionHeight) div 2;
    vaBottom: pTextTop := Height - pCaptionHeight - ITEM_MIN_SPACE;
  end;
  Canvas.TextOut(pTextLeft, pTextTop, Caption);
0

Moze doubleebuffered daj na TAK

0

Rysuj najpierw na bitmapie, a potem dopiero bitmape na canvasie.

0

doublebuffer nic nie daje.
na labelu jest rysowane: najpierw tlo, pozniej bitmapa, i tekst, na bitmapie nic nie maluje.

0

Wszystko co teraz rysujesz na Canvas rysuj na Bitmap.Canvas gdzie Bitmap : TBitmap. Jak juz narysujesz wszystko co trzeba to dopiero rysujesz na własciwym Canvasie zawartośc Bitmap.

0

dzieki, to pomoglo [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1