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

📄 u_print.pas

📁 一个简单的学籍管理软件
💻 PAS
字号:
unit U_Print;
                
interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Db, DBTables, HGrids, HDBGrids, HTitleDBGrid, HEdTitleGrid,
  HPrint, ExtCtrls, PgNavigator, HPreview, HPrintTitleGrid, TB97Tlbr,
  TB97Ctls, TB97, HPrintDBGrid, HPrintEdTitleGrid;


type
  TFm_Print = class(TForm)
    PntTitleGrid: THPrintTitleGrid;
    PntPrev: THPrintGridPreview;
    Dck_Item: TDock97;
    TbBtn_Prev: TToolbar97;
    TbBtn_Param02: TToolbarButton97;
    TbBtn_ZoomIn: TToolbarButton97;
    TbBtn_ZoomOut: TToolbarButton97;
    TbBtn_ClosePreview: TToolbarButton97;
    TbBtn_Print02: TToolbarButton97;
    TbBtn_Space04: TToolbarSep97;
    TbBtn_Space05: TToolbarSep97;
    TbBtn_Space06: TToolbarSep97;
    TbBtn_NextPage: TToolbarButton97;
    TbBtn_PrevPage: TToolbarButton97;
    HDBGrid1: THDBGrid;
    TbBtn_NoZoom: TToolbarButton97;
    PntDBGrid: THPrintDBGrid;
    PntEdTitleGrid: THPrintEdTitleGrid;
    procedure TbBtn_Param01Click(Sender: TObject);
    procedure TbBtn_PrevPageClick(Sender: TObject);
    procedure TbBtn_NextPageClick(Sender: TObject);
    procedure TbBtn_Print01Click(Sender: TObject);
    procedure TbBtn_ExitClick(Sender: TObject);
    procedure TbBtn_ZoomInClick(Sender: TObject);
    procedure TbBtn_ZoomOutClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TbBtn_ClosePreviewClick(Sender: TObject);
    procedure TbBtn_NoZoomClick(Sender: TObject);
  private
  public
    Workpath, Syspath: String;
    PntGrid: THPrintGrid;
  end;

procedure Show_Print(AGrid: THDBGrid); overload;
procedure Show_Print(AGrid: THTitleDBGrid); overload;
procedure Show_Print(AGrid: THEdTitleGrid); overload;

implementation
uses U_Main;
{$R *.DFM}

procedure PrintAction(aGrid: THCaptionDBGrid; aType: integer);
var
  Fm_Print: TFm_Print;
begin
  Fm_Print := TFm_Print.Create(Application);
  with Fm_Print do
  try
    case aType of
      0: PntGrid := PntDBGrid;
      1: PntGrid := PntTitleGrid;
      2: PntGrid := PntEdTitleGrid;
    end;
    PntPrev.PrintDBGrid := PntGrid;
    PntGrid.Grid := aGrid;
    ShowModal;
  finally
    Free;
  end;
end;

procedure Show_Print(AGrid: THDBGrid);
begin
  PrintAction(aGrid, 0);
end;

procedure Show_Print(AGrid: THTitleDBGrid);
begin
  PrintAction(aGrid, 1);
end;

procedure Show_Print(AGrid: THEdTitleGrid);
begin
  PrintAction(aGrid, 2);
end;

procedure TFm_Print.TbBtn_Param01Click(Sender: TObject);
begin
  PntGrid.ExecPrintOptions;
end;

procedure TFm_Print.TbBtn_PrevPageClick(Sender: TObject);
begin
  PntGrid.CurPageNo := PntGrid.CurPageNo - 1;
  if PntGrid.PageNumber <> 1 then
    TbBtn_NextPage.Enabled := True
  else
    TbBtn_NextPage.Enabled := False;
  if PntGrid.CurPageNo = 1 then
    TbBtn_PrevPage.Enabled := False;
end;

procedure TFm_Print.TbBtn_NextPageClick(Sender: TObject);
begin
  PntGrid.CurPageNo := PntGrid.CurPageNo + 1;
  if PntGrid.PageNumber <> 1 then
    TbBtn_PrevPage.Enabled := True
  else
    TbBtn_PrevPage.Enabled := False;
  if PntGrid.CurPageNo = PntGrid.PageNumber then
    TbBtn_NextPage.Enabled := False;
end;

procedure TFm_Print.TbBtn_Print01Click(Sender: TObject);
var
  PntPage: array[0..1] of integer;
begin
  PntPage[0] := 0;
  PntPage[1] := PntGrid.PageNumber;
  PntGrid.Print(pmFromto, @PntPage);
end;

procedure TFm_Print.TbBtn_ExitClick(Sender: TObject);
begin
  Close;
end;

procedure TFm_Print.TbBtn_ZoomInClick(Sender: TObject);
begin
  with PntPrev do
  begin
    if ViewScale >= 200 then
      Exit;
    ViewScale := ViewScale + 20;
    if ViewScale >= 200 then
      TbBtn_ZoomIn.Enabled := False;
  end;
  TbBtn_ZoomOut.Enabled := True;
end;

procedure TFm_Print.TbBtn_ZoomOutClick(Sender: TObject);
begin
  with PntPrev do
  begin
    if ViewScale <= 40 then
      Exit;
    ViewScale := ViewScale - 20;
    if ViewScale <= 40 then
      TbBtn_ZoomOut.Enabled := False;
  end;
  TbBtn_ZoomIn.Enabled := True;
end;

procedure TFm_Print.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  PntGrid.Grid := nil;
end;

procedure TFm_Print.TbBtn_ClosePreviewClick(Sender: TObject);
begin
  Close;
end;

procedure TFm_Print.TbBtn_NoZoomClick(Sender: TObject);
begin
  PntPrev.ViewScale := 100;
  TbBtn_ZoomIn.Enabled := True;
  TbBtn_ZoomOut.Enabled := True;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -