📄 previewform.pas
字号:
Footer2.Assign(TCommonPageInfo(Source).Footer2);
Footer3.Assign(TCommonPageInfo(Source).Footer3);
MainTitle.Assign(TCommonPageInfo(Source).MainTitle);
Title1.Assign(TCommonPageInfo(Source).Title1);
Title2.Assign(TCommonPageInfo(Source).Title2);
Title3.Assign(TCommonPageInfo(Source).Title3);
Title4.Assign(TCommonPageInfo(Source).Title4);
Title5.Assign(TCommonPageInfo(Source).Title5);
Title6.Assign(TCommonPageInfo(Source).Title6);
Tail1.Assign(TCommonPageInfo(Source).Tail1);
Tail2.Assign(TCommonPageInfo(Source).Tail2);
Tail3.Assign(TCommonPageInfo(Source).Tail3);
Tail4.Assign(TCommonPageInfo(Source).Tail4);
Tail5.Assign(TCommonPageInfo(Source).Tail5);
Tail6.Assign(TCommonPageInfo(Source).Tail6);
end;
constructor TCommonPageInfo.Create;
begin
Inherited Create;
Orientation := poPortrait;
StartPageNo := 1;
PrintAllPages := True;
StartPage := 0;
EndPage := 9999;
PaperSize := 0;
if HasPrinter then
begin
PageWidth := Round(Printer.PageWidth * ScreenToPrinterX);
PageHeight := Round(Printer.PageHeight * ScreenToPrinterY);
end
else
begin
PageWidth := Round(1488 * ScreenToPrinterX);
PageHeight := Round(2104 * ScreenToPrinterY);
end;
Margin.Left := 19 * ScreenPixelsPerMmX;
Margin.Right := Margin.Left;
Margin.Top := 25 * ScreenPixelsPerMmY;
Margin.Bottom := Margin.Top;
Scale := 100;
TitleExtent := 0 * ScreenPixelsPerMmY;
TailExtent := 0 * ScreenPixelsPerMmY;
ExtraTitleExtent := 0;
HeaderExtent := 0 * ScreenPixelsPerMmY;
FooterExtent := 0 * ScreenPixelsPerMmY;
ExtraHeaderExtent := 5 * ScreenPixelsPerMmY;
ExtraFooterExtent := 5 * ScreenPixelsPerMmY;
HeaderLineStyle := psSolid;
FooterLineStyle := psSolid;
HeaderLineWidth := 0;
FooterLineWidth := 0;
HeaderDoubleLine := True;
FooterDoubleLine := True;
PrintFirstHeader := True;
PrintFirstFooter := True;
FillChar(Reserved, 256, 0);
Header1 := THeader.Create;
Header2 := THeader.Create;
Header3 := THeader.Create;
Footer1 := TFooter.Create;
Footer2 := TFooter.Create;
Footer3 := TFooter.Create;
MainTitle := TTitle.Create;
Title1 := TTitle.Create;
Title2 := TTitle.Create;
Title3 := TTitle.Create;
Title4 := TTitle.Create;
Title5 := TTitle.Create;
Title6 := TTitle.Create;
Tail1 := TTail.Create;
Tail2 := TTail.Create;
Tail3 := TTail.Create;
Tail4 := TTail.Create;
Tail5 := TTail.Create;
Tail6 := TTail.Create;
end;
destructor TCommonPageInfo.Destroy;
begin
Header1.Free;
Header2.Free;
Header3.Free;
Footer1.Free;
Footer2.Free;
Footer3.Free;
MainTitle.Free;
Title1.Free;
Title2.Free;
Title3.Free;
Title4.Free;
Title5.Free;
Title6.Free;
Tail1.Free;
Tail2.Free;
Tail3.Free;
Tail4.Free;
Tail5.Free;
Tail6.Free;
Inherited Destroy;
end;
procedure TCommonPageInfo.LoadFromStream(AFileStream: TStream);
procedure ReadSegmentFlag;
var
SegmentFlag: Byte;
begin
AFileStream.Read(SegmentFlag, SizeOf(SegmentFlag));
if (SegmentFlag <> SegmentFlagValue) then Raise Exception.Create(BadCommonPageInfo);
end;
begin
with AFileStream do
begin
Read(Orientation, SizeOf(Orientation));
Read(StartPageNo, SizeOf(StartPageNo));
Read(PrintAllPages, SizeOf(PrintAllPages));
Read(StartPage, SizeOf(StartPage));
Read(EndPage, SizeOf(EndPage));
Read(PaperSize, SizeOf(PaperSize));
Read(PageWidth, SizeOf(PageWidth));
Read(PageHeight, SizeOf(PageHeight));
Read(Margin, SizeOf(Margin));
Read(Scale, SizeOf(Scale));
Read(TitleExtent, SizeOf(TitleExtent));
Read(ExtraTitleExtent, SizeOf(ExtraTitleExtent));
Read(TailExtent, SizeOf(TailExtent));
Read(HeaderExtent, SizeOf(HeaderExtent));
Read(FooterExtent, SizeOf(FooterExtent));
Read(ExtraHeaderExtent, SizeOf(ExtraHeaderExtent));
Read(ExtraFooterExtent, SizeOf(ExtraFooterExtent));
Read(HeaderLineStyle, SizeOf(HeaderLineStyle));
Read(FooterLineStyle, SizeOf(FooterLineStyle));
Read(HeaderLineWidth, SizeOf(HeaderLineWidth));
Read(FooterLineWidth, SizeOf(FooterLineWidth));
Read(HeaderDoubleLine, SizeOf(HeaderDoubleLine));
Read(FooterDoubleLine, SizeOf(FooterDoubleLine));
Read(PrintFirstHeader, SizeOf(PrintFirstHeader));
Read(PrintFirstFooter, SizeOf(PrintFirstFooter));
Read(Reserved, 256);
ReadSegmentFlag;
end;
Header1.LoadFromStream(AFileStream); ReadSegmentFlag;
Header2.LoadFromStream(AFileStream); ReadSegmentFlag;
Header3.LoadFromStream(AFileStream); ReadSegmentFlag;
Footer1.LoadFromStream(AFileStream); ReadSegmentFlag;
Footer2.LoadFromStream(AFileStream); ReadSegmentFlag;
Footer3.LoadFromStream(AFileStream); ReadSegmentFlag;
MainTitle.LoadFromStream(AFileStream); ReadSegmentFlag;
Title1.LoadFromStream(AFileStream); ReadSegmentFlag;
Title2.LoadFromStream(AFileStream); ReadSegmentFlag;
Title3.LoadFromStream(AFileStream); ReadSegmentFlag;
Title4.LoadFromStream(AFileStream); ReadSegmentFlag;
Title5.LoadFromStream(AFileStream); ReadSegmentFlag;
Title6.LoadFromStream(AFileStream); ReadSegmentFlag;
Tail1.LoadFromStream(AFileStream); ReadSegmentFlag;
Tail2.LoadFromStream(AFileStream); ReadSegmentFlag;
Tail3.LoadFromStream(AFileStream); ReadSegmentFlag;
Tail4.LoadFromStream(AFileStream); ReadSegmentFlag;
Tail5.LoadFromStream(AFileStream); ReadSegmentFlag;
Tail6.LoadFromStream(AFileStream); ReadSegmentFlag;
end;
procedure TCommonPageInfo.SaveToStream(AFileStream: TStream);
var
SegmentFlag: Byte;
begin
SegmentFlag := SegmentFlagValue;
with AFileStream do
begin
Write(Orientation, SizeOf(Orientation));
Write(StartPageNo, SizeOf(StartPageNo));
Write(PrintAllPages, SizeOf(PrintAllPages));
Write(StartPage, SizeOf(StartPage));
Write(EndPage, SizeOf(EndPage));
Write(PaperSize, SizeOf(PaperSize));
Write(PageWidth, SizeOf(PageWidth));
Write(PageHeight, SizeOf(PageHeight));
Write(Margin, SizeOf(Margin));
Write(Scale, SizeOf(Scale));
Write(TitleExtent, SizeOf(TitleExtent));
Write(ExtraTitleExtent, SizeOf(ExtraTitleExtent));
Write(TailExtent, SizeOf(TailExtent));
Write(HeaderExtent, SizeOf(HeaderExtent));
Write(FooterExtent, SizeOf(FooterExtent));
Write(ExtraHeaderExtent, SizeOf(ExtraHeaderExtent));
Write(ExtraFooterExtent, SizeOf(ExtraFooterExtent));
Write(HeaderLineStyle, SizeOf(HeaderLineStyle));
Write(FooterLineStyle, SizeOf(FooterLineStyle));
Write(HeaderLineWidth, SizeOf(HeaderLineWidth));
Write(FooterLineWidth, SizeOf(FooterLineWidth));
Write(HeaderDoubleLine, SizeOf(HeaderDoubleLine));
Write(FooterDoubleLine, SizeOf(FooterDoubleLine));
Write(PrintFirstHeader, SizeOf(PrintFirstHeader));
Write(PrintFirstFooter, SizeOf(PrintFirstFooter));
Write(Reserved, 256);
Write(SegmentFlag, SizeOf(SegmentFlag));
end;
Header1.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Header2.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Header3.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Footer1.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Footer2.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Footer3.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
MainTitle.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Title1.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Title2.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Title3.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Title4.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Title5.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Title6.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Tail1.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Tail2.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Tail3.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Tail4.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Tail5.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
Tail6.SaveToStream(AFileStream); AFileStream.Write(SegmentFlag, SizeOf(SegmentFlag));
end;
{ THeader }
procedure THeader.Assign(Source: Pointer);
begin
FontSize := THeader(Source).FontSize;
FontStyle := THeader(Source).FontStyle;
FontColor := THeader(Source).FontColor;
FontName := THeader(Source).FontName;
Content := THeader(Source).Content;
end;
constructor THeader.Create;
begin
FontSize := 9;
FontStyle := [];
FontColor := clBlack;
FontName := '宋体';
Content := '';
end;
procedure THeader.LoadFromStream(AFileStream: TStream);
var
StrLen: Integer;
begin
with AFileStream do
begin
Read(FontSize, SizeOf(FontSize));
Read(FontStyle, SizeOf(FontStyle));
Read(FontColor, SizeOf(FontColor));
Read(StrLen,SizeOf(Integer));
SetLength(FontName, StrLen);
Read(FontName[1],StrLen);
Read(StrLen,SizeOf(Integer));
SetLength(Content, StrLen);
Read(Content[1],StrLen);
end;
end;
procedure THeader.SaveToStream(AFileStream: TStream);
var
StrLen: Integer;
begin
with AFileStream do
begin
Write(FontSize, SizeOf(FontSize));
Write(FontStyle, SizeOf(FontStyle));
Write(FontColor, SizeOf(FontColor));
StrLen := Length(FontName);
Write(StrLen,SizeOf(Integer));
Write(FontName[1],StrLen);
StrLen := Length(Content);
Write(StrLen,SizeOf(Integer));
Write(Content[1],StrLen);
end;
end;
{ TTitle }
procedure TTitle.Assign(Source: Pointer);
begin
Distance := TTitle(Source).Distance;
FontName := TTitle(Source).FontName;
FontSize := TTitle(Source).FontSize;
FontColor := TTitle(Source).FontColor;
FontStyle := TTitle(Source).FontStyle;
Content := TTitle(Source).Content;
end;
constructor TTitle.Create;
begin
Distance := 0 * ScreenPixelsPerMmY;
FontSize := 24;
FontStyle := [];
FontColor := clBlack;
FontName := '宋体';
Content := '';
end;
procedure TTitle.LoadFromStream(AFileStream: TStream);
var
StrLen: Integer;
begin
with AFileStream do
begin
Read(Distance, SizeOf(Distance));
Read(FontSize, SizeOf(FontSize));
Read(FontStyle, SizeOf(FontStyle));
Read(FontColor, SizeOf(FontColor));
Read(StrLen,SizeOf(Integer));
SetLength(FontName, StrLen);
Read(FontName[1],StrLen);
Read(StrLen,SizeOf(Integer));
SetLength(Content, StrLen);
Read(Content[1],StrLen);
end;
end;
procedure TTitle.SaveToStream(AFileStream: TStream);
var
StrLen: Integer;
begin
with AFileStream do
begin
Write(Distance, SizeOf(Distance));
Write(FontSize, SizeOf(FontSize));
Write(FontStyle, SizeOf(FontStyle));
Write(FontColor, SizeOf(FontColor));
StrLen := Length(FontName);
Write(StrLen,SizeOf(Integer));
Write(FontName[1],StrLen);
StrLen := Length(Content);
Write(StrLen,SizeOf(Integer));
Write(Content[1],StrLen);
end;
end;
initialization
GetResolution;
finalization
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -