请教如何打印panel 中内容

yq_jack 2010-11-19 09:12:58
delphi7+sql2000 如何实现 打印panel 中全部的内容
...全文
391 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Believe 2010-11-23
  • 打赏
  • 举报
回复
要打印看到的界面?如果是要打印界面上的是数据用报表就可以了。
yq_jack 2010-11-20
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 lqfcu2 的回复:]
..........楼主,你不如用BITBLT,根据panel的坐标把图抓下来吧,只要屏幕上能看到,就一定能打印出来。哈哈
[/Quote]

能提供下,buttononclik 的代码吗,谢谢
lqfcu2 2010-11-20
  • 打赏
  • 举报
回复
..........楼主,你不如用BITBLT,根据panel的坐标把图抓下来吧,只要屏幕上能看到,就一定能打印出来。哈哈
yq_jack 2010-11-20
  • 打赏
  • 举报
回复
楼上的朋友还在吗
yq_jack 2010-11-20
  • 打赏
  • 举报
回复
网上找了些代码好像不行啊,初学的,只是工作中用到,请知道的帮下忙
lhy 2010-11-20
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 yq_jack 的回复:]
引用 16 楼 lqfcu2 的回复:
..........楼主,你不如用BITBLT,根据panel的坐标把图抓下来吧,只要屏幕上能看到,就一定能打印出来。哈哈


能提供下,buttononclik 的代码吗,谢谢
[/Quote]
这个还需要别人提供代码吗?
kye_jufei 2010-11-19
  • 打赏
  • 举报
回复
保存成圖片再打印。。。
风之谷 2010-11-19
  • 打赏
  • 举报
回复
Uses Printers;

procedure TForm1.Button1Click(Sender:TOBject);
var
BMp:TBitMap;
begin
Bmp:=TBitMap.Create;
Bmp.Width:=Pnl.Width;
Bmp.Height:=Pnl.Height;
Pnl.Paintto(Bmp.Canvas,0,0);
//打印
Printer.BeginDoc;
ScaleX := GetDeviceCaps(Printer.Canvas.Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Printer.Canvas.Handle, logPixelsY) div PixelsPerInch;
dx := trunc((Printer.PageWidth-Bmp.Width*Scalex)/2);
dy := trunc((Printer.PageHeight-Bmp.height*Scalex)/2);
r.Left := dx;
r.Top := dy;
r.Right := dx+trunc(Bmp.Width*Scalex);
r.Bottom := dy+trunc(Bmp.Height*ScaleY);
Printer.Canvas.StretchDraw(r,Bmp);
Printer.EndDoc;
end;
yq_jack 2010-11-19
  • 打赏
  • 举报
回复
能说得具体点吗,如单击 button 按扭,代码怎么写
风之谷 2010-11-19
  • 打赏
  • 举报
回复
打印panel东西 不难

BMp:TBitMap;

Bmp:=TBitMap.Create;
Bmp.Width:=Pnl.Width;
Bmp.Height:=Pnl.Height;
Pnl.Paintto(Bmp.Canvas,0,0);


可以导出panel上所有控件
duxing00 2010-11-19
  • 打赏
  • 举报
回复
作为临时字段 放到数据集 中~
oloveuxyz 2010-11-19
  • 打赏
  • 举报
回复
用PaintTo方法绘制到图片里,然后打印图片就行了!
yq_jack 2010-11-19
  • 打赏
  • 举报
回复
主要是一些combobox edit.text memo
bdmh 2010-11-19
  • 打赏
  • 举报
回复
你panel中有啥呀,如果是数据表格的话,直接报表打印吗
haitao 2010-11-19
  • 打赏
  • 举报
回复
复制form,截取panel其中的区域
yq_jack 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 jiap1723 的回复:]
var
r : TRect;
ScaleX , ScaleY : double;
dx,dy : integer;

把这些声明了 就可以
[/Quote]


打印出来的都是空白的, edit.text combobox.text 内容都没有的?
风之谷 2010-11-19
  • 打赏
  • 举报
回复
var
r : TRect;
ScaleX , ScaleY : double;
dx,dy : integer;

把这些声明了 就可以
likeyrain 2010-11-19
  • 打赏
  • 举报
回复
用报表画一个不就行了,对里面内容赋值就可以啦
yq_jack 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jiap1723 的回复:]
Delphi(Pascal) code
Uses Printers;

procedure TForm1.Button1Click(Sender:TOBject);
var
BMp:TBitMap;
begin
Bmp:=TBitMap.Create;
Bmp.Width:=Pnl.Width;
Bmp.Height:=Pnl.Heig……
[/Quote]



提示; undeclare identifier scalex ;...

ScaleX,ScaleY,dx,dy,r:real; 后,又提示undeclare r

5,388

社区成员

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

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