如何快速print StringGrid 上的資料 |
答題得分者是:hagar
|
Sanyuan
一般會員 發表:24 回覆:32 積分:11 註冊:2002-06-23 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
How to print a TStringGrid?
http://www.delphipages.com/tips/thread.cfm?ID=46
procedure PrintGrid(sGrid: TStringGrid; sTitle: String); var X1, X2 : Integer; Y1, Y2 : Integer; TmpI : Integer; F : Integer; TR : TRect; begin Printer.Title:=sTitle; Printer.BeginDoc; Printer.Canvas.Pen.Color:=0; Printer.Canvas.Font.Name:='Times New Roman'; Printer.Canvas.Font.Size:=12; Printer.Ccnvas.Font.Style:=[fsBold, fsUnderline]; Printer.Canvas.TextOut(0, 100, Printer.Title); For F:=1 to sGrid.ColCount-1 do begin X1:=0; For TmpI:=1 to (F-1) do X1:=X1 5*(sGrid.ColWidths[TmpI]); Y1:=300; X2:=0; For TmpI:=1 to F do X2:=X2 5*(sGrid.ColWidths[TmpI]); Y2:=450; TR:=Rect(X1, Y1, X2-30, Y2); Printer.Canvas.Font.Style:=[fsBold]; Printer.Canvas.Font.Size:=7; Printer.Canvas.TextRect(TR, X1 50, 350, sGrid.Cells[F, 0]); Printer.Canvas.Font.Style:=[]; For TmpI:=1 to sGrid.RowCount-1 do begin Y1:=150*TmpI 300; Y2:=150*(TmpI 1) 300; TR:=Rect(X1, Y1, X2-30, Y2); Printer.Canvas.TextRect(TR, X1 50, Y1 50, sGrid.Cells[F, TmpI]); end; end; Printer.EndDoc; end;--- Everything I say is a lie. 發表人 - hagar 於 2003/11/03 11:29:09 |
Sanyuan
一般會員 發表:24 回覆:32 積分:11 註冊:2002-06-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |