| csyasar | 30.04.2004 - 13:42:54 |
| procedure TTestPrintPreviewDlg.PrintCmdExecute(Sender: TObject);
var i,j,k,start,stop :integer; oldpage,oldZoom:integer; begin PrintDialog1.FromPage := 1; PrintDialog1.MinPage := 1; PrintDialog1.ToPage := SynEditPrintPreview.PageCount; PrintDialog1.MaxPage := SynEditPrintPreview.PageCount; oldpage:=SynEditPrintPreview.PageNumber-1; oldZoom:=SynEditPrintPreview.ScalePercent; SynEditPrintPreview.FirstPage; if PrintDialog1.Execute then begin for i:=1 to PrintDialog1.Copies do begin if PrintDialog1.PrintRange=prAllPages then //tumunu yaz SynEditPrintPreview.Print else begin start:= PrintDialog1.FromPage-1; //belli yerler stop:= PrintDialog1.ToPage-1; SynEditPrintPreview.ScalePercent:=300; SynEditPrintPreview.UpdatePreview; with Printer do //burası motor begin BeginDoc; for j := Start to Stop do begin for k:=1 to j do SynEditPrintPreview.NextPage; SynEditPrintPreview.PaintTo(Handle, 10, 10); if j<> Stop then NewPage; end; EndDoc; end; end; end; end; SynEditPrintPreview.FirstPage; for k:=1 to oldpage do SynEditPrintPreview.NextPage; SynEditPrintPreview.ScalePercent:=oldZoom; SynEditPrintPreview.UpdatePreview; end; | |