怎样存储Panel上的所有组件,image、label、EDIT等为一幅图片? Panel的大小比当前屏幕大,部分panel看不到的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 panel no canvas. sorry procedure TForm1.Button1Click(Sender: TObject);var aCanvas: TCanvas; rect: TRect; bmP: TBitmap; dc: HDC;begin rect := Panel1.ClientRect; aCanvas := TCanvas.Create; try dc := GetWindowDC(Panel1.Handle); aCanvas.Handle := dc; bmp := TBitmap.Create; try bmp.Width := rect.Right - rect.Left; bmp.Height := rect.Bottom - rect.Top; bmp.Canvas.CopyRect(rect, aCanvas, rect); Image1.Picture.Bitmap.Assign(bmp); finally bmp.Free; end; finally aCanvas.Free; end;end; 上面是把panel上的东西存入bmp中,再将其在Image1中显示出来,你可在用bmp.savetofile将其存为*.bmp文件。 取得panel的rect,然后截图就ok了 读了上面的代码,太罗唆了吧。其实Panel属WinControl控件,本就有Canvas属性,直接SaveToFile不就得了。或者copyCanvas. 闷!ing 我怎么发现用rect := Panel1.ClientRect每次系统都是从(0,0)坐标开始取得图象,搞不懂 我是用image1来显示已经有的图片,然后想用copyRect把image1的信息复制到image2procedure TForm1.Button2Click(Sender: TObject);var rect: TRect; bmP: TBitmap;begin rect := Image1.BoundsRect; try bmp := TBitmap.Create; try bmp.Width := rect.Right - rect.Left; bmp.Height := rect.Bottom - rect.Top; bmp.Canvas.CopyRect(rect, Canvas, rect); Image1.Picture.Bitmap.Assign(bmp); bmp.SaveToFile('D:\AI.bmp'); finally bmp.Free; end; finally end;end; Image1.Picture.Bitmap.Assign(bmp);---->应该是 Image2.Picture.Bitmap.Assign(bmp); 释放内存 求RootKits技术详细资料(讲原理就算了,来点代码级或更深的) 只一次启动后,读取文件关联后的paramstr(1)为什么不行啊? 制作安装程序的问题。 各位前辈,能给介绍几本学习delphi的好书吗?? 可以问一下吗: 窗口最小化 如何控件MDI子窗体最大化时的位置以及尺寸??? 开发IE 的插件的问题 打印预览一问! 简单问题,快来拿分 SNMP协议
var
aCanvas: TCanvas;
rect: TRect;
bmP: TBitmap;
dc: HDC;
begin
rect := Panel1.ClientRect;
aCanvas := TCanvas.Create;
try
dc := GetWindowDC(Panel1.Handle);
aCanvas.Handle := dc; bmp := TBitmap.Create;
try
bmp.Width := rect.Right - rect.Left;
bmp.Height := rect.Bottom - rect.Top;
bmp.Canvas.CopyRect(rect, aCanvas, rect); Image1.Picture.Bitmap.Assign(bmp);
finally
bmp.Free;
end;
finally
aCanvas.Free;
end;
end;
你可在用bmp.savetofile将其存为*.bmp文件。
每次系统都是从(0,0)坐标开始取得图象,搞不懂 我是用image1来显示已经有的图片,然后想用copyRect把image1的信息复制到image2procedure TForm1.Button2Click(Sender: TObject);
var
rect: TRect;
bmP: TBitmap;
begin
rect := Image1.BoundsRect;
try
bmp := TBitmap.Create;
try
bmp.Width := rect.Right - rect.Left;
bmp.Height := rect.Bottom - rect.Top;
bmp.Canvas.CopyRect(rect, Canvas, rect);
Image1.Picture.Bitmap.Assign(bmp);
bmp.SaveToFile('D:\AI.bmp');
finally
bmp.Free;
end;
finally
end;
end;
应该是
Image2.Picture.Bitmap.Assign(bmp);