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

列印的問題

答題得分者是:HikaruGo
zx4654
一般會員


發表:18
回覆:26
積分:8
註冊:2005-04-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-17 17:50:25 IP:118.170.xxx.xxx 訂閱
請問一下各位高手,我想請問關於列印的問題。首先,PrintDialog我不會用,我有爬文過了,可是很少說如何使用的。然後我的現況是我把StringGrid 的內容編入Memo,然後我要如何將它列印出來,我的資料超過100筆的話,會自動分頁印出嗎?我該如何處理啊!還有就我有試過下面的方法,可是跳出來是存一個列印檔,我想像Word那樣選列印就直接印該如何做呢?
TPrinter *Prt=Printer();
Printer()->BeginDoc();
Grid->PaintTo(Prt->Handle,20,20);
Printer()->EndDoc();
HikaruGo
中階會員


發表:22
回覆:69
積分:88
註冊:2007-12-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-04-17 22:26:50 IP:61.64.xxx.xxx 訂閱

===================引 用 zx4654 文 章===================
請問一下各位高手,我想請問關於列印的問題。首先,PrintDialog我不會用,我有爬文過了,可是很少說如何使用的。然後我的現況是我把StringGrid 的內容編入Memo,然後我要如何將它列印出來,我的資料超過100筆的話,會自動分頁印出嗎?

RE: 不會


我該如何處理啊!還有就我有試過下面的方法,可是跳出來是存一個列印檔,我想像Word那樣選列印就直接印該如何做呢?
TPrinter *Prt=Printer();
Printer()->BeginDoc();
Grid->PaintTo(Prt->Handle,20,20);
Printer()->EndDoc();


RE:自己控制 比較精確

原理 把Printer 當成畫布,你畫的內容就輸出到Printer
參考TPrinter.Canvas (但需考慮 解析度問題 ,X,Y 坐標 與Printer 不同)
Code 模型 像這樣


//設定Printer Info (橫或直 ...,第幾台..)

with Printer do
begin
BeginDoc;

Line=0;
(Data)For Loop
{
Line
Canvas.TextOut( X, Y * Line ,PrintString);

if Line > 20 then
新頁(NewPage());
Line=0;
}



EndDoc;
end;
zx4654
一般會員


發表:18
回覆:26
積分:8
註冊:2005-04-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-04-18 09:58:54 IP:118.170.xxx.xxx 訂閱
首先謝謝HikaruGo,不過我看不是很懂你寫的東西耶,可能是我對Prianter 不太熟,下面是我寫的,請問要如何改啊!我的功能就是吧Memo 印出,超過50頁就換頁。然後就是直接印出,不用再存什麼mdi。最好像PrintDialog可以選印表機,請問該如何作呢?

[code cpp]
int Line ;
TPrinter *Prntr = Printer();
TRect r = Rect(200,200,Prntr->PageWidth - 200,Prntr->PageHeight- 200);
Prntr->BeginDoc();
Line = 0 ;
for( int i = 0; i < Memo1->Lines->Count; i )
{ Line ;
Canvas->TextOut( 200, 200 * Line ,Memo1->Lines->Strings[i]);
if(Line>50)
{ Printer()->NewPage();
Line =50 ;
}

}
Prntr->Canvas->Brush->Color = clBlack;
Prntr->Canvas->FrameRect(r);
Prntr->EndDoc();
[/code]
Roach
中階會員


發表:59
回覆:104
積分:97
註冊:2002-11-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-04-20 02:15:38 IP:218.168.xxx.xxx 訂閱
這樣的print 方式只能列印到預設印表機
好比在桌面對某個想要列印的檔案按下右鍵跳出"print"的功能一樣
無法選印表機, 也無法設定紙張列印喜好等等

你可以從元件拉一個印表機設定對話框(好像叫TPrintDialog 來的)
使用方式跟TOpenDialog一樣

if(PrintDialog1->Executed==true){

//列印的程式碼包在這裡面即可

}
zx4654
一般會員


發表:18
回覆:26
積分:8
註冊:2005-04-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-04-21 08:41:57 IP:118.170.xxx.xxx 訂閱
謝謝兩位的熱心幫助,兩位的指導都很有幫助,所以就以先後順序為得分的依據囉!謝謝啦!
系統時間:2017-12-18 9:26:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!