全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1295
推到 Plurk!
推到 Facebook!

如何快速print StringGrid 上的資料

答題得分者是:hagar
Sanyuan
一般會員


發表:24
回覆:32
積分:11
註冊:2002-06-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-03 11:10:29 IP:61.219.xxx.xxx 未訂閱
請教各位 如何直接列印 StringGrid 上的資料 是否有Function 可以直接將資料輸出至印表機 煩請解答 謝謝 發表人 - Sanyuan 於 2003/11/03 11:15:51
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-03 11:27:03 IP:202.39.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-03 11:54:33 IP:61.219.xxx.xxx 未訂閱
ㄟ.還是要自己畫就是了 謝謝!
系統時間:2024-09-08 18:06:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!