📄 u_print.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 + -