我想在要打印的文本后面,加两个空行,可是即便我在Memo尾部用回车敲了两个空行,还是打印不出来。怎么办啊?代码如下,怎么修改,使之能在要打印的文本后面出现两个空行啊:procedure TForm1.Button2Click(Sender: TObject);
var
  Left1,Top1,PageHeight,i,x,y,LineSpace : integer;
begin
    Top1 := 20;
    Left1 := 10;
    y := Top1;//Top 起始行的位置,比如设置 Top := 20;
    x := Left1;//Left 左边的起始位置,比如设置:Left := 20;
    PageHeight := 2600;//A4得纸张大概是这么多,我记不太清,你可以通过某个过程先得到这个数据,
    LineSpace := 24;//行间距   printer.Canvas.Font.Name:='DEFAULT';
   printer.Canvas.Font.Charset:=DEFAULT_CHARSET;
   printer.Canvas.Font.Size:=17;         
   printer.Canvas.Font.Style:=[fsBold];     Printer.BeginDoc;
    for i := 0 to Memo1.Lines.Count - 1 do
      begin
        Printer.Canvas.TextOut(x,y,Memo1.Lines[i]);
        y := y + LineSpace;
        if(y > PageHeight) then
          begin
            Printer.NewPage;
            y := Top;
          end;
      end;    Printer.EndDoc;
end;           

解决方案 »

  1.   

    memo1.lines.add('              ');
    memo1.lines.add('              ');
      

  2.   

    for i := 0 to Memo1.Lines.Count - 1 do
      begin
      Printer.Canvas.TextOut(x,y,Memo1.Lines[i]);
      if (y + LineSpace * 2) > PageHeight then
      begin
      Printer.NewPage;
      y := Top;
      end else y := y + LineSpace;
    end;
      

  3.   

    按楼上的方法都试了,还是打印不出来空行。procedure TForm1.Button3Click(Sender: TObject);
    var
     i,x,y, LineSpace,PageHeight:integer;
    begin
       Memo1.Lines.Add('  ');
        Memo1.Lines.Add('  ');
    x:=20;
    y:=10;
    LineSpace:=24;
    PageHeight := 2600;
    Printer.BeginDoc;
     for i := 0 to Memo1.Lines.Count - 1 do
      begin
      Printer.Canvas.TextOut(x,y,Memo1.Lines[i]);
      if (y + LineSpace * 2) > PageHeight then
      begin
       Printer.NewPage;
       y := Top;
      end
      else
       y := y + LineSpace;
    end;
    Printer.EndDoc;
    end;   
      

  4.   

    var   
      PageLine: integer;//现在打印到第几行   
      PageMaxRow: integer=15; //空行行数
     procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
     begin   
      PageLine := <Line> mod PageMaxRow;   
      if (PageLine = 1) and (<line> > 1) then   
      Engine.newpage;
      child1.visible := False;
     end;
     //Footer1高度必须为0,这里不一定,可能4.0以下要为0,4.0以上不用
     procedure Footer1OnBeforePrint(Sender: TfrxComponent);
      
     var   
      i: integer;
     begin   
      i := iif(PageLine=0, PageMaxRow, PageLine);   
      child1.visible := True;
      while i < PageMaxRow do  
      begin   
      i := i + 1;  
      Engine.ShowBand(Child1); //打印印空白表格
      end;
      child1.visible := False;
     end;
     begin
     end.  
      

  5.   

    楼上的怎么能改为打印Memo+尾部空行的代码啊。现在我改来改去,只能用如下的,这样可以打印Memo尾部的空行,但是最后面多出了一个s,很不美观啊。procedure TForm1.Button3Click(Sender: TObject);
    var
     i,x,y, LineSpace,PageHeight:integer;
    begin
    Memo1.Text:=Memo1.Text+#13+#10+#13+#10+'s';
    x:=20;
    y:=10;
    LineSpace:=24;
    PageHeight := 2600;
    Printer.BeginDoc;
     for i := 0 to Memo1.Lines.Count - 1 do
      begin
      Printer.Canvas.TextOut(x,y,Memo1.Lines[i]);
      if (y + LineSpace * 2) > PageHeight then
      begin
       Printer.NewPage;
       y := Top;
      end
      else
       y := y + LineSpace;
    end;
    Printer.Canvas.TextOut(x,y,'  ');
    Printer.Canvas.TextOut(x,y,'  ');
    Printer.EndDoc;
    end;