📄 preview.~pas
字号:
unit Preview;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QRPrntr, Buttons, ExtCtrls, ComCtrls,quickrpt,comobj, ToolWin,
XPMenu;
type
Tfrm_Preview = class(TForm)
Panel2: TPanel;
ToolBar1: TToolBar;
Cmd_First: TSpeedButton;
Cmd_Last: TSpeedButton;
Cmd_UP: TSpeedButton;
Cmd_Next: TSpeedButton;
Cmd_FD: TSpeedButton;
Cmd_SX: TSpeedButton;
Cmd_Exce: TSpeedButton;
Cmd_Print: TSpeedButton;
Cmd_Cancel: TSpeedButton;
qrprivew: TQRPreview;
StatusBar1: TStatusBar;
XPMenu1: TXPMenu;
procedure Cmd_FirstClick(Sender: TObject);
procedure Cmd_LastClick(Sender: TObject);
procedure Cmd_UPClick(Sender: TObject);
procedure Cmd_NextClick(Sender: TObject);
procedure Cmd_FDClick(Sender: TObject);
procedure Cmd_SXClick(Sender: TObject);
procedure Cmd_ExceClick(Sender: TObject);
procedure Cmd_CancelClick(Sender: TObject);
procedure Cmd_PrintClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations}
procedure Onpreview (sender:Tobject);
public
{ Public declarations }
function showmodal (Qrep:TQuickrep; Str:string):integer;
end;
var
frm_Preview: Tfrm_Preview;
implementation
{$R *.dfm}
function Tfrm_Preview.showmodal(qrep:tquickrep ; str:string):integer;
begin
StatusBar1.Panels[1].Text:=str;
Qrep.Prepare;
Qrep.OnPreview:=OnPreview;
Qrep.PreviewModeless;
StatusBar1.Panels[3].Text:='第'+inttostr(qrprivew.PageNumber)+'页/'+'共'+inttostr(qrep.PageNumber)+'页';
self.Visible:=false;
Result:= inherited showmodal;
end;
procedure Tfrm_Preview.Onpreview(sender:tobject);
begin
Qrprivew.QRPrinter:=Tqrprinter(sender);
end;
procedure Tfrm_Preview.Cmd_FirstClick(Sender: TObject);
var
num:integer;
begin
if qrprivew.PageNumber>1 then
begin
if qrprivew.PageNumber=qrprivew.QRPrinter.PageCount then
begin
qrprivew.PageNumber:= 1;
StatusBar1.Panels[3].Text:='第'+inttostr(qrprivew.PageNumber)+'页/'+'共'+inttostr(qrprivew.QRPrinter.PageCount)+'页';
exit;
end;
num:=qrprivew.QRPrinter.PageCount-qrprivew.PageNumber;
qrprivew.PageNumber:= qrprivew.PageNumber-num;
StatusBar1.Panels[3].Text:='第'+inttostr(qrprivew.PageNumber)+'页/'+'共'+inttostr(qrprivew.QRPrinter.PageCount)+'页';
end;
end;
procedure Tfrm_Preview.Cmd_LastClick(Sender: TObject);
var
num:integer;
begin
if qrprivew.PageNumber<=qrprivew.QRPrinter.PageCount then
begin
if qrprivew.PageNumber=1 then
begin
qrprivew.PageNumber:= qrprivew.QRPrinter.PageCount;
StatusBar1.Panels[3].Text:='第'+inttostr(qrprivew.PageNumber)+'页/'+'共'+inttostr(qrprivew.QRPrinter.PageCount)+'页';
exit;
end;
num:=qrprivew.QRPrinter.PageCount-qrprivew.PageNumber;
qrprivew.PageNumber:= qrprivew.PageNumber+num;
StatusBar1.Panels[3].Text:='第'+inttostr(qrprivew.PageNumber)+'页/'+'共'+inttostr(qrprivew.QRPrinter.PageCount)+'页';
end;
end;
procedure Tfrm_Preview.Cmd_UPClick(Sender: TObject);
begin
if qrprivew.PageNumber >1 then
begin
qrprivew.PageNumber:= qrprivew.PageNumber-1;
StatusBar1.Panels[3].Text:='第'+inttostr(qrprivew.PageNumber)+'页/'+'共'+inttostr(qrprivew.QRPrinter.PageCount)+'页';
end;
end;
procedure Tfrm_Preview.Cmd_NextClick(Sender: TObject);
begin
if qrprivew.PageNumber < qrprivew.QRPrinter.PageCount then
begin
qrprivew.PageNumber:= qrprivew.PageNumber+1;
StatusBar1.Panels[3].Text:='第'+inttostr(qrprivew.PageNumber)+'页/'+'共'+inttostr(qrprivew.QRPrinter.PageCount)+'页';
end;
end;
procedure Tfrm_Preview.Cmd_FDClick(Sender: TObject);
begin
qrprivew.Zoom:=qrprivew.Zoom+10;
end;
procedure Tfrm_Preview.Cmd_SXClick(Sender: TObject);
begin
qrprivew.Zoom:=qrprivew.Zoom-10;
end;
procedure Tfrm_Preview.Cmd_ExceClick(Sender: TObject);
begin
qrprivew.QRPrinter.Print;
end;
procedure Tfrm_Preview.Cmd_CancelClick(Sender: TObject);
begin
if application.MessageBox('是否确定退出打印处理?请确认',Pchar(application.Title),mb_iconwarning+mb_yesno)=idyes then
begin
close;
end;
end;
procedure Tfrm_Preview.Cmd_PrintClick(Sender: TObject);
begin
qrprivew.QRPrinter.Print;
end;
procedure Tfrm_Preview.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -