線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1077
推到 Plurk!
推到 Facebook!

請問:列印文字檔,但列印出來的資料卻是空白?

尚未結案
825097
一般會員


發表:2
回覆:3
積分:1
註冊:2004-04-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-26 16:12:05 IP:218.160.xxx.xxx 未訂閱
我欲列印一筆文字檔 但是列印出來的資料卻是空白 請問是何原因造成? 謝謝 在列印事件程序如下: void __fastcall TForm1::MiPrintPClick(TObject *Sender) { TForm2 *ChildForm; ChildForm = ((TForm2*)ActiveMDIChild); if (Form1 -> MDIChildCount != 0) { Printer() -> BeginDoc(); ChildForm -> Memo1 -> PaintTo(Printer() -> Handle,0,0); Printer() -> EndDoc(); } }
Windyboy
版主


發表:7
回覆:119
積分:210
註冊:2002-11-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-27 12:00:05 IP:61.222.xxx.xxx 未訂閱
Hi 825097: 改成這樣試試^^ TRect r = Rect(200,200,Printer()->PageWidth - 200,Printer()->PageHeight - 200); Printer()->Canvas->TextRect(r, 200, 200, ChildForm->Memo1->Lines->Text); -------------------------- ~天下本無事 庸人自擾之~
825097
一般會員


發表:2
回覆:3
積分:1
註冊:2004-04-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-27 17:44:32 IP:218.160.xxx.xxx 未訂閱
謝謝 Windyboy 您的解答 這樣是可以達到列印的目的 但從程式得知它是將文字檔的資料全部讀取(include "enter") 以串列方式列印 如文字檔內容為123(下一行)456 可是在列印後卻是123(空格)456 <---原本的跳行,列印後變成空格,123 456在同一行  而不是文字檔的原貌123(下一行)456 請問是我這裡的程式撰寫不當,還是程式本意是如此?     
引言: Hi 825097: 改成這樣試試^^ TRect r = Rect(200,200,Printer()->PageWidth - 200,Printer()->PageHeight - 200); Printer()->Canvas->TextRect(r, 200, 200, ChildForm->Memo1->Lines->Text); -------------------------- ~天下本無事 庸人自擾之~
Ming Lin
一般會員


發表:27
回覆:53
積分:21
註冊:2003-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-28 12:17:28 IP:220.130.xxx.xxx 未訂閱
你好 我在剛好也有此問題 收循到這個連結 為speedup大大的解法 希望對你有幫助 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=44051
Windyboy
版主


發表:7
回覆:119
積分:210
註冊:2002-11-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-28 12:51:37 IP:61.222.xxx.xxx 未訂閱
Hi:      try this^^    
  TRect r = Rect(200,200,Printer()->PageWidth - 200,Printer()->PageHeight - 200);      int nLeft = 200;
  Printer()->BeginDoc();
  for(int i = 0;iLines->Count;i  )
  {
    Printer()->Canvas->TextRect(r, 200, nLeft, Memo1->Lines->Strings[i]);
    nLeft  = Printer()->Canvas->TextHeight(Memo1->Lines->Strings[i]);
  }
  Printer()->EndDoc();
-------------------------- ~天下本無事 庸人自擾之~
825097
一般會員


發表:2
回覆:3
積分:1
註冊:2004-04-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-28 16:37:02 IP:218.160.xxx.xxx 未訂閱
謝謝 Windyboy 指教 將此片段,回去研究後 得知Memo1->Lines->Count的Count為文字檔資料行數 然後利用for迴圈一行一行印出 從迴圈看到是這樣 但是列印出來卻只有最後一行的資料而最後一行以前都是空白 如資料為111(下一行)222(下一行)333 列印後結果為(前兩行空白)333 看不出是哪個關鍵出了問題?    
引言: Hi: try this^^
  TRect r = Rect(200,200,Printer()->PageWidth - 200,Printer()->PageHeight - 200);      int nLeft = 200;
  Printer()->BeginDoc();
  for(int i = 0;iLines->Count;i  )
  {
    Printer()->Canvas->TextRect(r, 200, nLeft, Memo1->Lines->Strings[i]);
    nLeft  = Printer()->Canvas->TextHeight(Memo1->Lines->Strings[i]);
  }
  Printer()->EndDoc();
-------------------------- ~天下本無事 庸人自擾之~
Windyboy
版主


發表:7
回覆:119
積分:210
註冊:2002-11-07

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-29 14:37:00 IP:61.222.xxx.xxx 未訂閱
Hi: 你可以把你有問題的CODE貼上來, 這樣才知道你問題出在哪裡^_^ 我再試了一次我貼的那一段CODE, 都可以印出來唷^^ -------------------------- ~天下本無事 庸人自擾之~
825097
一般會員


發表:2
回覆:3
積分:1
註冊:2004-04-26

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-30 09:50:36 IP:218.160.xxx.xxx 未訂閱
以下的CODE目的是要將ChildForm(子視窗)的文字檔列印出來 在那for迴圈可以將文字的最後一行列印出來 但最後一行以前都是空白的 void __fastcall TForm1::MiPrintPClick(TObject *Sender) {     TForm2 *ChildForm;     int nLeft = 200;     ChildForm = ((TForm2*)ActiveMDIChild);     TRect r = Rect(200,200,Printer()->PageWidth - 200,Printer()->PageHeight - 200);     if (Form1 -> MDIChildCount != 0) //至少有一個子視窗     {       Printer() -> BeginDoc();       for (int i = 0;i < ChildForm->Memo1->Lines->Count;i++)       {          Printer()->Canvas->TextRect(r, 200, nLeft, ChildForm->Memo1->Lines->Strings[i]);          nLeft += Printer()->Canvas->TextHeight(ChildForm->Memo1->Lines->Strings[i]);       }       Printer() -> EndDoc();     } }    
引言: Hi: 你可以把你有問題的CODE貼上來, 這樣才知道你問題出在哪裡^_^ 我再試了一次我貼的那一段CODE, 都可以印出來唷^^ -------------------------- ~天下本無事 庸人自擾之~
發表人 - 825097 於 2004/04/30 10:10:31
系統時間:2024-09-07 0:50:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!