这样一段东西,麻烦大家看一下
ptb是一个TPaintBoxvar
Form1: TForm1;
ABit: TBitmap;
AR: TRect;
implementation{$R *.dfm}procedure TForm1.FormActivate(Sender: TObject);
begin
ABit:=TBitmap.Create;
AR:=Rect(0,0,ptb.Width,ptb.Height); Form1.Refresh;
ptb.Canvas.Brush.Color:=clWhite;
ptb.Canvas.FillRect(AR);
end;//画上线
procedure TForm1.Button1Click(Sender: TObject);
begin
ptb.Canvas.PenPos:=Point(0,0);
ptb.Canvas.LineTo(90,90);
end;//暂存到Bitmap,擦掉线
procedure TForm1.Button2Click(Sender: TObject);
begin
ABit.Canvas.CopyRect(AR,ptb.Canvas,AR);
ptb.Canvas.FillRect(AR);
end;//用Bitmap内的暂存,恢复原来图案
procedure TForm1.Button3Click(Sender: TObject);
begin
ptb.Canvas.CopyRect(AR,ABit.Canvas,AR);
end;为什么达不到我上面的所想的效果呢?
ptb是一个TPaintBoxvar
Form1: TForm1;
ABit: TBitmap;
AR: TRect;
implementation{$R *.dfm}procedure TForm1.FormActivate(Sender: TObject);
begin
ABit:=TBitmap.Create;
AR:=Rect(0,0,ptb.Width,ptb.Height); Form1.Refresh;
ptb.Canvas.Brush.Color:=clWhite;
ptb.Canvas.FillRect(AR);
end;//画上线
procedure TForm1.Button1Click(Sender: TObject);
begin
ptb.Canvas.PenPos:=Point(0,0);
ptb.Canvas.LineTo(90,90);
end;//暂存到Bitmap,擦掉线
procedure TForm1.Button2Click(Sender: TObject);
begin
ABit.Canvas.CopyRect(AR,ptb.Canvas,AR);
ptb.Canvas.FillRect(AR);
end;//用Bitmap内的暂存,恢复原来图案
procedure TForm1.Button3Click(Sender: TObject);
begin
ptb.Canvas.CopyRect(AR,ABit.Canvas,AR);
end;为什么达不到我上面的所想的效果呢?
解决方案 »
- 问下panel的停靠问题,不怎么懂
- 两个image一个画线,一个显示图片,怎么把它们保存在一个bmp里?
- 在Delphi里怎么使用函数指针?
- 请问如何获得listbox当前选中项的内容
- 发送消息时如何将字符串作为参数发送出去?
- 哪里有<<DELPHI 5开发人员指南>>的光盘原代码下载?
- 请问delphi中有没有像VB中datediff的函数?????????????????????
- 求教:如何在delphi 5 中使用HTML Help(.CHM)
- 在SqlServer 7.0中,关于raiserror的问题
- !急!急!急如何实现圆的转动效果,以下为我写的VB代码,能用DELPHI代码改写吗
- 紧急求ACM控件
- 如何在delphi中向SQL生成一个SQL作业
确定其Width和Height
--------------
ptb.Canvas.MoveTo(0,0);
ptb.Canvas.LineTo(90,90);
谢楼上不过改TBitmap成TImage,就可以直接使用了,想必是两者的Canvas的实际并不完全相同