📄 printbassunit.pas
字号:
unit PrintBassUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, QRPrntr, ToolWin, ExtCtrls, ImgList, Menus, QuickRpt;
type
TPrintBassForm = class(TForm)
ControlBar1: TControlBar;
ToolBar_print: TToolBar;
TB_allscr: TToolButton;
TB_auto: TToolButton;
TB_100: TToolButton;
ToolButton5: TToolButton;
TB_first: TToolButton;
TB_PRI: TToolButton;
TB_NEXT: TToolButton;
TB_LAST: TToolButton;
ToolButton9: TToolButton;
TB_PRINTSETUP: TToolButton;
TB_PRINT: TToolButton;
ToolButton12: TToolButton;
TB_EXIT: TToolButton;
QRP_print: TQRPreview;
StBar_print: TStatusBar;
MM_show: TMainMenu;
showscal: TMenuItem;
show_10: TMenuItem;
show_20: TMenuItem;
show_50: TMenuItem;
show_75: TMenuItem;
show_100: TMenuItem;
show_150: TMenuItem;
show_200: TMenuItem;
show_400: TMenuItem;
procedure TB_allscrClick(Sender: TObject);
procedure TB_100Click(Sender: TObject);
procedure TB_autoClick(Sender: TObject);
procedure TB_firstClick(Sender: TObject);
procedure TB_PRIClick(Sender: TObject);
procedure TB_NEXTClick(Sender: TObject);
procedure TB_LASTClick(Sender: TObject);
procedure QRP_printPageAvailable(Sender: TObject; PageNum: Integer);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TB_EXITClick(Sender: TObject);
procedure TB_PRINTSETUPClick(Sender: TObject);
procedure TB_PRINTClick(Sender: TObject);
procedure show_10Click(Sender: TObject);
procedure QRP_printMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure QRP_printMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure QRP_printMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure QRP_printDblClick(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormDeactivate(Sender: TObject);
private
{ Private declarations }
FPageCount: integer;
I_mouseX, I_mouseY: integer;
B_mouse: bool;
public
{ Public declarations }
end;
var
PrintBassForm: TPrintBassForm;
implementation
uses FunctionUnit, MainUnit;
{$R *.dfm}
procedure TPrintBassForm.TB_allscrClick(Sender: TObject);
begin
QRP_print.ZoomToFit;
end;
procedure TPrintBassForm.TB_100Click(Sender: TObject);
begin
begin
show_10.checked := false;
show_20.checked := false;
show_50.checked := false;
show_75.checked := false;
show_100.checked := true;
show_150.checked := false;
show_200.checked := false;
show_400.checked := false;
QRP_print.Zoom := 100;
end;
end;
procedure TPrintBassForm.TB_autoClick(Sender: TObject);
begin
QRP_print.ZoomToWidth;
end;
procedure TPrintBassForm.TB_firstClick(Sender: TObject);
begin
QRP_print.PageNumber := 1;
self.FormShow(self);
end;
procedure TPrintBassForm.TB_PRIClick(Sender: TObject);
begin
QRP_PRINT.PageNumber := QRP_print.PageNumber - 1;
if QRP_print.PageNumber = 0 then
QRP_print.PageNumber := 1;
self.FormShow(self);
end;
procedure TPrintBassForm.TB_NEXTClick(Sender: TObject);
begin
QRP_print.PageNumber := QRP_print.PageNumber + 1;
self.FormShow(self);
end;
procedure TPrintBassForm.TB_LASTClick(Sender: TObject);
begin
QRP_print.PageNumber := FPageCount;
self.FormShow(self);
end;
procedure TPrintBassForm.QRP_printPageAvailable(Sender: TObject;
PageNum: Integer);
begin
FPageCount := PageNum;
self.FormShow(self);
end;
procedure TPrintBassForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
// CurRep := nil;
Action := caFree;
end;
procedure TPrintBassForm.TB_EXITClick(Sender: TObject);
begin
self.Close;
end;
procedure TPrintBassForm.TB_PRINTSETUPClick(Sender: TObject);
begin
try
QRP_print.QRPrinter.PrintSetup;
except
messagedlg('没有找到或系统没有安装默认打印机!', mtError, [mbok], 0)
end;
end;
procedure TPrintBassForm.TB_PRINTClick(Sender: TObject);
begin
if messagedlg('确定要按当前设置进行打印吗?',
mtinformation, [mbok, mbcancel], 0) = mrok then
begin
tb_print.Enabled := false;
QRP_print.QRPrinter.Print;
tb_print.Enabled := true;
end;
end;
procedure TPrintBassForm.show_10Click(Sender: TObject);
begin
show_10.checked := false;
show_20.checked := false;
show_50.checked := false;
show_75.checked := false;
show_100.checked := false;
show_150.checked := false;
show_200.checked := false;
show_400.checked := false;
(sender as TMenuItem).Checked := true;
if sender = show_10 then
QRP_print.Zoom := 10
else if sender = show_20 then
QRP_print.Zoom := 20
else if sender = show_50 then
QRP_print.Zoom := 50
else if sender = show_75 then
QRP_print.Zoom := 75
else if sender = show_100 then
QRP_print.Zoom := 100
else if sender = show_150 then
QRP_print.Zoom := 150
else if sender = show_200 then
QRP_print.Zoom := 200
else if sender = show_400 then
QRP_print.Zoom := 400;
end;
procedure TPrintBassForm.QRP_printMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if button <> mbRight then
begin
I_mouseX := x;
I_mouseY := y;
b_mouse := true;
end
else
begin
if QRP_print.Zoom > 20 then QRP_print.Zoom := QRP_print.Zoom - 10;
show_10.checked := false;
show_20.checked := false;
show_50.checked := false;
show_75.checked := false;
show_100.checked := false;
show_150.checked := false;
show_200.checked := false;
show_400.checked := false;
end;
end;
procedure TPrintBassForm.QRP_printMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if b_mouse then
begin
with qrp_print.HorzScrollBar do
begin
Position := position + (I_mousex - x);
end;
with qrp_print.vertScrollBar do
begin
Position := position + (I_mousey - y);
end;
end;
self.StBar_print.Panels.Items[1].Text := ' 第 ' + inttostr(self.QRP_print.PageNumber) +
' 页 共 ' + inttostr(self.FPageCount) + ' 页';
end;
procedure TPrintBassForm.QRP_printMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
b_mouse := false;
end;
procedure TPrintBassForm.QRP_printDblClick(Sender: TObject);
begin
if QRP_print.Zoom < 400 then QRP_print.Zoom := QRP_print.Zoom + 10;
show_10.checked := false;
show_20.checked := false;
show_50.checked := false;
show_75.checked := false;
show_100.checked := false;
show_150.checked := false;
show_200.checked := false;
show_400.checked := false;
end;
procedure TPrintBassForm.FormResize(Sender: TObject);
begin
toolbar_print.Width := self.Width;
end;
procedure TPrintBassForm.FormShow(Sender: TObject);
begin
toolbar_print.Width := self.Width;
//检查用户是否有打印权限
Tb_print.Enabled := Checkrights(USERRIGHTS, '报表打印');
if qrp_print.pagenumber = 1 then
begin
tb_first.enabled := false;
tb_pri.Enabled := false;
end;
if qrp_print.pagenumber > 1 then
begin
tb_first.enabled := true;
tb_pri.Enabled := true;
end;
if QRP_print.PageNumber >= fpagecount then
begin
tb_next.Enabled := false;
tb_last.Enabled := false;
end
else
begin
tb_next.Enabled := true;
tb_last.Enabled := true;
end;
self.StBar_print.Panels.Items[1].Text := ' 第 ' + inttostr(self.QRP_print.PageNumber) +
' 页 总 ' + inttostr(self.FPageCount) + ' 页';
end;
procedure TPrintBassForm.FormDeactivate(Sender: TObject);
var
mb: CARDINAL;
begin
mb := $0FFFFFFFF; //发出提示音
if self.Showing then
begin
MessageBeep(mb);
self.SetFocus;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -