📄 rm_designer.pas
字号:
itmFileFile1: TRMmenuItem;
itmFileFile2: TRMmenuItem;
itmFileFile3: TRMmenuItem;
itmFileFile4: TRMmenuItem;
itmFileFile5: TRMmenuItem;
itmFileFile6: TRMmenuItem;
itmFileFile7: TRMmenuItem;
itmFileFile8: TRMmenuItem;
itmFileFile9: TRMmenuItem;
N1: TRMSeparatorMenuItem;
padFileExit: TRMmenuItem;
FBarSearch: TRMSubmenuItem;
padSearchFind: TRMMenuItem;
padSearchReplace: TRMMenuItem;
padSearchFindAgain: TRMMenuItem;
FBarHelp: TRMSubmenuItem;
padHelp: TRMmenuItem;
N18: TRMSeparatorMenuItem;
padAbout: TRMmenuItem;
padSep: TRMSeparatorMenuItem;
padLanguage: TRMSubmenuItem;
//MenuBar End
FToolbarStandard: TRMToolbarStandard;
FToolbarModifyPrepared: TRMToolbarModifyPrepared;
procedure padHelpClick(Sender: TObject);
procedure padFilePropertyClick(Sender: TObject);
procedure btnPageSetupClick(Sender: TObject);
procedure btnFileSaveClick(Sender: TObject);
procedure padPrintClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure btnPasteClick(Sender: TObject);
procedure padAboutClick(Sender: TObject);
procedure padFileNewClick(Sender: TObject);
procedure padVarListClick(Sender: TObject);
procedure LoadDictionary1Click(Sender: TObject);
procedure MergeDictionary1Click(Sender: TObject);
procedure SaveAsDictionary1Click(Sender: TObject);
procedure itmFileFile9Click(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 btnAddPageClick(Sender: TObject);
procedure btnAddFormClick(Sender: TObject);
procedure btnDeletePageClick(Sender: TObject);
procedure btnUndoClick(Sender: TObject);
procedure btnRedoClick(Sender: TObject);
procedure padSearchFindClick(Sender: TObject);
procedure padSearchReplaceClick(Sender: TObject);
procedure padSearchFindAgainClick(Sender: TObject);
procedure MenuFilePreview1Click(Sender: TObject);
procedure MenuFileHeaderFooterClick(Sender: TObject);
procedure OnFieldsDialogCloseEvnet(Sender: TObject);
procedure Localize;
procedure SaveIni;
procedure LoadIni;
function FileSave: Boolean;
function FileSaveAs: Boolean;
procedure CreateDefaultPage;
procedure Tab1Change(Sender: TObject);
procedure Tab1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure Tab1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Tab1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Tab1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
procedure Tab1DragDrop(Sender, Source: TObject; X, Y: Integer);
{$IFDEF Raize}
procedure Tab1Changing(Sender: TObject; NewIndex: Integer; var AllowChange: Boolean);
{$ELSE}
procedure Tab1Changing(Sender: TObject; var AllowChange: Boolean);
{$ENDIF}
procedure SetCurDocName(Value: string);
procedure OnInspBeforeModify(Sender: TObject; const aPropName: string);
procedure OnInspAfterModify(Sender: TObject; const aPropName, aPropValue: string);
procedure GB1Click(Sender: TObject);
procedure GB2Click(Sender: TObject);
procedure GB3Click(Sender: TObject);
procedure SetOpenFileMenuItems(const aNewFile: string);
procedure OnDockRequestDockEvent(Sender: TObject; Bar: TRMCustomDockableWindow; var Accept: Boolean);
procedure OnFormMouseWheelUpEvent(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
procedure OnFormMouseWheelDownEvent(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
procedure OnLanguageItemClick(Sender: TObject);
procedure OpenFile(aFileName: string);
procedure SetGridShow(Value: Boolean);
procedure SetGridAlign(Value: Boolean);
procedure SetGridSize(Value: Integer);
protected
function GetModified: Boolean; override;
procedure SetModified(Value: Boolean); override;
procedure SetFactor(Value: Integer); override;
function GetDesignerRestrictions: TRMDesignerRestrictions; override;
procedure SetDesignerRestrictions(Value: TRMDesignerRestrictions); override;
public
{ Public declarations }
FirstSelected: TRMView;
SelNum: Integer; // number of objects currently selected
Dock971: TRMDock;
Dock972: TRMDock;
Dock973: TRMDock;
Dock974: TRMDock;
ObjID: Integer;
SaveDesignerRestrictions: TRMDesignerRestrictions;
UndoBuffer, RedoBuffer: TRMUndoBuffer;
procedure ClearUndoBuffer;
procedure ClearRedoBuffer;
procedure ReleaseAction(aActionRec: PRMUndoRec);
procedure BeforeChange; override;
procedure AfterChange; override;
function InsertDBField(t: TRMView): string; override;
function InsertExpression(t: TRMView): string; override;
procedure InspSelectionChanged(ObjName: string);
procedure RMMemoViewEditor(t: TRMView); override;
procedure RMFontEditor(Sender: TObject); override;
procedure RMDisplayFormatEditor(Sender: TObject); override;
procedure RMPictureViewEditor(t: TRMView); override;
procedure RMCalcMemoEditor(Sender: TObject); override;
procedure AddLanguageMenu(aParentMenu: TRMSubmenuItem);
function EditorForm: TForm; override;
function GetParentBand(t: TRMReportView): TRMReportView;
procedure EnableControls; override;
procedure InspGetObjects(List: TStrings);
procedure SetObjectsID;
procedure DoClick(Sender: TObject);
function PageSetup(aRepaint: Boolean): Boolean;
function RMCheckBand(b: TRMBandType): Boolean;
function IsSubreport(PageN: Integer): TRMView;
function TopSelected: Integer;
procedure SetObjectID(t: TRMView);
procedure RedrawPage;
procedure UnSelectAll;
function Objects: TList;
procedure ShowPosition; override;
function PageObjects: TList; override;
procedure SetPageTabs;
procedure SetCurPage(Value: Integer);
procedure ResetSelection;
procedure AddUndoAction(aAction: TRMUndoAction);
procedure SetOldCurPage(Value: Integer);
procedure SetControlsEnabled(const Ar: array of TObject; aEnabled: Boolean);
property MenuFileHeaderFooter: TRMMenuItem read FMenuFileHeaderFooter;
property UndoBufferLength: Integer read FUndoBufferLength write FUndoBufferLength;
property RedoBufferLength: Integer read FRedoBufferLength write FRedoBufferLength;
property ToolbarModifyPrepared: TRMToolbarModifyPrepared read FToolbarModifyPrepared;
property ToolbarStandard: TRMToolbarStandard read FToolbarStandard;
property MainMenu: TRMMenuBar read FMainMenu;
property BarFile: TRMSubmenuItem read FBarFile;
property BarSearch: TRMSubmenuItem read FBarSearch;
property BarHelp: TRMSubmenuItem read FBarHelp;
property Busy: Boolean read FBusy write FBusy; // busy flag. need!
property InspBusy: Boolean read FInspBusy write FInspBusy;
property CurPageEditor: TRMCustomPageEditor read FCurPageEditor;
property FieldForm: TRMInsFieldsForm read FFieldForm;
property InspForm: TRMInspForm read FInspForm;
property CurPage: Integer read FCurPage write SetCurPage;
property CurDocName: string read FCurDocName write SetCurDocName;
property AutoOpenLastFile: Boolean read FAutoOpenLastFile write FAutoOpenLastFile;
property WorkSpaceColor: TColor read FWorkSpaceColor write FWorkSpaceColor;
property InspFormColor: TColor read FInspFormColor write FInspFormColor;
property UnlimitedHeight: Boolean read FUnlimitedHeight write FUnlimitedHeight;
property GridAlign: Boolean read FGridAlign write SetGridAlign;
property GridSize: Integer read FGridSize write SetGridSize;
property ShowGrid: Boolean read FShowGrid write SetGridShow;
end;
procedure RMAssignImages(aSrcBmp: TBitmap; aDstImgList: TImageList); overload;
procedure RMAssignImages(aRes: string; aDstImgList: TImageList); overload;
procedure RMAddLanguageDll(aDllFileName: string; aCaption: string);
var
RM_LastFontName: string;
RM_LastFontSize: Integer;
RM_LastFontCharset: Word;
RM_LastFontStyle: Word;
RM_LastFontColor: TColor;
RM_LastHAlign: TRMHAlign;
RM_LastVAlign: TRMVAlign;
RM_LastFillColor: TColor;
RM_LastFrameWidth: Integer;
RM_LastFrameColor: TColor;
RM_LastLeftFrameVisible: Boolean;
RM_LastTopFrameVIsible: Boolean;
RM_LastRightFrameVisible: Boolean;
RM_LastBottomFrameVisible: Boolean;
RM_CurLanguage: string = '';
RM_Dsg_LastDataSet: string = '';
RMTemplateDir: string = '';
RMDesignerComp: TRMDesigner = nil;
implementation
{$R *.DFM}
uses
ShellApi,
RM_DsgForm, Registry, RM_Const, RM_Const1, RM_Utils, RM_EditorMemo, RM_EditorPicture, RM_EditorField,
RM_EditorExpr, RM_PageSetup, RM_EditorReportProp, RM_DesignerOptions, RM_Printer, RM_About,
RM_EditorFormat, RM_EditorDictionary, RM_EditorFindReplace, RM_EditorTemplate,
RM_EditorCalc, RM_Wizard, RM_WizardNewReport
{$IFDEF USE_SYNEDIT}
,RM_EditorConfirmReplace, RM_EditorReplaceText, RM_EditorSearchText
{$ENDIF}
;
const
rsGridShow = 'GridShow';
rsGridAlign = 'GridAlign';
rsGridSize = 'GridSize';
rsUnits = 'Units';
rsEdit = 'EditAfterInsert';
rsBandTitles = 'BandTitles';
rsAutoOpenLastFile = 'AutoOpenLastFile';
rsWorkSpaceColor = 'WorkSpaceColor';
rsInspFormColor = 'InspFormColor';
rsLocalizedPropertyName = 'LocalizedPropertyName';
rsShowDropDownField = 'ShowDropDownField';
rsLanguage = 'Language';
type
THackView = class(TRMView)
end;
THackPage = class(TRMCustomPage)
end;
THackReportPage = class(TRMReportPage)
end;
THackReport = class(TRMReport)
end;
var
FEditAfterInsert: Boolean;
FLanguageList: TStringList = nil;
FLanguageNameList: TStringList = nil;
procedure RMAssignImages(aSrcBmp: TBitmap; aDstImgList: TImageList);
var
lBmp: TBitmap;
lLeft, lTop: Integer;
lWidth, lHeight: Integer;
begin
lWidth := aDstImgList.Width;
lHeight := aDstImgList.Height;
lBmp := TBitmap.Create;
try
lBmp.Width := lWidth;
lBmp.Height := lHeight;
lTop := 0;
while lTop < aSrcBmp.Height do
begin
lLeft := 0;
while lLeft < aSrcBmp.Width do
begin
lBmp.Canvas.CopyRect(Rect(0, 0, lWidth, lHeight), aSrcBmp.Canvas,
Rect(lLeft, lTop, lLeft + lWidth, lTop + lHeight));
aDstImgList.AddMasked(lBmp, lBmp.TransparentColor);
lLeft := lLeft + lWidth;
end;
lTop := lTop + lHeight;
end;
finally
lBmp.Free;
end;
end;
procedure RMAssignImages(aRes: string; aDstImgList: TImageList);
var
lBmp: TBitmap;
begin
lBmp := TBitmap.Create;
try
lBmp.LoadFromResourceName(hInstance, aRes);
RMAssignImages(lBmp, aDstImgList);
finally
lBmp.Free;
end;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{TRMDesigner}
constructor TRMDesigner.Create(AOwner: TComponent);
begin
// if Assigned(FDesignerComp) then
// raise Exception.Create('You already have one TRMDesigner component');
inherited Create(AOwner);
FDefaultPageClass := '';
RMDesignerComp := Self;
FOpenFileCount := 4;
FDefaultDictionaryFile := '';
FUseUndoRedo := True;
end;
destructor TRMDesigner.Destroy;
begin
RMDesignerComp := nil;
inherited Destroy;
end;
procedure TRMDesigner.SetOpenFileCount(Value: Integer);
begin
if (Value >= 0) and (Value <= 9) then
FOpenFileCount := Value;
end;
procedure TRMDesigner.SetDesignerRestrictions(Value: TRMDesignerRestrictions);
begin
FDesignerRestrictions := Value;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMCustomPageEditor }
constructor TRMCustomPageEditor.CreateComp(aOwner: TComponent;
aDesignerForm: TRMDesignerForm);
begin
inherited Create(aOwner);
FDesignerForm := aDesignerForm;
end;
destructor TRMCustomPageEditor.Destroy;
begin
inherited Destroy;
end;
procedure TRMCustomPageEditor.Editor_Localize;
begin
//
end;
procedure TRMCustomPageEditor.Editor_AddUndoAction(aAction: TRMUndoAction);
begin
//
end;
procedure TRMCustomPageEditor.Editor_BtnUndoClick(Sender: TObject);
begin
//
end;
procedure TRMCustomPageEditor.Editor_BtnRedoClick(Sender: TObject);
begin
//
end;
procedure TRMCustomPageEditor.Editor_DisableDraw;
begin
//
end;
procedure TRMCustomPageEditor.Editor_EnableDraw;
begin
//
end;
procedure TRMCustomPageEditor.Editor_RedrawPage;
begin
//
end;
procedure TRMCustomPageEditor.Editor_Resize;
begin
//
end;
procedure TRMCustomPageEditor.Editor_Init;
begin
//
end;
procedure TRMCustomPageEditor.Editor_SetCurPage;
begin
//
end;
procedure TRMCustomPageEditor.Editor_SelectionChanged(aRefreshInspProp: Boolean);
begin
//
end;
procedure TRMCustomPageEditor.Editor_FillInspFields;
begin
//
end;
procedure TRMCustomPageEditor.Editor_ShowPosition;
begin
//
end;
procedure TRMCustomPageEditor.Editor_ShowContent;
begin
//
end;
function TRMCustomPageEditor.Editor_PageObjects: TList;
begin
Result := nil;
end;
procedure TRMCustomPageEditor.Editor_OnInspGetObjects(aList: TStrings);
begin
//
end;
procedure TRMCustomPageEditor.Editor_DoClick(Sender: TObject);
begin
//
end;
procedure TRMCustomPageEditor.Editor_SelectObject(ObjName: string);
begin
//
end;
procedure TRMCustomPageEditor.Editor_AfterChange;
begin
//
end;
procedure TRMCustomPageEditor.Editor_SetObjectsID;
begin
//
end;
procedure TRMCustomPageEditor.Editor_BtnCutClick(Sender: TObject);
begin
//
end;
procedure TRMCustomPageEditor.Editor_BtnCopyClick(Sender: TObject);
begin
//
end;
procedure TRMCustomPageEditor.Editor_BtnPasteClick(Sender: TObject);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -