QR4.07+D7 可以預覽,列印會發生錯誤!(已解決) |
缺席
|
ssbbs
一般會員 發表:3 回覆:10 積分:2 註冊:2008-01-21 發送簡訊給我 |
請問一下,
在下寫一個簡單測試程式,部分程式碼如下: 螢幕預覽視窗顯示沒有問題, 但是,執行預覽視窗中的印表機設定與列印這兩項圖示功能, 程式就會發生錯誤: [code xml] //----------------------------------------- // 新頁次 //----------------------------------------- Procedure TForm1.NewPage(var Rep: TQrPrinter); var XX, YY : Integer; Begin With Rep do Begin NewPage; Canvas.Font.Name := '新細明體'; Canvas.Font.Size := 10; Canvas.Font.color := clBlack; Canvas.Font.Style := [fsBold]; XX := XPos(PaperWidth - 200); YY := YPos(100); Canvas.TextOut( XX, YY, '頁次: ' IntToStr(PageNumber)); End; End; procedure TForm1.btnPrintClick(Sender: TObject); var // x: Integer; TopMarginPage : Integer; BottomMarginPage: Integer; LeftMargin : Integer; EndOfPage : Integer; nWH : Integer; // Word Height nWW : Integer; // Word Width XX, YY : Integer; bufW : WideString; bufA : AnsiString; nOldRec : Integer; Rep : TQRPrinter; // cRptName : string; begin ShowMessage('Demo'); // RegisterPreviewClass( TMyQRPreviewInterface ); // 註冊螢幕預覽 Class, 自己寫的 TMyQRPreviewInterface Rep := TQRPrinter.Create(Self); // 建立 QrPrinter Class Rep.PreviewControl := Self; with Rep do try TopMarginPage := 100; // 上邊界 BottomMarginPage := 100; // 下邊界 LeftMargin := 100; // 左邊界 PaperSize := A4; // 紙張規格 Orientation := poPortrait; // 列印方向 Copies := 1; // 列印份數 Title := '報表預覽'; // 報表抬頭 // Application.ProcessMessages; BeginDoc; Self.NewPage(Rep); EndOfPage := YSize(PaperLength - BottomMarginPage); nWH := Canvas.TextHeight('X'); nWW := Canvas.TextWidth('X'); XX := XPos(LeftMargin); YY := YPos(TopMarginPage); {資料輸出} for XX := 1 to 200 do begin // unicode 寫法 // bufW := '中文字: Printing Test - Line ' IntToStr(XX); // TextOutW(Canvas.Handle, XX, YY, PWChar(bufW), Length(bufW)); // 一般 ANSI-String 用法 bufA := '中文字: Printing Test - Line ' IntToStr(XX); TextOutA(Canvas.Handle, XX, YY, PChar(bufA), Length(bufA)); // Inc( YY, nWH); // 超過頁長 if YY >= (EndOfPage - nWH) Then begin Self.NewPage(Rep); // 新頁次 YY := YPos(TopMarginPage); end; end; EndDoc; // // cRptName := 'test.qrp'; // Save(cRptName); // Load(cRptName); PreviewModal; // 開啟螢幕預覽視窗(Modal 模式) // Print; // 錯誤 finally Free; // Application.ProcessMessages; end; // 結束 end; [/code] 錯誤訊息: |
ssbbs
一般會員 發表:3 回覆:10 積分:2 註冊:2008-01-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |