📄 preview.pas
字号:
unit Preview;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, ExtCtrls,
StdCtrls, ImgList, ComCtrls, ToolWin, FR_DSet, FR_DBSet,Printers,
FR_Class, Menus, FR_View ;
type
TFormPreview = class(TForm)
Panel1: TPanel;
SpeedButton11: TSpeedButton;
SpeedButton12: TSpeedButton;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
frPreview1: TfrPreview;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ImageList1: TImageList;
frDBDataSet1: TfrDBDataSet;
edtTableName: TEdit;
frReport1: TfrReport;
edtPrintPeaple: TEdit;
PopupMenu1: TPopupMenu;
N2001: TMenuItem;
N1001: TMenuItem;
N751: TMenuItem;
N501: TMenuItem;
N251: TMenuItem;
N101: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
edtPageCode: TEdit;
edtPageWidth: TEdit;
edtPageHeigth: TEdit;
SpeedButton10: TSpeedButton;
PrintDialog1: TPrintDialog;
procedure ToolButton1Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure N2001Click(Sender: TObject);
procedure N1001Click(Sender: TObject);
procedure N751Click(Sender: TObject);
procedure N501Click(Sender: TObject);
procedure N251Click(Sender: TObject);
procedure N101Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure SetPaperSize(X, Y: Integer;iPageSize:Integer);
end;
var
FormPreview: TFormPreview;
implementation
uses CommUseFunctionExport, SetupReportPreview;
{$R *.DFM}
procedure TFormPreview.ToolButton1Click(Sender: TObject);
begin
close;
end;
procedure TFormPreview.SpeedButton12Click(Sender: TObject);
begin
frPreview1.Zoom := 100;
end;
procedure TFormPreview.SpeedButton11Click(Sender: TObject);
begin
frPreview1.OnePage;
end;
procedure TFormPreview.SpeedButton1Click(Sender: TObject);
begin
frPreview1.PageWidth;
end;
procedure TFormPreview.SpeedButton2Click(Sender: TObject);
begin
frPreview1.First;
end;
procedure TFormPreview.SpeedButton3Click(Sender: TObject);
begin
frPreview1.Prev;
end;
procedure TFormPreview.SpeedButton4Click(Sender: TObject);
begin
frPreview1.Next;
end;
procedure TFormPreview.SpeedButton5Click(Sender: TObject);
begin
frPreview1.Last;
end;
procedure TFormPreview.SpeedButton6Click(Sender: TObject);
begin
frPreview1.LoadFromFile;
end;
procedure TFormPreview.SpeedButton7Click(Sender: TObject);
begin
frPreview1.SaveToFile;
end;
procedure TFormPreview.SpeedButton8Click(Sender: TObject);
begin
// frPreview1.PageSetupDlg;
SetupReportFormat(frDBDataSet1.DataSet,application,pchar(edtTableName.Text));
end;
procedure TFormPreview.SpeedButton9Click(Sender: TObject);
begin
if edtPageCode.text='256' then
SetPaperSize(strtoint(edtPageWidth.text),strtoint(edtPageHeigth.text),256)
else
SetPaperSize(0,0,strtoint(edtPageCode.text));
frPreview1.Print;
end;
procedure TFormPreview.SetPaperSize(X, Y, iPageSize: Integer);
var
Device: array[0..cchDeviceName - 1] of char;
Driver: array[0..Max_Path - 1] of char;
Port: array[0..32] of char;
hDMode: THandle;
PDMode: PDEVMODE;
begin
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(Device, Driver, Port, hDMode);
if hDMode<> 0 then
begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin
if (x = 0) or (y = 0) then
begin
{设置合法的纸张大小}
pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
{pDMode^.dmPaperSize := DMPAPER_LEGAL; changed by wulianmin}
// pDMode^.dmPaperSize := DMPAPER_FANFOLD_US;
pDMode^.dmPaperSize := iPageSize;
end
else
begin
{设置用户自定义纸张}//要更修改下面三项
pDMode^.dmFields := pDMode^.dmFields or
DM_PAPERSIZE or
DM_PAPERWIDTH or
DM_PAPERLENGTH;
pDMode^.dmPaperSize := DMPAPER_USER;
pDMode^.dmPaperWidth := x {SomeValueInTenthsOfAMillimeter};
pDMode^.dmPaperLength := y {SomeValueInTenthsOfAMillimeter};
end;
{设定纸张来源}
pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
pDMode^.dmDefaultSource := DMBIN_MANUAL;
Printer.SetPrinter(Device, Driver, Port,hDMode );
GlobalUnlock(hDMode);
end;
end;
end;
procedure TFormPreview.N2001Click(Sender: TObject);
begin
frPreview1.Zoom:=200;
end;
procedure TFormPreview.N1001Click(Sender: TObject);
begin
frPreview1.Zoom:=100;
end;
procedure TFormPreview.N751Click(Sender: TObject);
begin
frPreview1.Zoom:=75;
end;
procedure TFormPreview.N501Click(Sender: TObject);
begin
frPreview1.Zoom:=50;
end;
procedure TFormPreview.N251Click(Sender: TObject);
begin
frPreview1.Zoom:=25;
end;
procedure TFormPreview.N101Click(Sender: TObject);
begin
frPreview1.Zoom:=10;
end;
procedure TFormPreview.N2Click(Sender: TObject);
begin
frPreview1.PageWidth ;
end;
procedure TFormPreview.N3Click(Sender: TObject);
begin
frPreview1.TwoPages;
end;
procedure TFormPreview.N1Click(Sender: TObject);
begin
frPreview1.OnePage;
end;
procedure TFormPreview.SpeedButton10Click(Sender: TObject);
begin
// frPreview.Free;
PrintDialog1.Execute;
//frPreview1.;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -