Вниз
Скачать: CL | DM;

Мерцает компонент   Найти похожие ветки 

← →
Мелодик   (2007-06-01 20:53) [0]


WM_NCPAINT:
     begin
       GetWindowRect(Handle, R);
       OffsetRect(R, -R.Left, -R.Top);

       if BorderStyle = bsNone then
         InflateRect(R, 2, 2);

       Canvas := TCanvas.Create;
       Canvas.Handle := GetWindowDC(Handle);

       ExcludeClipRect(Canvas.Handle, R.Left + BorderWidth + 2, R.Top + BorderWidth + 2, R.Left + BorderWidth + 2 + ClientWidth, R.Top + BorderWidth + 2 + ClientHeight);

       PaintBorder(Canvas, R);

       ReleaseDC(Handle, Canvas.Handle);
       Canvas.Handle := 0;
       Canvas.Free;
       Message.Result := 0;
     end;
   WM_ERASEBKGND:
     begin
       begin
         Canvas := TCanvas.Create;
         Canvas.Handle := Message.wParam;

         if Canvas.Handle <> 0 then
         begin
           GetWindowRect(Handle, R);
           OffsetRect(R, -R.Left, -R.Top);
           InflateRect(R, 2, 2);

           if FDisableEraseBkgnd then
           begin
             if Assigned(FOnEraseBkgnd) then
               FOnEraseBkgnd(Self, Canvas);
           end
           else
             PaintBuffer(Canvas, R);
         end;

         Canvas.Handle := 0;
         Canvas.Free;
       end;

       Message.Result := 1;
       Exit;
     end;


Происходит сильное мерцание компонента.
Вот код отрисовки.
Помогите плз избавиться от мерцания.


← →
Женька   (2007-06-20 17:16) [1]

Привет! Попробуй DoubleBuffered в true установить.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.018 c
2-1186904544
Ezorcist
2007-08-12 11:42
2007.09.02
Как задать время в системе?


2-1186495868
SLesya
2007-08-07 18:11
2007.09.02
dll/bpl + отладчик


2-1186902932
Император
2007-08-12 11:15
2007.09.02
Беда! Дельфи сходит с ума :)


2-1186340061
Eugem
2007-08-05 22:54
2007.09.02
Создание объектов во время исполнения программы


2-1185991030
Comp
2007-08-01 21:57
2007.09.02
Создать нечто подобное StringGrid на API




   Наверх