You've already forked lazarus-ccr
aarre
applications
bindings
components
Comba_Animation
aboutcomponent
acs
beepfp
callite
chelper
chemtext
cmdline
cmdlinecfg
colorpalette
cryptini
csvdocument
epiktimer
fpexif
fpsound
fpspreadsheet
fractions
freetypepascal
geckoport
gradcontrols
grid_semaphor
industrialstuff
iosdesigner
iphonelazext
jujiboutils
jvcllaz
kcontrols
lazautoupdate
lazbarcodes
lclextensions
longtimer
manualdock
mbColorLib
mplayer
multithreadprocs
nvidia-widgets
onguard
orpheus
playsoundpackage
poweredby
powerpdf
rgbgraphics
richmemo
richview
rtfview
rx
scrolltext
smnetgradient
spktoolbar
svn
systools
tdi
thtmlport
demo_src
GRID.RES
demounit.dfm
demounit.lfm
demounit.lrs
demounit.pas
fdemunit.dfm
fdemunit.lfm
fdemunit.lrs
fdemunit.pas
fontdlg.dfm
fontdlg.lfm
fontdlg.lrs
fontdlg.pas
framedem.dpr
framedem.exe.manifest
framedem.lpi
framedem.res
gopage.dfm
gopage.lfm
gopage.lrs
gopage.pas
htmlabt.dfm
htmlabt.lfm
htmlabt.lrs
htmlabt.pas
htmldemo.dpr
htmldemo.lpi
htmldemo.res
imgform.dfm
imgform.lfm
imgform.lrs
imgform.pas
previewform.dfm
previewform.lfm
previewform.lrs
previewform.pas
printstatusform.dfm
printstatusform.lfm
printstatusform.lrs
printstatusform.pas
submit.dfm
submit.lfm
submit.lrs
submit.pas
package
AGif2.gif
Import1.gif
Order1.gif
TryIt.htm
arizona.jpg
arrows.gif
blkgreen.htm
colors.htm
contents.bmp
crhrn1.wav
demo.css
demo.htm
glass.bmp
gudcolor.htm
leftwin.htm
license.txt
mail5a.gif
minus.gif
music.mid
note.gif
pengbrew.png
plus.gif
properties.htm
pyramids.jpg
readme1.htm
readme2.htm
readme3.htm
sample1.htm
sample2.htm
sample3.htm
smallcheck.gif
space.htm
support.htm
table.bmp
tabltut1.htm
tabltut2.htm
tabltut3.htm
things.htm
ugly.gif
whatsnew.htm
windmill.jpg
wmelon.bmp
tparadoxdataset
tvplanit
xdev_toolkit
zlibar
zmsql
examples
image_sources
lclbindings
wst
543 lines
14 KiB
ObjectPascal
543 lines
14 KiB
ObjectPascal
![]() |
{*************************************************************}
|
||
|
{* *}
|
||
|
{* Thanks to Chris Wallace for most of the ideas and *}
|
||
|
{* code associated with Print Preview and the Preview Form *}
|
||
|
{* *}
|
||
|
{*************************************************************}
|
||
|
|
||
|
{$ifDef ver150} {Delphi 7}
|
||
|
{$Define Delphi7_Plus}
|
||
|
{$endif}
|
||
|
{$ifDef ver170} {Delphi 2005}
|
||
|
{$Define Delphi7_Plus}
|
||
|
{$endif}
|
||
|
{$ifDef ver180} {Delphi 2006}
|
||
|
{$Define Delphi7_Plus} {9.4}
|
||
|
{$endif}
|
||
|
|
||
|
unit PreviewForm;
|
||
|
|
||
|
interface
|
||
|
|
||
|
uses
|
||
|
{$IFNDEF LCL} Windows, Messages, {$ELSE} LclIntf, LMessages, LclType, LResources, {$ENDIF}
|
||
|
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||
|
StdCtrls, ExtCtrls, Buttons, MetaFilePrinter, HTMLView, PrintStatusForm;
|
||
|
|
||
|
const
|
||
|
crZoom = 40;
|
||
|
crHandDrag = 41;
|
||
|
ZOOMFACTOR = 1.5;
|
||
|
|
||
|
type
|
||
|
TPreviewForm = class(TForm)
|
||
|
ToolBarPanel: TPanel;
|
||
|
GridBut: TSpeedButton;
|
||
|
ZoomCursorBut: TSpeedButton;
|
||
|
HandCursorBut: TSpeedButton;
|
||
|
OnePageBut: TSpeedButton;
|
||
|
TwoPageBut: TSpeedButton;
|
||
|
PrintBut: TBitBtn;
|
||
|
NextPageBut: TBitBtn;
|
||
|
PrevPageBut: TBitBtn;
|
||
|
CloseBut: TBitBtn;
|
||
|
ZoomBox: TComboBox;
|
||
|
StatBarPanel: TPanel;
|
||
|
CurPageLabel: TPanel;
|
||
|
ZoomLabel: TPanel;
|
||
|
Panel1: TPanel;
|
||
|
HintLabel: TLabel;
|
||
|
MoveButPanel: TPanel;
|
||
|
FirstPageSpeed: TSpeedButton;
|
||
|
PrevPageSpeed: TSpeedButton;
|
||
|
NextPageSpeed: TSpeedButton;
|
||
|
LastPageSpeed: TSpeedButton;
|
||
|
PageNumSpeed: TSpeedButton;
|
||
|
ScrollBox1: TScrollBox;
|
||
|
ContainPanel: TPanel;
|
||
|
PagePanel: TPanel;
|
||
|
PB1: TPaintBox;
|
||
|
PagePanel2: TPanel;
|
||
|
PB2: TPaintBox;
|
||
|
PrintDialog1: TPrintDialog;
|
||
|
FitPageBut: TSpeedButton;
|
||
|
FitWidthBut: TSpeedButton;
|
||
|
Bevel1: TBevel;
|
||
|
Bevel2: TBevel;
|
||
|
Bevel3: TBevel;
|
||
|
Bevel4: TBevel;
|
||
|
Bevel5: TBevel;
|
||
|
Bevel6: TBevel;
|
||
|
UnitsBox: TComboBox;
|
||
|
Bevel7: TBevel;
|
||
|
procedure CloseButClick(Sender: TObject);
|
||
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
|
procedure ScrollBox1Resize(Sender: TObject);
|
||
|
procedure PBPaint(Sender: TObject);
|
||
|
procedure GridButClick(Sender: TObject);
|
||
|
procedure FormShow(Sender: TObject);
|
||
|
procedure ZoomBoxChange(Sender: TObject);
|
||
|
procedure TwoPageButClick(Sender: TObject);
|
||
|
procedure NextPageButClick(Sender: TObject);
|
||
|
procedure PrevPageButClick(Sender: TObject);
|
||
|
procedure FirstPageSpeedClick(Sender: TObject);
|
||
|
procedure LastPageSpeedClick(Sender: TObject);
|
||
|
procedure ZoomCursorButClick(Sender: TObject);
|
||
|
procedure HandCursorButClick(Sender: TObject);
|
||
|
procedure PB1MouseDown(Sender: TObject; Button: TMouseButton;
|
||
|
Shift: TShiftState; X, Y: Integer);
|
||
|
procedure PB1MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||
|
Y: Integer);
|
||
|
procedure PB1MouseUp(Sender: TObject; Button: TMouseButton;
|
||
|
Shift: TShiftState; X, Y: Integer);
|
||
|
procedure PrintButClick(Sender: TObject);
|
||
|
procedure PageNumSpeedClick(Sender: TObject);
|
||
|
procedure OnePageButMouseUp(Sender: TObject; Button: TMouseButton;
|
||
|
Shift: TShiftState; X, Y: Integer);
|
||
|
procedure FitPageButClick(Sender: TObject);
|
||
|
procedure FitWidthButClick(Sender: TObject);
|
||
|
procedure UnitsBoxChange(Sender: TObject);
|
||
|
private
|
||
|
Viewer: ThtmlViewer;
|
||
|
protected
|
||
|
FCurPage : integer;
|
||
|
OldHint : TNotifyEvent;
|
||
|
DownX, DownY : integer;
|
||
|
Moving : boolean;
|
||
|
MFPrinter : TMetaFilePrinter;
|
||
|
procedure DrawMetaFile(PB: TPaintBox; mf: TMetaFile);
|
||
|
procedure OnHint(Sender: TObject);
|
||
|
procedure SetCurPage(Val: integer);
|
||
|
procedure CheckEnable;
|
||
|
property CurPage: integer read FCurPage write SetCurPage;
|
||
|
public
|
||
|
Zoom : double;
|
||
|
constructor CreateIt(AOwner: TComponent; AViewer: ThtmlViewer; var Abort: boolean);
|
||
|
destructor Destroy; override;
|
||
|
end;
|
||
|
|
||
|
|
||
|
implementation
|
||
|
|
||
|
uses
|
||
|
Gopage;
|
||
|
|
||
|
{$IFNDEF LCL}
|
||
|
{$R *.DFM}
|
||
|
{$ENDIF}
|
||
|
{$R GRID.RES}
|
||
|
|
||
|
constructor TPreviewForm.CreateIt(AOwner: TComponent; AViewer: ThtmlViewer;
|
||
|
var Abort: boolean);
|
||
|
var
|
||
|
StatusForm: TPrnStatusForm;
|
||
|
begin
|
||
|
inherited Create(AOwner);
|
||
|
ZoomBox.ItemIndex := 0;
|
||
|
UnitsBox.ItemIndex := 0;
|
||
|
Screen.Cursors[crZoom] := LoadCursor(hInstance, 'ZOOM_CURSOR');
|
||
|
Screen.Cursors[crHandDrag] := LoadCursor(hInstance, 'HAND_CURSOR');
|
||
|
ZoomCursorButClick(nil);
|
||
|
Viewer := AViewer;
|
||
|
MFPrinter := TMetaFilePrinter.Create(Self);
|
||
|
StatusForm := TPrnStatusForm.Create(Self);
|
||
|
try
|
||
|
StatusForm.DoPreview(Viewer, MFPrinter, Abort);
|
||
|
finally
|
||
|
StatusForm.Free;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
destructor TPreviewForm.Destroy;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.CloseButClick(Sender: TObject);
|
||
|
begin
|
||
|
Close;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.FormClose(Sender: TObject;
|
||
|
var Action: TCloseAction);
|
||
|
begin
|
||
|
Action := caFree;
|
||
|
Application.OnHint := OldHint;
|
||
|
MFPrinter.Free;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.ScrollBox1Resize(Sender: TObject);
|
||
|
const
|
||
|
BORD = 20;
|
||
|
var
|
||
|
z : double;
|
||
|
tmp : integer;
|
||
|
TotWid : integer;
|
||
|
begin
|
||
|
case ZoomBox.ItemIndex of
|
||
|
0 : FitPageBut.Down := True;
|
||
|
1 : FitWidthBut.Down := True;
|
||
|
else
|
||
|
begin
|
||
|
FitPageBut.Down := False;
|
||
|
FitWidthBut.Down := False;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
if ZoomBox.ItemIndex = -1 then
|
||
|
ZoomBox.ItemIndex := 0;
|
||
|
|
||
|
Case ZoomBox.ItemIndex of
|
||
|
0: z := ((ScrollBox1.ClientHeight - BORD) / PixelsPerInch) /
|
||
|
(MFPrinter.PaperHeight / MFPrinter.PixelsPerInchY);
|
||
|
1: z := ((ScrollBox1.ClientWidth - BORD) / PixelsPerInch) /
|
||
|
(MFPrinter.PaperWidth / MFPrinter.PixelsPerInchX);
|
||
|
2: z := Zoom;
|
||
|
3: z := 0.25;
|
||
|
4: z := 0.50;
|
||
|
5: z := 0.75;
|
||
|
6: z := 1.00;
|
||
|
7: z := 1.25;
|
||
|
8: z := 1.50;
|
||
|
9: z := 2.00;
|
||
|
10: z := 3.00;
|
||
|
11: z := 4.00;
|
||
|
else
|
||
|
z := 1;
|
||
|
end;
|
||
|
|
||
|
if ZoomBox.ItemIndex<>0 then OnePageBut.Down := True;
|
||
|
|
||
|
PagePanel.Height := TRUNC(PixelsPerInch * z * MFPrinter.PaperHeight / MFPrinter.PixelsPerInchY);
|
||
|
PagePanel.Width := TRUNC(PixelsPerInch * z * MFPrinter.PaperWidth / MFPrinter.PixelsPerInchX);
|
||
|
|
||
|
PagePanel2.Visible := TwoPageBut.Down;
|
||
|
if TwoPageBut.Down then
|
||
|
begin
|
||
|
PagePanel2.Width := PagePanel.Width;
|
||
|
PagePanel2.Height := PagePanel.Height;
|
||
|
end;
|
||
|
|
||
|
TotWid := PagePanel.Width + BORD;
|
||
|
if TwoPageBut.Down then
|
||
|
TotWid := TotWid + PagePanel2.Width + BORD;
|
||
|
|
||
|
// Resize the Contain Panel
|
||
|
tmp := PagePanel.Height + BORD;
|
||
|
if tmp < ScrollBox1.ClientHeight then
|
||
|
tmp := ScrollBox1.ClientHeight-1;
|
||
|
ContainPanel.Height := tmp;
|
||
|
|
||
|
tmp := TotWid;
|
||
|
if tmp < ScrollBox1.ClientWidth then
|
||
|
tmp := ScrollBox1.ClientWidth-1;
|
||
|
ContainPanel.Width := tmp;
|
||
|
|
||
|
// Center the Page Panel
|
||
|
if PagePanel.Height + BORD < ContainPanel.Height then
|
||
|
PagePanel.Top := ContainPanel.Height div 2 - PagePanel.Height div 2
|
||
|
else
|
||
|
PagePanel.Top := BORD div 2;
|
||
|
PagePanel2.Top := PagePanel.Top;
|
||
|
|
||
|
if TotWid < ContainPanel.Width then
|
||
|
PagePanel.Left := ContainPanel.Width div 2 - (TotWid - BORD) div 2
|
||
|
else
|
||
|
PagePanel.Left := BORD div 2;
|
||
|
PagePanel2.Left := PagePanel.Left + PagePanel.Width + BORD;
|
||
|
|
||
|
{Make sure the scroll bars are hidden if not needed}
|
||
|
if (PagePanel.Width +BORD <= ScrollBox1.Width) and
|
||
|
(PagePanel.Height +BORD <= ScrollBox1.Height) then
|
||
|
begin
|
||
|
ScrollBox1.HorzScrollBar.Visible := False;
|
||
|
ScrollBox1.VertScrollBar.Visible := False;
|
||
|
end
|
||
|
else
|
||
|
begin
|
||
|
ScrollBox1.HorzScrollBar.Visible := True;
|
||
|
ScrollBox1.VertScrollBar.Visible := True;
|
||
|
end;
|
||
|
|
||
|
// Set the Zoom Variable
|
||
|
Zoom := z;
|
||
|
ZoomLabel.Caption := Format('%1.0n', [z * 100]) + '%';
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.DrawMetaFile(PB: TPaintBox; mf: TMetaFile);
|
||
|
begin
|
||
|
PB.Canvas.Draw(0, 0, mf);
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.PBPaint(Sender: TObject);
|
||
|
var
|
||
|
PB : TPaintBox;
|
||
|
x1, y1 : integer;
|
||
|
x, y : integer;
|
||
|
Factor : double;
|
||
|
Draw : boolean;
|
||
|
Page : integer;
|
||
|
begin
|
||
|
PB := Sender as TPaintBox;
|
||
|
|
||
|
if PB = PB1 then
|
||
|
begin
|
||
|
Draw := CurPage < MFPrinter.LastAvailablePage;
|
||
|
Page := CurPage;
|
||
|
end
|
||
|
else
|
||
|
begin
|
||
|
// PB2
|
||
|
Draw := TwoPageBut.Down and (CurPage+1 < MFPrinter.LastAvailablePage);
|
||
|
Page := CurPage + 1;
|
||
|
end;
|
||
|
|
||
|
SetMapMode(PB.Canvas.Handle, MM_ANISOTROPIC);
|
||
|
SetWindowExtEx(PB.Canvas.Handle, MFPrinter.PaperWidth, MFPrinter.PaperHeight, nil);
|
||
|
SetViewportExtEx(PB.Canvas.Handle, PB.Width, PB.Height, nil);
|
||
|
SetWindowOrgEx(PB.Canvas.Handle, -MFPrinter.OffsetX, -MFPrinter.OffsetY, nil);
|
||
|
if Draw then
|
||
|
DrawMetaFile(PB, MFPrinter.MetaFiles[Page]);
|
||
|
|
||
|
if GridBut.Down then
|
||
|
begin
|
||
|
SetWindowOrgEx(PB.Canvas.Handle, 0, 0, nil);
|
||
|
PB.Canvas.Pen.Color := clLtGray;
|
||
|
if UnitsBox.ItemIndex = 0 then
|
||
|
Factor := 1.0
|
||
|
else Factor := 2.54;
|
||
|
|
||
|
for x := 1 to Round(MFPrinter.PaperWidth / MFPrinter.PixelsPerInchX * Factor) do
|
||
|
begin
|
||
|
x1 := Round(MFPrinter.PixelsPerInchX * x / Factor);
|
||
|
PB.Canvas.MoveTo(x1, 0);
|
||
|
PB.Canvas.LineTo(x1, MFPrinter.PaperHeight);
|
||
|
end;
|
||
|
|
||
|
for y := 1 to Round(MFPrinter.PaperHeight / MFPrinter.PixelsPerInchY * Factor) do
|
||
|
begin
|
||
|
y1 := Round(MFPrinter.PixelsPerInchY * y / Factor);
|
||
|
PB.Canvas.MoveTo(0, y1);
|
||
|
PB.Canvas.LineTo(MFPrinter.PaperWidth, y1);
|
||
|
end;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.GridButClick(Sender: TObject);
|
||
|
begin
|
||
|
PB1.Invalidate;
|
||
|
PB2.Invalidate;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.OnHint(Sender: TObject);
|
||
|
begin
|
||
|
HintLabel.Caption := Application.Hint;
|
||
|
end;
|
||
|
|
||
|
|
||
|
procedure TPreviewForm.FormShow(Sender: TObject);
|
||
|
begin
|
||
|
CurPage := 0;
|
||
|
OldHint := Application.OnHint;
|
||
|
Application.OnHint := OnHint;
|
||
|
CheckEnable;
|
||
|
{$ifdef delphi7_plus}
|
||
|
PagePanel.ParentBackground := False;
|
||
|
PagePanel2.ParentBackground := False;
|
||
|
{$endif}
|
||
|
ScrollBox1Resize(Nil); {make sure it gets sized}
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.SetCurPage(Val: integer);
|
||
|
var
|
||
|
tmp : integer;
|
||
|
begin
|
||
|
FCurPage := Val;
|
||
|
tmp := 0;
|
||
|
if MFPrinter <> nil then
|
||
|
tmp := MFPrinter.LastAvailablePage;
|
||
|
CurPageLabel.Caption := Format('Page %d of %d', [Val+1, tmp]);
|
||
|
PB1.Invalidate;
|
||
|
PB2.Invalidate;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.ZoomBoxChange(Sender: TObject);
|
||
|
begin
|
||
|
ScrollBox1Resize(nil);
|
||
|
ScrollBox1Resize(nil);
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.TwoPageButClick(Sender: TObject);
|
||
|
begin
|
||
|
ZoomBox.ItemIndex := 0;
|
||
|
ScrollBox1Resize(nil);
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.NextPageButClick(Sender: TObject);
|
||
|
begin
|
||
|
CurPage := CurPage + 1;
|
||
|
CheckEnable;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.PrevPageButClick(Sender: TObject);
|
||
|
begin
|
||
|
CurPage := CurPage - 1;
|
||
|
CheckEnable;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.CheckEnable;
|
||
|
begin
|
||
|
NextPageBut.Enabled := CurPage+1 < MFPrinter.LastAvailablePage;
|
||
|
PrevPageBut.Enabled := CurPage > 0;
|
||
|
|
||
|
NextPageSpeed.Enabled := NextPageBut.Enabled;
|
||
|
PrevPageSpeed.Enabled := PrevPageBut.Enabled;
|
||
|
|
||
|
FirstPageSpeed.Enabled := PrevPageBut.Enabled;
|
||
|
LastPageSPeed.Enabled := NextPageBut.Enabled;
|
||
|
|
||
|
PageNumSpeed.Enabled := MFPrinter.LastAvailablePage > 1;
|
||
|
end;
|
||
|
|
||
|
|
||
|
procedure TPreviewForm.FirstPageSpeedClick(Sender: TObject);
|
||
|
begin
|
||
|
CurPage := 0;
|
||
|
CheckEnable;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.LastPageSpeedClick(Sender: TObject);
|
||
|
begin
|
||
|
CurPage := MFPrinter.LastAvailablePage-1;
|
||
|
CheckEnable;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.ZoomCursorButClick(Sender: TObject);
|
||
|
begin
|
||
|
PB1.Cursor := crZoom;
|
||
|
PB2.Cursor := crZoom;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.HandCursorButClick(Sender: TObject);
|
||
|
begin
|
||
|
PB1.Cursor := crHandDrag;
|
||
|
PB2.Cursor := crHandDrag;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.PB1MouseDown(Sender: TObject; Button: TMouseButton;
|
||
|
Shift: TShiftState; X, Y: Integer);
|
||
|
var
|
||
|
sx, sy : single;
|
||
|
nx, ny : integer;
|
||
|
begin
|
||
|
if ZoomCursorBut.Down then
|
||
|
begin
|
||
|
sx := X / PagePanel.Width;
|
||
|
sy := Y / PagePanel.Height;
|
||
|
|
||
|
if (ssLeft in Shift) and (Zoom < 20.0) then Zoom := Zoom * ZOOMFACTOR;
|
||
|
if (ssRight in Shift) and (Zoom > 0.1) then Zoom := Zoom / ZOOMFACTOR;
|
||
|
ZoomBox.ItemIndex := 2;
|
||
|
ScrollBox1Resize(nil);
|
||
|
|
||
|
nx := TRUNC(sx * PagePanel.Width);
|
||
|
ny := TRUNC(sy * PagePanel.Height);
|
||
|
ScrollBox1.HorzScrollBar.Position := nx - ScrollBox1.Width div 2;
|
||
|
ScrollBox1.VertScrollBar.Position := ny - ScrollBox1.Height div 2;
|
||
|
end;
|
||
|
|
||
|
if HandCursorBut.Down then
|
||
|
begin
|
||
|
DownX := X;
|
||
|
DownY := Y;
|
||
|
Moving := True;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.PB1MouseMove(Sender: TObject; Shift: TShiftState; X,
|
||
|
Y: Integer);
|
||
|
begin
|
||
|
if Moving then
|
||
|
begin
|
||
|
ScrollBox1.HorzScrollBar.Position := ScrollBox1.HorzScrollBar.Position + (DownX - X);
|
||
|
ScrollBox1.VertScrollBar.Position := ScrollBox1.VertScrollBar.Position + (DownY - Y);
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.PB1MouseUp(Sender: TObject; Button: TMouseButton;
|
||
|
Shift: TShiftState; X, Y: Integer);
|
||
|
begin
|
||
|
Moving := False;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.PrintButClick(Sender: TObject);
|
||
|
var
|
||
|
StatusForm: TPrnStatusForm;
|
||
|
Dummy: boolean;
|
||
|
begin
|
||
|
with PrintDialog1 do
|
||
|
begin
|
||
|
MaxPage := 9999;
|
||
|
ToPage := 1;
|
||
|
Options := [poPageNums];
|
||
|
StatusForm := TPrnStatusForm.Create(Self);
|
||
|
if Execute then
|
||
|
if PrintRange = prAllPages then
|
||
|
StatusForm.DoPrint(Viewer, FromPage, 9999, Dummy)
|
||
|
else
|
||
|
StatusForm.DoPrint(Viewer, FromPage, ToPage, Dummy);
|
||
|
StatusForm.Free;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.PageNumSpeedClick(Sender: TObject);
|
||
|
var
|
||
|
gp : TGoPageForm;
|
||
|
begin
|
||
|
gp := TGoPageForm.Create(Self);
|
||
|
gp.PageNum.MaxValue := MFPrinter.LastAvailablePage;
|
||
|
gp.PageNum.Value := CurPage + 1;
|
||
|
|
||
|
if gp.ShowModal = mrOK then
|
||
|
begin
|
||
|
CurPage := gp.PageNum.Value - 1;
|
||
|
CheckEnable;
|
||
|
end;
|
||
|
gp.Free;
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.OnePageButMouseUp(Sender: TObject;
|
||
|
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||
|
begin
|
||
|
ZoomBox.ItemIndex := 0;
|
||
|
ScrollBox1Resize(nil);
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.FitPageButClick(Sender: TObject);
|
||
|
begin
|
||
|
ZoomBox.ItemIndex := 0;
|
||
|
ZoomBoxChange(nil);
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.FitWidthButClick(Sender: TObject);
|
||
|
begin
|
||
|
ZoomBox.ItemIndex := 1;
|
||
|
ZoomBoxChange(nil);
|
||
|
end;
|
||
|
|
||
|
procedure TPreviewForm.UnitsBoxChange(Sender: TObject);
|
||
|
begin
|
||
|
if GridBut.down then
|
||
|
begin
|
||
|
PB1.Invalidate;
|
||
|
PB2.Invalidate;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
initialization
|
||
|
{$IFDEF LCL}
|
||
|
{$I PreviewForm.lrs} {Include form's resource file}
|
||
|
{$ENDIF}
|
||
|
|
||
|
end.
|