⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printbassunit.pas

📁 好用得程序
💻 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 + -