请问如何把Panel上自己画的界面保存成图片 如何将Panel或From上自己画的形状保存成图片谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TForm1.Button1Click(Sender: TObject);begin Self.PaintBox1.Canvas.MoveTo(50,30); Self.PaintBox1.Canvas.LineTo(200,200); Self.Image1.Canvas.CopyRect(Image1.Canvas.ClipRect, Self.PaintBox1.Canvas, Self.PaintBox1.Canvas.ClipRect); Self.Image1.Picture.SaveToFile('c:\result.bmp');end; 谢谢!我没表达明白我的意思我已经在panel放了TShape控件,并对控件的属性及颜色进行了设置我想通过电击按钮将Panel及其上面的所有TShape形状保存在一张BMP图像上 兄弟,你先在Panel上放一个PaintBox,然后再放那些TShape控件,然后,用上面代码的最后两句即可。如果你不想让Image显示在界面上,可以设置Image到窗体边界以外,让用户看不到 设置 PaintBox.Align := alClient;设置 Self.Image1.Left := Self.Width;设置 Self.AutoScroll := False; 还需设置: Self.Image1.Width := Self.Panel1.Width; Self.Image1.Height := Self.Panel1.Height;能明白我的意思吗?等你反馈 //把任意TWinControl上的内容(包括控件)保存成Bmpprocedure PaintCtrlToBmp(Ctrl: TWinControl; Bmp: TBitmap);var cCanvas: TControlCanvas;begin Bmp.Width := Ctrl.Width; Bmp.Height := Ctrl.Height; cCanvas := TControlCanvas.Create; try cCanvas.Control := Ctrl; Bmp.Canvas.CopyRect(Rect(0, 0, Bmp.Width, Bmp.Height), cCanvas, Ctrl.ClientRect); finally cCanvas.Free; end;end;procedure TForm1.Button1Click(Sender: TObject);var B: TBitmap;begin B := TBitmap.Create; try PaintCtrlToBmp(Self, B); B.SaveToFile('D:\1.bmp'); PaintCtrlToBmp(Panel1, B); B.SaveToFile('D:\2.bmp'); finally B.Free; end;end; 哈哈,楼上兄弟晚来一步。我一时思维停顿,只好用一个TImage做中介,现在看了兄弟的代码,用BMP就可以了。其他思路是一样的 没积分下载:PDF:求《Windows网络编程之Delphi》这本书 大家好。我是c语言的初学者。请教一下borland与vc与dephli之间有什么关系啊? 有关画线的问题(我感觉超难,各位大侠帮帮忙) 紧急求助!如何将保存在数据库中的二进制流转换成WORD文档 BS帖 case如何用 当制作安装程序时遇到一些问题???? 得高分,回答简单问题,何乐而不为呢? 两组字符串做比较的问题(求最佳算法) 刚学delphi,几个很菜的问题?? ODBC 配置问题 indy控件 inpop3收取的邮件内容为HTML代码,如何解决?
begin
Self.PaintBox1.Canvas.MoveTo(50,30);
Self.PaintBox1.Canvas.LineTo(200,200);
Self.Image1.Canvas.CopyRect(Image1.Canvas.ClipRect, Self.PaintBox1.Canvas, Self.PaintBox1.Canvas.ClipRect);
Self.Image1.Picture.SaveToFile('c:\result.bmp');
end;
我没表达明白我的意思
我已经在panel放了TShape控件,并对控件的属性及颜色进行了设置
我想通过电击按钮将Panel及其上面的所有TShape形状保存在一张BMP图像上
如果你不想让Image显示在界面上,可以设置Image到窗体边界以外,让用户看不到
设置 Self.Image1.Left := Self.Width;
设置 Self.AutoScroll := False;
Self.Image1.Height := Self.Panel1.Height;
能明白我的意思吗?等你反馈
procedure PaintCtrlToBmp(Ctrl: TWinControl; Bmp: TBitmap);
var
cCanvas: TControlCanvas;
begin
Bmp.Width := Ctrl.Width;
Bmp.Height := Ctrl.Height; cCanvas := TControlCanvas.Create;
try
cCanvas.Control := Ctrl;
Bmp.Canvas.CopyRect(Rect(0, 0, Bmp.Width, Bmp.Height), cCanvas, Ctrl.ClientRect);
finally
cCanvas.Free;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
B: TBitmap;
begin
B := TBitmap.Create;
try
PaintCtrlToBmp(Self, B);
B.SaveToFile('D:\1.bmp');
PaintCtrlToBmp(Panel1, B);
B.SaveToFile('D:\2.bmp');
finally
B.Free;
end;
end;
我一时思维停顿,只好用一个TImage做中介,现在看了兄弟的代码,用BMP就可以了。其他思路是一样的