Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Paint


Автор: NieL 15.1.2009, 10:58
Рисую внизу формы прямоугольник. При резайзинге формы предыдущий отрисованный прямоугольник не стирается, а если добавляю Invalidate то форма начинает мерцать. Помогите исправить ошибку. 

Код

procedure TForm1.Paint;
var
  t: Integer;
  DC: HDC;
  s: string;
  R: TRect;
begin
  inherited;
  if not (csDesigning in ComponentState)  then
  begin
    DC := GetDC(Handle);
    try
     // Invalidate;
      t := ClientHeight - (2 * const_default_Top + const_default_Height);
      FillRect(DC, Rect(0, t, ClientWidth, ClientHeight), GetSysColor(COLOR_BTNSHADOW));
      s := IntToStr(t);
      R := Rect(const_default_Left, t + const_default_Top,
        const_default_Left + Canvas.TextWidth(S) * Length(S),
        t + const_default_Top + Canvas.TextHeight(s));
      DrawText(DC, PChar(s), Length(s), R, 0);
    finally
      ReleaseDC(Handle, DC);
    end;
  end;
end;

Автор: Frees 15.1.2009, 12:22
если побыстрому то
Код

procedure TForm1.FormResize(Sender: TObject);
begin
      Invalidate;
end;



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)