熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

DELPHI基礎教程:文本編輯器的設計(二)[4]

2013-11-23 17:52:04  來源: Delphi編程 

   文件打印

  在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游戲開發實踐指南

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25251.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.