打印机的小问题,很容易的,请进。(100分)

  • 主题发起人 主题发起人 张剑波
  • 开始时间 开始时间

张剑波

Unregistered / Unconfirmed
GUEST, unregistred user!
如下代码:
procedure TForm1.Button1Click(Sender: TObject);
var
ss:string;
hh:integer;
begin

hh:=5;
if not table1.Active then
table1.Active :=true ;
if not printdialog1.Execute then

exit ;

printer.begin
Doc ;
//printer.Canvas.font.PixelsPerInch:=getdevicecaps(printer.canvas.handle,logpixelsy);
while not table1.Eof do

begin

hh:=hh+40 ;
ss:=table1.Fields[0].AsString ;
ss:=ss+table1.Fields[1].AsString ;
ss:=ss+table1.Fields[2].asstring;
ss:=ss+table1.Fields[3].AsString ;
printer.Canvas.textout(20,20+hh, ss);
table1.next;
if hh >2000 then
exit;
end;

printer.EndDoc ;
table1.Active :=false;

end;

问题:
1。button按下后不打印,application结束后才打印,怎么办?
2。如何设置字体的大小?
3。如何知道canvas的能打印的宽、高?
 
1、打程序放在 with printerdo
begin
....end;

中试试, 我的程序可以打印。
2、字体大小可以这样: canvas.font.size:=.....
3、canvas 大小可以这样设置: printer.canvas.roundrect(...)
 
Agree to jiangone!
 
问题1:找到了,直接exit,未调用enddoc
 
多人接受答案了。
 
后退
顶部