其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

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


发布日期:2021年10月24日
 
DELPHI基础教程:文本编辑器的设计(二)[4]

文件打印

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

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

procedure TEditFormPrintClick(Sender: TObject)

var

Line: Integer;

PrintText: SystemText;

begin

if PrintDialogExecute then

begin

AssignPrn(PrintText)

Rewrite(PrintText)

PrintCanvasFont := MemoFont;

For Line := to MemoLinesCount do

Writeln(PrintTextMemoLine[line];

SystemClose(PrintText)

end;

end;

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

TPrinter对象

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

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

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

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

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

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

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

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

TPrintDialog打印对话框

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

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

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

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

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

取值 含义

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

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

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

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

择文件打印

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

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

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

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

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

procedure TEditFormPrintClick(Sender: TObject)

var

DistanceLineLine: Integer;

PrintText: SystemText;

begin

if PrintDialogExecute then

begin

PrinterCanvasfont := MemoFont;

DistanceLine := Trunc(*FontDialogfontsize)

OpenPrintCancelDialog;

PrinterBeginDoc;

for line := to MemoLinesCount do

begin

Printercanvastextout(DistanceLine*LineMemolines[Line])

end;

PrinterEndDoc;

BtnBottomDlgfree;

end;

end;

procedure TEditFormOpenPrintCancelDialog;

begin

BtnBottomDlg := TBtnBottomDlgCreate(Application)

BtnBottomDlgshow;

BtnBottomDlgcanvasBrushColor := clActiveBorder;

BtnBottomDlgcanvasTextOut(Print+FileName)

BtnBottomDlgcanvasTextOut(if you want to

stop please choice Cancel Button

end;

返回目录DELPHI基础教程

编辑推荐

Java程序设计培训视频教程

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

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

Oracle索引技术

ORACLEG数据库开发优化指南

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

C嵌入式编程设计模式

Android游戏开发实践指南

[] [] [] []

               

上一篇:DELPHI基础教程:文本编辑器的设计(二)[1]

下一篇:DELPHI基础教程:文本编辑器的设计(二)[3]