📄 margin.pas
字号:
// create 李泽伦
unit Margin;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Spin, ReportControl, printers,GodmanForm;
type
TMarginForm = class(TGodmanForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
LeftMargin: TSpinEdit;
TopMargin: TSpinEdit;
BitBtn2: TBitBtn;
BitBtn1: TBitBtn;
PrinterSetupDialog1: TPrinterSetupDialog;
ReportControl1: TReportControl;
RightMargin: TSpinEdit;
BottomMargin: TSpinEdit;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
SpeedButton2: TSpeedButton;
procedure BitBtn1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
IsFile:Boolean;
IsStream:Boolean;
FFileName:String;
FStream:TStream;
procedure Init;
public
IsModified: Boolean; //是否更改了设置
class function EditFile(AOwner:TComponent;FileName:String):TMarginForm;
class function EditStream(AOwner:TComponent;Stream:TStream):TMarginForm;
end;
implementation
{$R *.DFM}
//uses fr_prntr;
procedure TMarginForm.BitBtn1Click(Sender: TObject);
var
MarginRect: TRect;
begin
ReportControl1.cp_pgw := 0;
ReportControl1.CalcWndSize; //
ReportControl1.SetMargin(LeftMargin.Value, TopMargin.Value, RightMargin.Value, BottomMargin.Value);
if IsFile then
ReportControl1.SaveToFile(FFilename);
if IsStream then
ReportControl1.SaveToStream(FStream);
ReportControl1.ResetContent; //清除内层中的表格数据
IsModified := True;
end;
procedure TMarginForm.SpeedButton2Click(Sender: TObject);
begin
if PrinterSetupDialog1.Execute then
begin
{ cp_pgw:=0;
ReportControl1.CalcWndSize;// 根据用户选择的纸来确定报表窗口的大小并对该窗口进行设置。
ReportControl1.SaveToFile(filename.Caption);
} IsModified := True;
end
else
IsModified := False;
end;
procedure TMarginForm.BitBtn2Click(Sender: TObject);
begin
IsModified := False;
end;
class function TMarginForm.EditFile(AOwner: TComponent;
FileName: String): TMarginForm;
begin
Result:=TMarginForm.GodmanCreate(AOwner);
try
Result.IsFile:=True;
Result.FFileName:=FileName;
Result.Init;
except
Result.Free;
raise;
end;
end;
class function TMarginForm.EditStream(AOwner: TComponent;
Stream: TStream): TMarginForm;
begin
Result:=TMarginForm.GodmanCreate(AOwner);
try
Result.IsStream:=True;
Result.FStream:=Stream;
Result.Init;
except
Result.Free;
raise;
end;
end;
procedure TMarginForm.Init;
var
MarginRect: TRect;
prPageXy: integer;
begin
IsModified := False;
if IsFile then
ReportControl1.LoadFromFile(FFilename); //装入模版以做修改页面或纸张
if IsStream then
ReportControl1.LoadFromStream(FStream); //装入模版以做修改页面或纸张
MarginRect := ReportControl1.GetMargin;
LeftMargin.Value := MarginRect.Left;
TopMargin.Value := MarginRect.Top;
RightMargin.Value := MarginRect.Right;
BottomMargin.Value := MarginRect.Bottom;
prDeviceMode;
with Devmode^ do //设置打印纸 李泽伦
begin
dmFields := dmFields or DM_PAPERSIZE;
dmPapersize := ReportControl1.FprPageNo;
dmFields := dmFields or DM_ORIENTATION;
dmOrientation := ReportControl1.FprPageXy; //1为纵向,2为横向
dmPaperLength := ReportControl1.fpaperLength;
dmPaperWidth := ReportControl1.fpaperWidth;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -