用Delphi实现打印功能
下面以打印在纸张的矩形框内为例简单介绍:
程序要求:
单击[打印]按钮,把Memo的内容最多分三行打印出来,每行最多能容纳22个三号字,限定汉字上限为50个汉字。
编程思路:
用LineTo和MoveTo函数画一矩形框,根据Memo组件的内容长度用Copy函数把它分割为1到3个子串。在矩形框内美观地输出文字时技术处理为:当输出一行时最多可打印18个汉字,当输出多行时第一、二行分别打印16、18个汉字。
编程步骤:
1、首先新建一工程,在窗体上加一个Memo组件Button组件。
2、Memo组件的Lines值为空,MaxLength值为“100”(即50个汉字),字体为“三号字”;Button的Caption值为“打印”。
3、添加[打印]按钮的事件处理过程代码Button1.Click,首先在Inte易做图ce的Uses部分添加Printers,其完整代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var StrLen , Left,Top , WordHeight , wordWidth : Integer;
ContentStr : String[100];
Str1, Str2, Str3 : String[36];
begin
with Printer do
begin
Canvas.Font.Size:=16;
wordHeight:=Canvas.TextHeight
(字);
wordWidth:=Canvas.TextWidth
(字);
Left:=(Printer.PageWidth-wordWidth*22) div 2;
Top:=(Printer.PageHeight-wordHeight*7) div 2;
BeginDOC;
With Canvas do
begin
Pen.Width:=3;
{画一个22字宽,7个字高的矩形框}
MoveTo(Left,Top);
LineTo(Left+wordWidth*22,Top);
LineTo(Left+wordWidth*22,
Top+wordHeight*7);
LineTo(Lef补充:软件开发 , Delphi ,
- 更多Delphi疑问解答:
- 用delphi做这个功能怎么做?
- 问delphi 中将Tquery控件查找到的记录数值写入某一edit中代码如何写?
- 有谁知道怎样在Delphi 7中显示代码的行数啊?或者有什么方法能够快速找到已知某一行数的代码啊!
- 关于delphi 操作EXcel的问题
- delphi ,sql,, 数据库 ,求助~~~~ 急~~~~~
- delphi变体记录问题
- delphi能实现反射吗?
- 谁会安装delphi 7 控件啊!会的话,请帮我在线安装一下? QQ785799795
- 在Delphi的Image控件上画移动的图片
- delphi 月份递增的循环查询
- 宝兰公司的开发工具delphi和c++builder现在的年代还流行吗?
- 我是沈阳做delphi开发的,想要集成短信功能到客户管理系统中,麻烦各位达人?
- 我是南昌做delphi开发的,想要集成短信功能到PMS中,分享下吧!
- delphi 取消窗体的最小化怎么弄
- 我是深圳做delphi开发的,想要集成短信功能到知识管理系统中,求达人指点!