谁能帮我分析这段截代码?

wzwcn 2003-11-22 06:10:21
procedure TForm1.Button1Click(Sender: TObject);
var bitmap:tbitmap;
canva:tcanvas;
dc:hdc;
begin
bitmap:=tbitmap.Create ;
canva:=tcanvas.Create ;
dc:=getdc(0);
bitmap.Width:=screen.Width ;
bitmap.Height:=screen.Height ;
canva.Handle:=dc;
bitmap.Canvas.CopyRect(rect(0,0,screen.Width,screen.Height),canvas,rect(0,0,screen.Width,screen.Height));
image1.Picture.Bitmap:=bitmap;
canvas.Free;
bitmap.Free;
deletedc(dc);
end;
...全文
40 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
saien 2003-11-22
  • 打赏
  • 举报
回复
canvas.Free;多了一个"S"
应该是canva.free;其实就这么简单
wzwcn 2003-11-22
  • 打赏
  • 举报
回复
哦, 这回截到了,便所得的图象不太完整, 怎么回事?
wzwcn 2003-11-22
  • 打赏
  • 举报
回复
我把删掉了这回运行真的没出错了,但还是截屏截不了, 这样截屏行不行啊?这是我在一本书上见到的。
BeyondStudio 2003-11-22
  • 打赏
  • 举报
回复
把 canvas.Free; 删掉
wzwcn 2003-11-22
  • 打赏
  • 举报
回复
但是为什么我运行时老是出错,错在哪里?
iamalpha 2003-11-22
  • 打赏
  • 举报
回复
dc = GetDC(0); //就是取得桌面的Dc

Canvas.handle=dc; //现在canvas 对应的是桌面的图象了

bitmap.Canvas.CopyRect(rect(0,0,screen.Width,screen.Height),canvas,rect(0,0,screen.Width,screen.Height));
//就是把整个桌面复制到 bitmap中

image1.Picture.Bitmap:=bitmap;
//把bitmap中的图象copy到image1上显示出来


整段代码的作用就是拷贝整个桌面,并在image1上显示出来

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧