摘要载入中…    请稍等…












内容载入中…    请稍等…

如长时间看不到内容,请关闭浏览器,重新打开此页!

芯友首页 应用软件 编程开发 网络硬件 资源下载 动漫音乐 精美图库 芯友论坛 视频教程 电脑技术QQ群:72845454
 ★★photoshop学友-史上最强播放器★★
 位置:编程开发>Deiphi>Deiphi打印编程
◎→ 本类最新
◎→相关资源
C语言入门视频教程
C#编程WinForm入门视频
Asp.net入门视频教程下载
VC++编程视频教程下载
VB窗体文章
HTML入门教程
Deiphi实例教程
Deiphi窗体文章
Deiphi数据库编程
Deiphi网络编程
Deiphi图形图象文章
Deiphi系统文件
◎→ 热门资源
在DELPHI文本和图形的打印
在Delphi里播放Flash
在Delphi程序中应用IE浏览器控件
在Delphi程序中实现时间限制和加
在DELPHI程序中拨号上网
Delphi编程中创建一个启动闪现窗
在DELPHI2.0/3.0中直接操作端口

用好Delphi的打印技能的编程技巧


日期:2008-10-20 21:42:03    来源:互联网
   
 ·在DELPHI文本和图形的打印
 ·Delphi编程中创建一个启动闪现窗口

您正在看的Delphi教程是:用好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,首先在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调试通过,希望能对初次编写打印功能程序的读者有所帮助。

 [1]

自定义报表打印预览窗口

在Delphi中实现ASP编程

--->VB游戏编程学习系统 2.1
--->KS线切割编程系统 V1.90
--->编程傻瓜--汇编 V1.0b
--->GerbView V6.11┊Gerber文件查看器、用户查看打印标记Gerber┊英文绿色特别版
--->超星打印限制祛除文件
Tags:  打印 技能 编程
{$enumber$}
芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们