請問:列印文字檔,但列印出來的資料卻是空白? |
尚未結案
|
825097
一般會員 發表:2 回覆:3 積分:1 註冊:2004-04-26 發送簡訊給我 |
我欲列印一筆文字檔
但是列印出來的資料卻是空白
請問是何原因造成? 謝謝
在列印事件程序如下: 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 發送簡訊給我 |
|
825097
一般會員 發表:2 回覆:3 積分:1 註冊:2004-04-26 發送簡訊給我 |
謝謝 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 發送簡訊給我 |
|
Windyboy
版主 發表:7 回覆:119 積分:210 註冊:2002-11-07 發送簡訊給我 |
Hi: try this^^
TRect r = Rect(200,200,Printer()->PageWidth - 200,Printer()->PageHeight - 200); int nLeft = 200; Printer()->BeginDoc(); for(int i = 0;i-------------------------- ~天下本無事 庸人自擾之~ |
825097
一般會員 發表:2 回覆:3 積分:1 註冊:2004-04-26 發送簡訊給我 |
謝謝 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;i-------------------------- ~天下本無事 庸人自擾之~ |
Windyboy
版主 發表:7 回覆:119 積分:210 註冊:2002-11-07 發送簡訊給我 |
|
825097
一般會員 發表:2 回覆:3 積分:1 註冊:2004-04-26 發送簡訊給我 |
以下的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 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |