PaintBoxで描画する場合、前回描画したものを一度消して、再度描画したいと考えています。
(一度消さないと、再度描画したときに前のが残ってしまう)
一度書いたものは画面を切り替えたりすると消えますよね。
現在は画面を切り替えても残っているようにOnPaintを使用しています。
そのため一度前回のを消してから再度描画したいです。
ヘルプを見ても良いのがなさそうなので、アドバイスお願いします。
TPaintBoxのCanvasに描画しているのですね。
CanvasのBrush.ColorをPaintBoxの色にして全体を塗り直せば消えるでしょう。
TCanvasにはClearとかいうメソッドがないので、背景色と同じ色で描いて見えなくするとか、
領域を全部背景色で塗りつぶして消したことにする、というのがよく使われる手ですね。
procedure TForm1.PaintBox1Paint(Sender: TObject);
var RectSample: TRect;
begin
//OnPaintで色々描く前にこれを入れておく//
with RectSample do begin
Left:=1;
Top:=1;
Right:=PaintBox1.Width;
Bottom:=PaintBox1.Height
end;
with PaintBox1.Canvas do begin
Brush.Color:=clButtonFace; //ここは背景色に合わせる
FillRect(RectSample)
end;
end;
何か描く前にこうしておけば、新規に描き始める状態になります。
回答ありがとうございます。
やはりクリアの概念がないのですね。
では背景色と同じ色で一度消してから描画したいと思います。
ありがとうございました
ツイート | ![]() |