procedure TForm3.Button4Click(Sender: TObject);
{这段代码哪有问题,我想把文本文件打印出来}
 var
   lp:integer;
   PathBuffer: array[0..255] of char;
   currentpath:string;
   SL: TStringlist;
 begin
   GetCurrentDirectory(255, PathBuffer);
   currentpath:=string(PathBuffer);
   {打印文件}
    SL := TStringlist.Create ;
    SL.LoadFromFile(currentpath+'\test.txt');
    Printer.Create ;
    Printer.BeginDoc ;
    printer.Title := currentpath+'\zhong.txt';
    for lp:=0 to sl.Count -1  do begin
      Printer.Canvas.TextRect(Rect(200,200,50,50), 200, 200, sl.Strings[lp]);
       end;
    Printer.EndDoc ;
end;

解决方案 »

  1.   

    错误1:     SL使用完了要   sl.free  掉
      

  2.   

    Printer.Canvas.TextRect(Rect(200,200,50,50), 200, 200, sl.Strings[lp]);
    这一行好像有问题,所有文本都打印同一个地方.位置没调整好.
      

  3.   

    sl.free  我是在form clsoe时关闭的,
    我也觉得Printer.Canvas.TextRect(Rect(200,200,50,50), 200, 200, sl.Strings[lp]);
    这一句有问题
    可是怎么解决按行打印问题
    {总的问题我已经解决,可我还想知道这是怎么回事!!!}