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

📄 print_temp.pas

📁 超市管理系统
💻 PAS
字号:
//打印预览  源程序
//本版本开始设计于2002年5月初
//作者:肖扬
//本系统除了第三方控件或源程序外,所有代码均为作者本人独立完成
//如果你引用了本程序中的源代码,希望你能保留本信息
//如果你对本程序有何建议,请与作者联系
//联系方法:thinknet@china.com
//特别感谢:《Delphi 之葵花宝典2.7》、大富翁论坛,以及本程序中曾经(或正在)引用
//    或借鉴过的源程序代码的作者,对未保留原作者信息的源程序的作者表示歉意!
//如果本程序中的源代码侵犯了您的权益,请与作者联系,将立即删除

//本系统中的源程序只供您研究、开发个人软件或免费软件,
//任何商业使用均需经本系统作者同意!!!
unit PRINT_TEMP;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ToolWin, qrprntr,Quickrpt,StdCtrls, ExtCtrls,qrextra, ImgList,
  QREXPORT, Menus,frmmain,myself, XPMenu;

type
  TFrm_Print_temp = class(TForm)
    ControlBar1: TControlBar;
    ToolBar_print: TToolBar;
    ImageList_print: TImageList;
    TB_allscr: TToolButton;
    TB_100: TToolButton;
    TB_auto: TToolButton;
    TB_first: TToolButton;
    ToolButton5: TToolButton;
    TB_PRI: TToolButton;
    TB_NEXT: TToolButton;
    TB_LAST: TToolButton;
    ToolButton9: TToolButton;
    TB_PRINTSETUP: TToolButton;
    TB_PRINT: TToolButton;
    ToolButton12: TToolButton;
    TB_OPEN: TToolButton;
    TB_SAVE: TToolButton;
    ToolButton15: TToolButton;
    TB_EXIT: TToolButton;
    StBar_print: TStatusBar;
    QRP_print: TQRPreview;
    Opendialog: TOpenDialog;
    SaveDialog: TSaveDialog;
    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;
    TB_about: TToolButton;
    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 TB_aboutClick(Sender: TObject);
    procedure TB_SAVEClick(Sender: TObject);
    procedure TB_OPENClick(Sender: TObject);
    procedure FormDeactivate(Sender: TObject);
  private
    { Private declarations }
    FPageCount : integer;
    I_mouseX,I_mouseY:integer;
    B_mouse:bool;
  public
    { Public declarations }
    CurRep : TQuickRep;
  end;

var
   frm_print_temp: Tfrm_print_temp;
implementation

uses FRMMESSAGE;

{$R *.DFM}
procedure TFrm_Print_temp.TB_allscrClick(Sender: TObject);
begin
   QRP_print.ZoomToFit;
end;

procedure TFrm_Print_temp.TB_100Click(Sender: TObject);
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;

procedure TFrm_Print_temp.TB_autoClick(Sender: TObject);
begin
   QRP_print.ZoomToWidth;
end;

procedure TFrm_Print_temp.TB_firstClick(Sender: TObject);
begin
     QRP_print.PageNumber := 1;
     self.FormShow(self);
end;

procedure TFrm_Print_temp.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 TFrm_Print_temp.TB_NEXTClick(Sender: TObject);
begin
     QRP_print.PageNumber := QRP_print.PageNumber+1;
     self.FormShow(self);
end;

procedure TFrm_Print_temp.TB_LASTClick(Sender: TObject);
begin
     QRP_print.PageNumber := FPageCount;
     self.FormShow(self);
end;

procedure TFrm_Print_temp.QRP_printPageAvailable(Sender: TObject;
  PageNum: Integer);
begin
     FPageCount := PageNum ;
     self.FormShow(self);
end;

procedure TFrm_Print_temp.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
     CurRep := nil;
     Action := caFree;
end;

procedure TFrm_Print_temp.TB_EXITClick(Sender: TObject);
begin
   close;
end;

procedure TFrm_Print_temp.TB_PRINTSETUPClick(Sender: TObject);
begin
   try
      QRP_print.QRPrinter.PrintSetup;
   except
      messagedlg('没有找到或系统没有安装默认打印机!',mtError,[mbok],0)
   end;

end;

procedure TFrm_Print_temp.TB_PRINTClick(Sender: TObject);
begin
   if messagedlg('确定要按当前设置进行打印吗?',
         mtinformation,[mbok,mbcancel],0)=mrok then
   begin
      frm_message.Memo_message.Lines.Append(datetimetostr(now)+':'+USERNAME+' - 打印文件');
      tb_print.Enabled :=false;
      QRP_print.QRPrinter.Print;
      tb_print.Enabled :=true;
   end;
end;

procedure TFrm_Print_temp.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 TFrm_Print_temp.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 TFrm_Print_temp.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 TFrm_Print_temp.QRP_printMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   b_mouse:=false;
end;

procedure TFrm_Print_temp.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 TFrm_Print_temp.FormResize(Sender: TObject);
begin
  toolbar_print.Width :=self.Width;
end;

procedure TFrm_Print_temp.FormShow(Sender: TObject);
begin
   toolbar_print.Width :=self.Width;
   frm_message.Memo_message.Lines.Append(datetimetostr(now)+':'+USERNAME+' - 打印预览');
   Tb_print.Enabled :=Checkrights(USERRIGHTS,'报表打印');
   TB_save.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 TFrm_Print_temp.TB_aboutClick(Sender: TObject);
begin
   messagedlg('ThinkNET报表专用打印预览程序中文增强版'+chr(13)+chr(13)
            +'(当前版本:V1.03)'+chr(13)+chr(13)+'作者:杨效国 Thinknet@china.com'+chr(13)+chr(13)
            +'Ver1.01新增了鼠标拖动预览的功能。'+chr(13)+chr(13)
            +'Ver1.02新增了鼠标右键缩小比例的功能。'+chr(13)+chr(13)
            +'本版新增打印权限检测的功能、禁止主窗口与本窗口切换功能。',
         mtinformation,[mbok],0);
end;

procedure TFrm_Print_temp.TB_SAVEClick(Sender: TObject);
var
   fn:string;
begin
   SaveDialog.Filter :='ThinkNet打印文件(*.PRN)|*.PRN';
   SaveDialog.Title :='保存 PRN格式文件';
   SaveDialog.DefaultExt :='PRN';
   if SaveDialog.Execute  then
   begin
      fn:=SaveDialog.FileName;
      if FileExists(fn) then
      begin
         if messagedlg('文件已经存在,是否覆盖?',mtinformation,[mbyes,mbno],0)=mrno then
         begin
            exit;        //不保存退出
         end;
      end;
      try
         QRP_print.QRPrinter.Save(fn);
         showmessage('PRN格式文件保存成功,文件名为“'+fn+'”');
      except
         showmessage('PRN格式文件保存失败!');
      end;
   end;
end;

procedure TFrm_Print_temp.TB_OPENClick(Sender: TObject);
var
   fname:string;
begin
   opendialog.Filter :='ThinkNet打印文件(*.PRN)|*.PRN';
   opendialog.Title :='打开 PRN格式文件';
   if opendialog.Execute  then
   begin
      fname:=opendialog.FileName ;
      if not fileexists(fname) then
      begin
         showmessage('ThinkNET打印数据文件不存在,请重新选择');
         exit;
      end;
      try
         QRP_print.QRPrinter.Load(fname);
         showmessage('ThinkNET打印文件导入成功。');
      except
         showmessage('ThinkNET打印文件导入失败。');
      end;
   end;
end;

procedure TFrm_Print_temp.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 + -