rm_designer.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 2,241 行 · 第 1/5 页
PAS
2,241 行
unit RM_Designer;
interface
{$I RM.INC}
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Printers, Menus, ComCtrls, ExtCtrls, Clipbrd, Commctrl,
RM_Class, RM_Preview, RM_Common, RM_DsgCtrls, RM_Ctrls, RM_Insp, RM_PropInsp,
RM_EditorInsField, RM_DsgForm
{$IFDEF USE_TB2K}
, TB2Item, TB2Dock, TB2Toolbar
{$ELSE}
{$IFDEF USE_INTERNALTB97}
, RM_TB97Ctls, RM_TB97Tlbr, RM_TB97
{$ELSE}
, TB97Ctls, TB97Tlbr, TB97
{$ENDIF}
{$ENDIF}
{$IFDEF Delphi4}, ImgList{$ENDIF}
{$IFDEF Delphi6}, Variants{$ENDIF};
const
MaxUndoBuffer = 100;
type
TSelectionType = (ssBand, ssMemo, ssOther, ssMultiple);
TSelectionStatus = set of TSelectionType;
TRMMouseMode = (mmNone, mmSelect, mmRegionDrag, mmRegionResize,
mmSelectedResize, mmInsertObj);
TRMUndoObject = record
ObjID: Integer;
end;
TRMUndoRec = record
Action: TRMUndoAction;
Page: Integer;
Stream: TMemoryStream;
Objects: array of TRMUndoObject;
end;
PRMUndoRec = ^TRMUndoRec;
TRMUndoBuffer = array[0..MaxUndoBuffer - 1] of TRMUndoRec;
PRMUndoBuffer = ^TRMUndoBuffer;
TRMDesignerForm = class;
{ TRMDesigner }
TRMDesigner = class(TRMCustomDesigner) // fake component
private
FOpenFileCount: Integer;
FTemplDir, FOpenDir, FSaveDir: string;
FDesignerRestrictions: TRMDesignerRestrictions;
FDefaultDictionaryFile: string;
FUseUndoRedo: Boolean;
procedure SetOpenFileCount(Value: Integer);
procedure SetDesignerRestrictions(Value: TRMDesignerRestrictions);
protected
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property OpenFileCount: Integer read FOpenFileCount write SetOpenFileCount default 4;
property OpenDir: string read FOpenDir write FOpenDir;
property SaveDir: string read FSaveDir write FSaveDir;
property TemplateDir: string read FTemplDir write FTemplDir;
property DesignerRestrictions: TRMDesignerRestrictions read FDesignerRestrictions write SetDesignerRestrictions;
property DefaultDictionaryFile: string read FDefaultDictionaryFile write FDefaultDictionaryFile;
property UseUndoRedo: Boolean read FUseUndoRedo write FUseUndoRedo default True;
end;
{ TRMToolbarAlign }
TRMToolbarAlign = class(TRMToolbar)
private
FDesignerForm: TRMDesignerForm;
btnAlignLeftRight: TRMToolbarButton;
btnAlignTopBottom: TRMToolbarButton;
btnAlignVWCenter: TRMToolbarButton;
btnAlignLeft: TRMToolbarButton;
btnAlignHWCenter: TRMToolbarButton;
btnAlignHCenter: TRMToolbarButton;
btnAlignVSE: TRMToolbarButton;
btnAlignHSE: TRMToolbarButton;
btnAlignRight: TRMToolbarButton;
btnAlignBottom: TRMToolbarButton;
btnAlignTop: TRMToolbarButton;
btnAlignVCenter: TRMToolbarButton;
ToolbarSep9720: TRMToolbarSep;
ToolbarSep9721: TRMToolbarSep;
ToolbarSep9710: TRMToolbarSep;
procedure Localize;
function GetLeftObject: Integer;
function GetTopObject: Integer;
function GetRightObject: Integer;
function GetBottomObject: Integer;
procedure btnAlignLeftClick(Sender: TObject);
procedure btnAlignHCenterClick(Sender: TObject);
procedure btnAlignRightClick(Sender: TObject);
procedure btnAlignTopClick(Sender: TObject);
procedure btnAlignBottomClick(Sender: TObject);
procedure btnAlignHSEClick(Sender: TObject);
procedure btnAlignVSEClick(Sender: TObject);
procedure btnAlignHWCenterClick(Sender: TObject);
procedure btnAlignVWCenterClick(Sender: TObject);
procedure btnAlignVCenterClick(Sender: TObject);
procedure btnAlignLeftRightClick(Sender: TObject);
procedure btnAlignTopBottomClick(Sender: TObject);
public
constructor CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
end;
{ TRMToolbarSize }
TRMToolbarSize = class(TRMToolbar)
private
FDesignerForm: TRMDesignerForm;
btnSetWidthToMin: TRMToolbarButton;
btnSetWidthToMax: TRMToolbarButton;
btnSetHeightToMin: TRMToolbarButton;
btnSetHeightToMax: TRMToolbarButton;
ToolbarSep979: TRMToolbarSep;
procedure Localize;
procedure btnSetWidthToMinClick(Sender: TObject);
procedure btnSetWidthToMaxClick(Sender: TObject);
procedure btnSetHeightToMinClick(Sender: TObject);
procedure btnSetHeightToMaxClick(Sender: TObject);
public
constructor CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
end;
{ TRMToolbarBorder }
TRMToolbarBorder = class(TRMToolbar)
private
FDesignerForm: TRMDesignerForm;
btnFrameTop: TRMToolbarButton;
btnFrameLeft: TRMToolbarButton;
btnFrameBottom: TRMToolbarButton;
btnFrameRight: TRMToolbarButton;
btnNoFrame: TRMToolbarButton;
btnSetFrame: TRMToolbarButton;
ToolbarSep9717: TRMToolbarSep;
ToolbarSep9722: TRMToolbarSep;
FBtnBackColor: TRMColorPickerButton;
FBtnFrameColor: TRMColorPickerButton;
ToolbarSep9719: TRMToolbarSep;
btnSetFrameStyle: TRMFrameStyleButton {TRMToolbarButton};
FCmbFrameWidth: TRMComboBox97;
procedure Localize;
procedure SetStatus;
procedure btnSetFrameStyle_OnChange(Sender: TObject);
public
constructor CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
end;
{ TRMToolbarModifyPrepared }
TRMToolbarModifyPrepared = class(TRMToolbar)
private
FDesignerForm: TRMDesignerForm;
btnModifyPreviedFirst: TRMToolbarButton;
btnModifyPreviedPrev: TRMToolbarButton;
btnModifyPreviedNext: TRMToolbarButton;
btnModifyPreviedLast: TRMToolbarButton;
btnAutoSave: TRMToolbarButton;
Edit1: TRMEdit;
procedure Localize;
procedure _EditPreparedReport(aNewPageNo: Integer);
procedure btnModifyPreviedFirstClick(Sender: TObject);
procedure btnModifyPreviedPrevClick(Sender: TObject);
procedure btnModifyPreviedLastClick(Sender: TObject);
procedure btnModifyPreviedNextClick(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure btnAutoSaveClick(Sender: TObject);
public
constructor CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
end;
{ TRMToolbarStandard }
TRMToolbarStandard = class(TRMToolbar)
private
FDesignerForm: TRMDesignerForm;
BtnFileNew: TRMToolbarButton;
btnFileSave: TRMToolbarButton;
{$IFDEF USE_TB2K}
btnFileOpen: TTBSubmenuItem;
{$ELSE}
btnFileOpen: TRMToolbarButton;
{$ENDIF}
btnPreview: TRMToolbarButton;
btnPrint: TRMToolbarButton;
btnCut: TRMToolbarButton;
btnCopy: TRMToolbarButton;
btnPaste: TRMToolbarButton;
ToolbarSep972: TRMToolbarSep;
btnRedo: TRMToolbarButton;
btnUndo: TRMToolbarButton;
btnAddForm: TRMToolbarButton;
ToolbarSep973: TRMToolbarSep;
ToolbarSep9723: TRMToolbarSep;
btnSendtoBack: TRMToolbarButton;
btnSelectAll: TRMToolbarButton;
btnBringtoFront: TRMToolbarButton;
ToolbarSep974: TRMToolbarSep;
btnDeletePage: TRMToolbarButton;
btnPageSetup: TRMToolbarButton;
btnAddPage: TRMToolbarButton;
ToolbarSep975: TRMToolbarSep;
GB2: TRMToolbarButton;
GB3: TRMToolbarButton;
GB1: TRMToolbarButton;
ToolbarSep976: TRMToolbarSep;
btnExit: TRMToolbarButton;
ToolbarSep971: TRMToolbarSep;
ToolbarSepScale: TRMToolbarSep;
cmbScale: TRMComboBox97 {TComboBox};
btnExpression: TRMToolbarButton;
ToolbarSep1: TRMToolbarSep;
procedure Localize;
procedure OnCmbScaleChangeEvent(Sender: TObject);
public
constructor CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
end;
{ TRMDesignerForm }
TRMDesignerForm = class(TRMCustomDesignerForm)
StatusBar1: TStatusBar;
Panel7: TPanel;
PBox1: TPaintBox;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Popup2: TPopupMenu;
padpopAddPage: TMenuItem;
padpopAddForm: TMenuItem;
padpopDeletePage: TMenuItem;
N9: TMenuItem;
padpopPageSetup: TMenuItem;
ImageListStand: TImageList;
ImageListFont: TImageList;
ImageListFrame: TImageList;
ImageListAlign: TImageList;
ImageListSize: TImageList;
ImageListPosition: TImageList;
ImageListModifyPreview: TImageList;
ImageListAddinTools: TImageList;
PopupMenu1: TPopupMenu;
procedure FormCreate(Sender: TObject);
procedure DoClick(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnFileOpenClick(Sender: TObject);
procedure btnFileNewClick(Sender: TObject);
procedure padFileSaveAsClick(Sender: TObject);
procedure btnPreviewClick(Sender: TObject);
procedure btnCutClick(Sender: TObject);
procedure btnCopyClick(Sender: TObject);
procedure padDeleteClick(Sender: TObject);
procedure btnExpressionClick(Sender: TObject);
procedure btnSelectAllClick(Sender: TObject);
procedure padEditClick(Sender: TObject);
procedure btnAddPageClick(Sender: TObject);
procedure btnDeletePageClick(Sender: TObject);
procedure Pan2Click(Sender: TObject);
procedure PBox1Paint(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Tab1Change(Sender: TObject);
procedure btnPageSetupClick(Sender: TObject);
procedure btnFileSaveClick(Sender: TObject);
procedure padPrintClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure btnPasteClick(Sender: TObject);
procedure Popup1Popup(Sender: TObject);
procedure Pan5Click(Sender: TObject);
procedure padpopEditClick(Sender: TObject);
procedure padpopClearContentsClick(Sender: TObject);
procedure padpopFrameClick(Sender: TObject);
procedure barFileClick(Sender: TObject);
procedure btnUndoClick(Sender: TObject);
procedure btnRedoClick(Sender: TObject);
procedure padEditReplaceClick(Sender: TObject);
procedure itmEditLockControlsClick(Sender: TObject);
procedure btnBringtoFrontClick(Sender: TObject);
procedure btnSendtoBackClick(Sender: TObject);
procedure padOptionsClick(Sender: TObject);
procedure padAboutClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure padFilePropertyClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure SpeedButton1Click(Sender: TObject);
procedure padFileNewClick(Sender: TObject);
procedure Tab1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Tab1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure Tab1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Tab1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure Tab1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure padSetToolbarClick(Sender: TObject);
procedure btnAddFormClick(Sender: TObject);
procedure padVarListClick(Sender: TObject);
procedure LoadDictionary1Click(Sender: TObject);
procedure MergeDictionary1Click(Sender: TObject);
procedure SaveAsDictionary1Click(Sender: TObject);
procedure itmFileFile9Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
FInspBusy: Boolean;
FInspForm: TRMInspForm;
FMouseDown: Boolean;
FFindReplaceForm: TForm;
FUndoBuffer, FRedoBuffer: TRMUndoBuffer;
FUndoBufferLength, FRedoBufferLength: Integer;
FSaveDesignerRestrictions: TRMDesignerRestrictions;
ScrollBox1: TScrollBox;
Dock971: TRMDock;
Dock972: TRMDock;
Dock973: TRMDock;
Dock974: TRMDock;
//Tab begin;dejoy add
Panel2: TRMPanel;
pnlHorizontalRuler: TRMPanel;
pnlVerticalRuler: TRMPanel;
pnlWorkSpace: TRMPanel;
//Tab end;dejoy add
//MenuBar begin;dejoy add
MenuBar: TRMMenuBar;
barFile: TRMSubmenuItem;
padFileNew: TRMmenuItem;
padFileOpen: TRMmenuItem;
padFileSave: TRMmenuItem;
padFileSaveAs: TRMmenuItem;
N40: TRMSeparatorMenuItem;
padVarList: TRMmenuItem;
LoadDictionary1: TRMmenuItem;
MergeDictionary1: TRMmenuItem;
SaveAsDictionary1: TRMmenuItem;
N21: TRMSeparatorMenuItem;
padPageSetup: TRMmenuItem;
padPreview: TRMmenuItem;
padPrint: TRMmenuItem;
N24: TRMSeparatorMenuItem;
padFileProperty: TRMmenuItem;
N2: TRMSeparatorMenuItem;
itmFileFile1: TRMmenuItem;
itmFileFile2: TRMmenuItem;
itmFileFile3: TRMmenuItem;
itmFileFile4: TRMmenuItem;
itmFileFile5: TRMmenuItem;
itmFileFile6: TRMmenuItem;
itmFileFile7: TRMmenuItem;
itmFileFile8: TRMmenuItem;
itmFileFile9: TRMmenuItem;
N1: TRMSeparatorMenuItem;
padExit: TRMmenuItem;
barEdit: TRMSubmenuItem;
padUndo: TRMmenuItem;
padRedo: TRMmenuItem;
N47: TRMSeparatorMenuItem;
padCut: TRMmenuItem;
padCopy: TRMmenuItem;
padPaste: TRMmenuItem;
padDelete: TRMmenuItem;
padSelectAll: TRMmenuItem;
padEdit: TRMmenuItem;
N3: TRMSeparatorMenuItem;
padEditReplace: TRMmenuItem;
N26: TRMSeparatorMenuItem;
padNewPage: TRMmenuItem;
padNewForm: TRMmenuItem;
padDeletePage: TRMmenuItem;
N31: TRMSeparatorMenuItem;
padBringtoFront: TRMmenuItem;
padSendtoBack: TRMmenuItem;
N4: TRMSeparatorMenuItem;
itmEditLockControls: TRMmenuItem;
barSearch: TRMSubmenuItem;
padSearchFind: TRMMenuItem;
padSearchReplace: TRMMenuItem;
padSearchFindAgain: TRMMenuItem;
barTools: TRMSubmenuItem;
padSetToolbar: TRMSubmenuItem;
Pan1: TRMmenuItem;
Pan2: TRMmenuItem;
Pan3: TRMmenuItem;
Pan5: TRMmenuItem;
Pan4: TRMmenuItem;
Pan6: TRMmenuItem;
Pan8: TRMmenuItem;
Pan7: TRMmenuItem;
Pan9: TRMmenuItem;
padAddTools: TRMmenuItem;
padOptions: TRMmenuItem;
barHelp: TRMSubmenuItem;
padHelp: TRMmenuItem;
N18: TRMSeparatorMenuItem;
padAbout: TRMmenuItem;
//MenuBar End
//Pop Menu begin
Popup1: TRMPopupMenu;
padpopCut: TRMMenuItem;
padpopCopy: TRMMenuItem;
padpopPaste: TRMMenuItem;
padpopDelete: TRMMenuItem;
padpopSelectAll: TRMMenuItem;
N8: TRMSeparatorMenuItem;
padpopFrame: TRMMenuItem;
padpopEdit: TRMMenuItem;
padpopClearContents: TRMMenuItem;
//Pop Menu begin
ToolbarStandard: TRMToolbarStandard;
ToolbarAlign: TRMToolbarAlign;
ToolbarBorder: TRMToolbarBorder;
ToolbarSize: TRMToolbarSize;
ToolbarModifyPrepared: TRMToolbarModifyPrepared;
ToolbarEdit: TRMToolbar;
ToolBarAddinTools: TRMToolbar;
ToolbarPopMenu: TRMPopupMenu;
ToolbarPopStandard: TRMMenuItem;
ToolbarPopComponent: TRMMenuItem;
ToolbarPopAlign: TRMMenuItem;
ToolbarPopBorder: TRMMenuItem;
ToolbarPopSize: TRMMenuItem;
ToolbarPopModifyPrepared: TRMMenuItem;
ToolbarPopEdit: TRMMenuItem;
ToolbarPopAddinTools: TRMMenuItem;
ToolBarPopInsp: TRMMenuItem;
ToolBarPopInsDBField: TRMMenuItem;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?