如何用画布命令打印表格线?(50分)

  • 主题发起人 主题发起人 gzxhj
  • 开始时间 开始时间
什么意思?
TCanvas.MoveTo, TCanvas.LineTo?
 
画线:
TCanvas.MoveTo
TCanvas.LineTo
TCanvas.Rectangle
线条宽度:TCanvas.Pen.Width
线条样式:TCanvas.Pen.Style
线条颜色: TCanvas.Pen.Color
 
屏幕上的画布肯定是可以的,打印机上的呢?
比如:moveto(100,100),lineto(100,500)后,在反向往回画.
我记得pb里可以的
 
TPrinter有Canvas可以画的,就是按照上面的方法先用MoveTo到起点
然后用LinTo到终点
不过我一般很少这样做
我的做法是放一个Image在窗体上先画在Image上,如果你把Image的Visible设为False的话,就可以不会在窗体上看到了,你画好了用
Printer.canvas.stretchdraw(strect,YourPic.Picture.Graphic);
输出到打印机上,不过速度不是很快,因为使用图形的模式
如果你要定位方面的资料,我还有点,慢慢写来:)
 
我是要打印一个表格,中间的分隔线如何画,最好谁有这方面的程序,寄给我一份,谢谢! Email to :gzxhj@263.net
 
附加功能 将问题提前
 
gzxhj:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
和在画布上画差不多
use Printers;

procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
xdpi, ydpi: Integer;
begin
xdpi := GetDeviceCaps(Printer.Handle,LOGPIXELSX);
ydpi := GetDeviceCaps(Printer.Handle,LOGPIXELSY);
Printer.Title := 'Printer Test';
Printer.BeginDoc;
with Printer.Canvas do
begin
for i := 1 to 5
begin
MoveTo(xdpi,ydpi*i);
LineTo(xdpi*5,ydpi*i);
MoveTo(xdpi*i,ydpi);
LineTo(xdpi*i,ydpi*5);
end;
end;
Printer.EndDoc;
end;
 
多人接受答案了。
 
后退
顶部