关于scrollbox的打印问题! ( 积分: 100 )

  • 主题发起人 主题发起人 liao_hc
  • 开始时间 开始时间
L

liao_hc

Unregistered / Unconfirmed
GUEST, unregistred user!
用以下代码打印scrollbox1中的内容(包含未见部分)可以成功,但是打印后查看scrollbox1的内容时用鼠标滚轮不起作用,而且scrollbox1竟然把工具栏(本来在scrollbox1上面的)也包含进来了,也就是说用鼠标拖动滚动条时,工具栏位置也随之变化!!望高手解燃眉之急!!!
procedure TForm1.A41Click(Sender: TObject);
var
ScaleX, ScaleY: Integer;
R: TRect;
bmp:TBitmap;
begin
printersetupDialog1.execute;
if MessageDlg('请放入A4纸张! 确认打印?',
mtConfirmation, [mbYes, mbNo], 1) = mrYes then
begin
bmp:= TBitmap.Create;
bmp.Width:=image1.width;
bmp.Height:=image1.Height;
ScrollBox1.AutoSize := true;
ScrollBox1.PaintTo(bmp.Canvas.Handle,1,1);
scrollbox1.Top:=32;
bmp.SavetoFile('s.bmp');
bmp.LoadFromFile('s.bmp');
Printer.BeginDoc; // **
with Printer do
try
ScaleX := GetDeviceCaps(Handle, logPixelsX);
ScaleY := GetDeviceCaps(Handle, logPixelsY);
R := Rect(0, 0, trunc(21/2.54*scaleX),trunc(29.7/2.54*scaleY));
Canvas.StretchDraw(R, bmp); // **
finally
EndDoc; // **
end;
end;
end;
 
用以下代码打印scrollbox1中的内容(包含未见部分)可以成功,但是打印后查看scrollbox1的内容时用鼠标滚轮不起作用,而且scrollbox1竟然把工具栏(本来在scrollbox1上面的)也包含进来了,也就是说用鼠标拖动滚动条时,工具栏位置也随之变化!!望高手解燃眉之急!!!
procedure TForm1.A41Click(Sender: TObject);
var
ScaleX, ScaleY: Integer;
R: TRect;
bmp:TBitmap;
begin
printersetupDialog1.execute;
if MessageDlg('请放入A4纸张! 确认打印?',
mtConfirmation, [mbYes, mbNo], 1) = mrYes then
begin
bmp:= TBitmap.Create;
bmp.Width:=image1.width;
bmp.Height:=image1.Height;
ScrollBox1.AutoSize := true;
ScrollBox1.PaintTo(bmp.Canvas.Handle,1,1);
scrollbox1.Top:=32;
bmp.SavetoFile('s.bmp');
bmp.LoadFromFile('s.bmp');
Printer.BeginDoc; // **
with Printer do
try
ScaleX := GetDeviceCaps(Handle, logPixelsX);
ScaleY := GetDeviceCaps(Handle, logPixelsY);
R := Rect(0, 0, trunc(21/2.54*scaleX),trunc(29.7/2.54*scaleY));
Canvas.StretchDraw(R, bmp); // **
finally
EndDoc; // **
end;
end;
end;
 
呵呵,没有哪位大哥肯帮忙吗?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
639
import
I
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部