DELPHI基础教程:文本编辑器的设计(二)[4]

 我来答
机器1718
2022-10-06 · TA获得超过6802个赞
知道小有建树答主
回答量:2805
采纳率:99%
帮助的人:157万
展开全部

   文件打印

  在Delphi中 文件打印有两种方式

   将文件变量分配给打印机 用此变量名创建或打开文件后 往此文件变量写入的任何文本都视为向打印机输出 以下过程可实现文件的打印

  procedure TEditForm Print Click(Sender: TObject)

  var

  Line: Integer;

  PrintText: System Text;

  begin

  if PrintDialog Execute then

  begin

  AssignPrn(PrintText)

  Rewrite(PrintText)

  Print CanvasFont := Memo Font;

  For Line := to Memo Lines Count do

  Writeln(PrintText Memo Line[line];

  System Close(PrintText)

  end;

  end;

   利用Printers单元中定义的TPrinter对象进行文件打印 本章例程采用这种方法打印文件

   TPrinter对象

  TPrinter对象可调用Windows的打印机 在Printer 单元中定义了TPrinter 的实例Printer 用户可直接使用

  调用TPrinter的BeginDoc方法可开始一项打印工作 调用EndDoc 方法可结束一项已成功发送给打印机的工作 如果在发送过程中出现问题或用户想中途终止打印工作 可调用Abort方法

  通过检查Printing属性可测试当前是否有打印工作 如果打印工作被终止 Abort属性为真

  Canvas属性代表打印表面 Brush Font Pen属性可决定打印字体或图像的特征

  Printers属性中包含着已安装的打印机列表 PrinterIndex 属性是当前选择的打印

  机 Fonts属性中有当前打印机支持的字体 Orientertion属性可决定打印方向

  PageHeight PageWith中包含着当前的高度和宽度 PageNanber为当前页的值

  设置Title属性可决定在Windows打印管理器或网络中出现的文本

   TPrintDialog打印对话框

  TPrintDialog部件显示一打印对话框 用户在对话框中 可以选择打印机 打印页数 打印份数 当用户选择对话框中的Setup按钮 则出现打印设置对话框

  调用Execute方法显示打印对话框 如图 使用Option属性可设置打印对话框显示的形式 Options的设置如表 所示

  PrintRange属性可定义打印的范围 如果PrintPage的值是prPageNums 则可以设置FromPage和ToPage属性来确定打印范围 设置MinPage MaxPage属性可限制用户的打印范围

  表 打印对话框的Option属性的取值及含义

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    取值                          含义

  ──────────────────────────────────────

  PoHelp             如果是真值 对话框出现帮助按钮

  PoPageNums   如果是真值 页数按钮有效 用户可以设置打印范围

  PoPrintToFile   如果是真值 文件打印检查框将出现在对话框中 用户可以选

  择文件打印

  PoSelection      如果是真值 选择按钮有效 用户可打印文件中所选择的文本

  PoWarning       如果是真值 在打印机尚未安装时 用户选择OK 按按钮将出现警告信息

  PoDisablePrinttoToFile  如果是真值 而PoPrintToFile亦是真值时 当对话框出现时 文件打印对话框将无效

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  本章例程是利用Printer的画布进行文本打印的 用户选择打印菜单后 将弹出打印对话框 用户可设置各种参数 当用户选择打印按钮后 打印工作进行发送 此时将弹出打印取消对话框 见图 用户可中止打印工作 有关打印和打印取消的代码如下

  procedure TEditForm Print Click(Sender: TObject)

  var

  DistanceLine Line: Integer;

  PrintText: System Text;

  begin

  if PrintDialog Execute then

  begin

  Printer Canvas font := Memo Font;

  DistanceLine := Trunc( *FontDialog font size)

  OpenPrintCancelDialog;

  Printer BeginDoc;

  for line := to Memo Lines Count do

  begin

  Printer canvas textout( DistanceLine*Line Memo lines[Line])

  end;

  Printer EndDoc;

  BtnBottomDlg free;

  end;

  end;

  procedure TEditForm OpenPrintCancelDialog;

  begin

  BtnBottomDlg := TBtnBottomDlg Create(Application)

  BtnBottomDlg show;

  BtnBottomDlg canvas Brush Color := clActiveBorder;

  BtnBottomDlg canvas TextOut( Print +FileName)

  BtnBottomDlg canvas TextOut( if you want to

  stop please choice Cancel Button )

  end;

   返回目录 DELPHI基础教程

       编辑推荐

       Java程序设计培训视频教程

       J EE高级框架实战培训视频教程

  Visual C++音频/视频技术开发与实战

  Oracle索引技术

  ORACLE G数据库开发优化指南

  Java程序性能优化 让你的Java程序更快 更稳定

  C嵌入式编程设计模式

  Android游戏开发实践指南

lishixinzhi/Article/program/Delphi/201311/25251

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式