首  页 | 资讯中心 | 网络学院 | 天新汽车 | 天新手机 | 天新游戏 | 软件开发 | 考试认证
品 牌 机 | 笔 记 本 | 服 务 器 | 天新数码 - DC - DV - MP3 - MP4 - GPS - TV | 数字家庭
硬件 DIY - 主板 - CPU - 内 存 - 硬 盘 - 显示器 - 显卡 - 光驱 - 机箱 - 键鼠 - 网络设备
办公设备 | 打 印 机 | 扫 描 仪 | 投 影 仪 | 一 体 机 | 传 真 机 | 路 由 器 | 交 换 机
软件下载 | 驱动下载 | 游戏下载 | 源码下载 | 教程下载 | 站长在线 | 产品中心 | 报价中心
开发首页 | 开发语言 | .Net开发 | Java开发 | Web开发 | 数据库开发 | 移动开发 | 游戏开发 | 企业开发 | 操作系统 | 软件工程
VB VC Delphi PB BCB C++ - ASP.net C# VB.net - J2EE J2SE J2ME EJB - ASP PHP JSP CGI - MSSQL Oracle DB2 MySQL - CodingLife
  开发语言首页 | VB开发 | VC开发 | VFP开发 | Delphi开发 | Power Builder | C++ Builder | C/C++ | 汇编
  您现在的位置:天新网 > 软件开发 > 开发语言 > Delphi开发 > Delphi技巧
用Delphi实现打印功能
http://dev.21tx.com 2004年02月14日 中国电脑教育报 刘福旺

每日文章精萃
.Net:ASP.NET2.0数据库入门之SQL Server Java:Junit 中的设计模式
ASP:xmlhttp 抓取网页内容 PHP:基于PHP的聊天室(二)
JSP:Java Servlet和JSP教程之十二 CGI:用Perl语言进行Socket编程之四
VB:用Win2000 Active Directory保护应用 VC:中国象棋人机对弈源码

  给单位开发软件,涉及一打印模块,我感到颇有兴趣,就拿来其中的一个小功能模块与读者共享。下面以打印在纸张的矩形框内为例简单介绍:

  程序要求:

  单击[打印]按钮,把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,首先在Interface的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(Left,Top+wordHeight*7);
   LineTo(Left,Top);
   ContentStr:=Memo1.Lines.Text;
   StrLen:=Length(ContentStr);
   if StrLen< 37 then
   {分一行打印}
   begin
   TextOut(Left+WordWidth*2, Top+Wordheight*3, ContentStr)
   end
   else if StrLen< 66 then
   {在垂直方向中间分两行打印}
   begin
   Str1:=Copy(ContentStr, 0, 32);
   Str2:=Copy(ContentStr, 33, StrLen-32);
   TextOut(Left+WordWidth*4, Top+WordHeight*(7-2) div 2 , Str1);
   TextOut(Left+WordWidth*2, Top+WordHeight*(7-2) div 2 + wordHeight, Str2);
   end
   else
   {分三行打印}
   begin
   Str1:=Copy(ContentStr,0,32);
   Str2:=Copy(ContentStr,33,36);
   Str3:=Copy(ContentStr, 69, StrLen-68);
   TextOut(Left+WordWidth*4, Top+WordHeight*2, Str1);
   {左缩进两个汉字}
   TextOut(Left+WordWidth*2, Top+WordHeight*3, Str2);
   TextOut(Left+WordWidth*2, Top+WordHeight*4, Str3);
   end
   end;
   EndDoc;
   end;
  end;


  以上程序在Windows 98/Me+Delphi 6.0调试通过,希望能对初次编写打印功能程序的读者有所帮助。

上一篇: 用Delphi控制IE窗口
下一篇: 你的大写数字规范吗

编辑推荐
相关内容
·在DBGrid组件中显示和编辑MEMO字段
·如何用Delphi开发简单的WebMail程序
·基于Delphi的英文发音教学软件的实现
·拯救Delphi:中国开源社区的责任
·Delphi自定义部件开发(七)
·开发Delphi对象式数据管理功能(一)
·开发Delphi对象式数据管理功能(二)
·delphi 7.0生成的AgentObjects_TLB.pas出错
·程序快捷方式/程序删除项/EXE自删除DIY
·QQ聊天记录器演示程序(可针对QQ2003和QQ200
·Delphi自定义部件开发(六)
·Delphi编程技巧(一)内存管理
·Delphi 与FORTRAN语言的混合编程
·Delphi的两个实用技巧(1)播放Flash
·Delphi的两个实用技巧(2)巧用Windows的API
·delphi实例编程之--制作可随处拖放的工具栏
·用Delphi 6编程实现自动标注汉语拼音
·从问题到结果 ――EXE2SWF的开发手记
·Delphi实现随时随刻知道自己的IP
·Delphi让你发送Flash电子邮件(1)
最近更新
人气最热
·用Delphi控制IE窗口
·你的大写数字规范吗
·让文本动起来
·Delphi+Cell全攻略
·自己制作网页特效软件
·用Delphi编写打印程序的窍门
·Delphi中如何实现透明按钮
·回调函数与Delphi的事件模型
·Delphi一点通:如何将源代码学好
·一个实际的OLE服务器的开发
·Delphi基础:Window 消息大全使用详解
·用Delphi + DirectX开发简单RPG游戏
·Delphi中动态链接库(DLL)的建立和使用
·Delphi+Cell全攻略
·Delphi实例演示:隐藏系统中的驱动器
·简析XML及其在Delphi中的应用
·用Delphi客户端访问EJB组件
·一个实际的OLE服务器的开发
·Delphi学习:图像放大漫游攻略
·Delphi与Word之间的融合技术

 
·[硬件]长江后浪推前浪:6款新品电源横向评测
·[数码]Zen Micro 照样拆你没商量
·[汽车]试驾06款上海通用别克GL8陆尊(图)
·[开发]怎样通过编程方式管理nt的用户及其访问
·[资讯]Google李开复:成功是让别人离不开你
·[游戏]《天堂2》公开测试服务器将在下午17:0
·[本本]大话热点 15大最受关注的笔记本品牌
·[办公]灰尘引起的网卡“软故障”
·[手机]倾城依旧 诺基亚直板设计7260仅1228元
·[考试]微软认证系统安全工程师(MCSE:?Securit
·[学院]Coreldraw翩跹蝴蝶梦(4)
·[娱乐]小猫吃食物
 

关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net