📄 pagesetup.~pas
字号:
// *****************************************************************************
//
// Note: This free package of source code can only be used for reference and
// learning purpose, you can distribute it freely, but please do not use
// it for profit sake.
//
// Special thanks to: RICHBBS (www.delphibbs.com)
//
// Huang Qian, Feb 2002
// Wuhan University
//
// *****************************************************************************
unit PageSetup;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, Spin, Buttons, Printers;
type
TFormPageSetup = class(TForm)
PageCtlPageSetup: TPageControl;
TabSheetPageInfo: TTabSheet;
LabelDirection: TLabel;
BevelDirection: TBevel;
LabelStartPageNo: TLabel;
TabSheetMargin: TTabSheet;
LabelMargin: TLabel;
BevelMargin: TBevel;
LabelAlign: TLabel;
BevelAlign: TBevel;
ChkBoxHorzCenter: TCheckBox;
ChkBoxVertCenter: TCheckBox;
TabSheetHF: TTabSheet;
TabSheetTitle: TTabSheet;
LabelTitle: TLabel;
BevelTitle: TBevel;
BtnOk: TButton;
BtnCancel: TButton;
ImageVertPrint: TImage;
RBtnVPrint: TRadioButton;
ImageHorzPrint: TImage;
RBtnHPrint: TRadioButton;
LabelScale: TLabel;
BevelScale: TBevel;
LabelScalePercent: TLabel;
SEditScale: TSpinEdit;
BevelPageNo: TBevel;
LabelPageNo: TLabel;
LabelTMargin: TLabel;
SEditTMargin: TSpinEdit;
LabelBMargin: TLabel;
SEditBMargin: TSpinEdit;
LabelLMargin: TLabel;
SEditLMargin: TSpinEdit;
LabelRMargin: TLabel;
SEditRMargin: TSpinEdit;
LabelHSize: TLabel;
SEditHeaderSize: TSpinEdit;
LabelFSize: TLabel;
SEditFooterSize: TSpinEdit;
LabelHF: TLabel;
BevelHF: TBevel;
GbxPageRange: TGroupBox;
RBtnPrintAll: TRadioButton;
RBtnPageRange: TRadioButton;
LabelFromPage: TLabel;
LabelToPage: TLabel;
SEditFromPage: TSpinEdit;
SEditToPage: TSpinEdit;
TabSheetGrid: TTabSheet;
GbxHeader: TGroupBox;
CbxHeaderType: TComboBox;
EditHeader1: TEdit;
EditHeader2: TEdit;
EditHeader3: TEdit;
LabelHeader1: TLabel;
LabelHeader2: TLabel;
LabelHeader3: TLabel;
LabelHeaderType: TLabel;
GbxFooter: TGroupBox;
LabelFooter1: TLabel;
LabelFooter2: TLabel;
LabelFooter3: TLabel;
LabelFooterType: TLabel;
CbxFooterType: TComboBox;
EditFooter1: TEdit;
EditFooter2: TEdit;
EditFooter3: TEdit;
LbxTitleType: TListBox;
LabelHLineStyle: TLabel;
CbxHLineStyle: TComboBox;
LabelHLineWidth: TLabel;
SEditHLineWidth: TSpinEdit;
ChkBoxHDoubleLine: TCheckBox;
LabelFLineStyle: TLabel;
CbxFLineStyle: TComboBox;
LabelFLineWidth: TLabel;
SEditFLineWidth: TSpinEdit;
ChkBoxFDoubleLine: TCheckBox;
LabelTitleDistance: TLabel;
SEditTitleDistance: TSpinEdit;
LabelTitleContent: TLabel;
LabelTitleFont: TLabel;
LabelTail: TLabel;
BevelTail: TBevel;
LbxTailType: TListBox;
LabelTailDistance: TLabel;
SEditTailDistance: TSpinEdit;
LabelTailContent: TLabel;
LabelTailFont: TLabel;
GbxSplit: TGroupBox;
RBtnHorzSplit: TRadioButton;
RBtnVertSplit: TRadioButton;
ImageHorzSplit: TImage;
ImageVertSplit: TImage;
LabelGridInfo: TLabel;
BevelGridInfo: TBevel;
ChkBoxMonoColored: TCheckBox;
ChkBoxPrintGridLine: TCheckBox;
ChkBoxPrintColTitle: TCheckBox;
ChkBoxPrintRowTitle: TCheckBox;
ChkBoxPrintFixedCols: TCheckBox;
ChkBoxPrintFixedRows: TCheckBox;
GbxConjunction: TGroupBox;
LabelTopConjunction: TLabel;
EditTopConjunction: TEdit;
LabelBottomConjunction: TLabel;
EditBottomConjunction: TEdit;
RBtnPrintConjunction: TRadioButton;
RBtnNoConjunction: TRadioButton;
BtnPrinter: TButton;
FontDialogPageSetup: TFontDialog;
SEditStartPageNo: TSpinEdit;
BtnInsertPageNo: TSpeedButton;
SBtnInsertPageCount: TSpeedButton;
SBtnInsertDate: TSpeedButton;
SBtnInsertTime: TSpeedButton;
SEditFont: TSpeedButton;
BtnTitleFont: TSpeedButton;
MemoTitleContent: TMemo;
BtnTailFont: TSpeedButton;
MemoTailContent: TMemo;
LabelTitleExtent: TLabel;
SEditTitleExtent: TSpinEdit;
BevelTitleContent: TBevel;
BevelTailContent: TBevel;
LabelTailExtent: TLabel;
SEditTailExtent: TSpinEdit;
procedure ImageHorzSplitClick(Sender: TObject);
procedure ImageVertSplitClick(Sender: TObject);
procedure ImageVertPrintClick(Sender: TObject);
procedure ImageHorzPrintClick(Sender: TObject);
procedure BtnPrinterClick(Sender: TObject);
procedure RBtnVPrintClick(Sender: TObject);
procedure RBtnHPrintClick(Sender: TObject);
procedure LbxTitleTypeClick(Sender: TObject);
procedure LbxTailTypeClick(Sender: TObject);
procedure CbxHeaderTypeChange(Sender: TObject);
procedure CbxFooterTypeChange(Sender: TObject);
procedure BtnInsertPageNoClick(Sender: TObject);
procedure SBtnInsertPageCountClick(Sender: TObject);
procedure SBtnInsertDateClick(Sender: TObject);
procedure SBtnInsertTimeClick(Sender: TObject);
procedure SEditFontClick(Sender: TObject);
procedure MemoTitleContentChange(Sender: TObject);
procedure MemoTailContentChange(Sender: TObject);
procedure SEditTitleDistanceChange(Sender: TObject);
procedure SEditTailDistanceChange(Sender: TObject);
procedure BtnTitleFontClick(Sender: TObject);
procedure BtnTailFontClick(Sender: TObject);
procedure BtnOkClick(Sender: TObject);
private
{ Private declarations }
FPaperSize, FPageWidth, FPageHeight: Integer;
procedure InsertEditText(AText: string);
procedure AssignEditProp(AHeader: Pointer; AEdit: TEdit);
public
{ Public declarations }
ParentGrid: Pointer;
end;
implementation
uses EasyGrid;
{$R *.DFM}
procedure TFormPageSetup.ImageHorzSplitClick(Sender: TObject);
begin
RBtnHorzSplit.Checked := True;
RBtnHorzSplit.SetFocus;
end;
procedure TFormPageSetup.ImageVertSplitClick(Sender: TObject);
begin
RBtnVertSplit.Checked := True;
RBtnVertSplit.SetFocus;
end;
procedure TFormPageSetup.ImageVertPrintClick(Sender: TObject);
begin
RBtnVPrint.Checked := True;
RBtnVPrint.SetFocus;
end;
procedure TFormPageSetup.ImageHorzPrintClick(Sender: TObject);
begin
RBtnHPrint.Checked := True;
RBtnHPrint.SetFocus;
end;
procedure TFormPageSetup.LbxTitleTypeClick(Sender: TObject);
procedure GetTitleProp;
begin
with FTitle do
begin
MemoTitleContent.Clear;
MemoTitleContent.Lines.Add(Content);
MemoTitleContent.SelStart := 1;
MemoTitleContent.SelLength := 0;
MemoTitleContent.Font.Name := FontName;
MemoTitleContent.Font.Size := FontSize;
MemoTitleContent.Font.Style := FontStyle;
MemoTitleContent.Font.Color := FontColor;
SEditTitleDistance.Value := Round(Distance / ScreenPixelsPerMmY);
end;
end;
begin
with LbxTitleType, TEasyGrid(ParentGrid).EasyGridPageInfo.CommonPageInfo do
begin
case ItemIndex of
0 : FTitle := FMainTitle;
1 : FTitle := FTitle1;
2 : FTitle := FTitle2;
3 : FTitle := FTitle3;
4 : FTitle := FTitle4;
5 : FTitle := FTitle5;
6 : FTitle := FTitle6;
end;
GetTitleProp;
end;
end;
procedure TFormPageSetup.LbxTailTypeClick(Sender: TObject);
procedure GetTailProp;
begin
with FTail do
begin
MemoTailContent.Clear;
MemoTailContent.Lines.Add(Content);
MemoTailContent.SelStart := 1;
MemoTailContent.SelLength := 0;
MemoTailContent.Font.Name := FontName;
MemoTailContent.Font.Size := FontSize;
MemoTailContent.Font.Style := FontStyle;
MemoTailContent.Font.Color := FontColor;
SEditTailDistance.Value := Round(Distance / ScreenPixelsPerMmY);
end;
end;
begin
with LbxTailType, TEasyGrid(ParentGrid).EasyGridPageInfo.CommonPageInfo do
begin
case ItemIndex of
0 : FTail := FTail1;
1 : FTail := FTail2;
2 : FTail := FTail3;
3 : FTail := FTail4;
4 : FTail := FTail5;
5 : FTail := FTail6;
end;
GetTailProp;
end;
end;
procedure TFormPageSetup.CbxHeaderTypeChange(Sender: TObject);
var
Grid: TEasyGrid;
begin
Grid := TEasyGrid(ParentGrid);
with CbxHeaderType, Grid.EasyGridPageInfo.CommonPageInfo do
begin
case ItemIndex of
0 : // 自定义页眉
begin
CbxHLineStyle.ItemIndex := Ord(HeaderLineStyle);
ChkBoxHDoubleLine.Checked := HeaderDoubleLine;
SEditHLineWidth.Value := HeaderLineWidth;
EditHeader1.Text := Header1.Content;
EditHeader2.Text := Header2.Content;
EditHeader3.Text := Header3.Content;
end;
1 :
begin
CbxHLineStyle.ItemIndex := 0;
ChkBoxHDoubleLine.Checked := True;
SEditHLineWidth.Value := 1;
EditHeader1.Text := '';
EditHeader2.Text := '第 &P 页';
EditHeader3.Text := '';
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -