我想按一定的格式打印memo或richedit中的文字,怎样实现?怎样做打印预览?
解决方案 »
- GetWindowOrgEx与GetViewportOrgEx的区别?
- 遍历控件的问题.
- 买了本李维的DELPHI 7高效数据库程序设计,请各位再推荐……
- 如何在启动画面中加入动画
- 请问:如何实现StringGrid中某一行数据背景色动态闪烁,以提示注意此行数据的变化?
- 和大家讨论一个程序界面设计方面的问题
- 我该学哪种语言好呢???
- Delphi6的BUGs可真多!Borland/Inprise是怎么搞的!
- 问一个可能很弱的问题:ADO是不是通用的?Delphi,VC,ASP都有ADO组件,它们的用法,作用是不是一样的?
- 各位大哥:数据库应从哪里入手呢?——白玉静
- 如何使用Frame?
- 读过李维先生的<<DELPHI7高效数据库程序设计>>的请进
var
X1, X2 : Integer; //x1,x2,y1,y2代表什么?
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.Canvas.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]); //为什么x1,x2采取这样的一个算法?
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;
我有点菜,谢谢指导!如果要做打印预览,怎么做呀?