列印的問題 |
答題得分者是:HikaruGo
|
zx4654
一般會員 發表:18 回覆:26 積分:8 註冊:2005-04-05 發送簡訊給我 |
請問一下各位高手,我想請問關於列印的問題。首先,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 發送簡訊給我 |
===================引 用 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 發送簡訊給我 |
首先謝謝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
中階會員 發表:61 回覆:104 積分:98 註冊:2002-11-05 發送簡訊給我 |
|
zx4654
一般會員 發表:18 回覆:26 積分:8 註冊:2005-04-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |