我在win2000上编了一段程序,在win2000中打印,文字都在表格里,win98则不行。
程序简单如下:
 pointx:=trunc(getdevicecaps(printer.handle,logpixelsx)/2.54*2);
  pointy:=trunc(getdevicecaps(printer.handle,logpixelsy)/2.54*2);
  printer.orientation:=polandscape;
  printer.canvas.font.name:='宋体';
  printer.canvas.font.size:=10;
  printwidth:=printer.canvas.textwidth('是');
  printstep:=printer.canvas.textheight('是')*2;
  x:=pointx-3*printwidth;
  y:=pointy; printer.Canvas.TextOut(x+27*printwidth,y-2*printstep,'建筑   序号');
如表格有两栏,98中序号则跑到第一栏去了,即:建筑 序号
不只怎么解决,请帮忙。很焦急。

解决方案 »

  1.   

    Canvas.TextRect();
    改用这个函数试试
      

  2.   

    printer.Canvas.TextOut(x+27*printwidth,y-2*printstep,'建筑   序号');
    '建筑   序号'这里设置成两个TextOut试试
      

  3.   

    printer.Canvas.TextOut(x+27*printwidth,y-2*printstep,'建筑   序号');
    '建筑   序号'这里设置成两个TextOut试试
    如:
    printer.Canvas.TextOut(x+27*printwidth,y-2*printstep,'建筑');
    printer.Canvas.TextOut(x+27*printwidth+固定值,y-2*printstep,'序号');
      

  4.   

    我也遇到过这种情况
    实在是搞不定,不知道是什么原因,
    于是我的软件运行环境,要求在WIN2000下也就没有问题了,
    楼主也可以这样做的~~