在PaintBox中画了一个圈,在画第二个之前去掉第一个,怎么办?(100分)

  • 主题发起人 主题发起人 yangyang2008
  • 开始时间 开始时间
Y

yangyang2008

Unregistered / Unconfirmed
GUEST, unregistred user!
不能调用PaintBox的Refresh方法和Paint事件,因为这样会引起图象的重画和闪动。
 
用异或的方式
PEN.style := psNOTXOR;
好象是这样的你可能自己查查!
 
你试过内存缓冲区的方法吗?
 
试过了,不行.“天真”说有一定道理,
但这样以来我画圈的颜色就不能自己定义了。
 
用底色重画第一个圆。
 
用底色重画。
 
怎样用底色重画?
 
procedure TForm1.Button1Click(Sender: TObject);
begin
with paintbox1 do
begin
Canvas.pen.Color := color;
Canvas.Ellipse(Width div 10, Height div 10,Width , Height);
Canvas.pen.Color := clRed;
Canvas.Ellipse(0, 0, Width, Height);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
with paintbox1 do
begin
Canvas.pen.Color := color;
Canvas.Ellipse(0, 0, Width, Height);
Canvas.pen.Color := clGreen;
Canvas.Ellipse(Width div 10, Height div 10,Width , Height);
end;

end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
705
import
I
后退
顶部