📄 rm_dsggridreport.pas
字号:
Caption := 'Split Cells';
OnClick := btnSplitClick;
AddToMenu(FSelectionMenu);
end;
N3 := TRMSeparatorMenuItem.Create(Self);
N3.AddToMenu(FSelectionMenu);
itmInsert := TRMSubmenuItem.Create(Self);
with itmInsert do
begin
Caption := 'Insert';
AddToMenu(FSelectionMenu);
end;
itmInsertLeftColumn := TRMMenuItem.Create(Self);
with itmInsertLeftColumn do
begin
Caption := 'Left Column';
OnClick := itmInsertLeftColumnClick;
AddToMenu(itmInsert);
end;
itmInsertRightColumn := TRMMenuItem.Create(Self);
with itmInsertRightColumn do
begin
Caption := 'Right Column';
OnClick := itmInsertRightColumnClick;
AddToMenu(itmInsert);
end;
N10 := TRMSeparatorMenuItem.Create(Self);
N10.AddToMenu(itmInsert);
itmInsertTopRow := TRMMenuItem.Create(Self);
with itmInsertTopRow do
begin
Caption := 'Top Row';
OnClick := itmInsertTopRowClick;
AddToMenu(itmInsert);
end;
itmInsertBottomRow := TRMMenuItem.Create(Self);
with itmInsertBottomRow do
begin
Caption := 'Bottom Row';
OnClick := itmInsertBottomRowClick;
AddToMenu(itmInsert);
end;
itmSep1 := TRMSeparatorMenuItem.Create(Self);
itmSep1.AddToMenu(itmInsert);
itmInsertLeftCell := TRMMenuItem.Create(Self);
with itmInsertLeftCell do
begin
Caption := RMLoadStr(rmRes + 258);
OnClick := itmInsertLeftCellClick;
AddToMenu(itmInsert);
end;
itmInsertTopCell := TRMMenuItem.Create(Self);
with itmInsertTopCell do
begin
Caption := RMLoadStr(rmRes + 259);
OnClick := itmInsertTopCellClick;
AddToMenu(itmInsert);
end;
itmDelete := TRMSubmenuItem.Create(Self);
with itmDelete do
begin
Caption := 'Delete';
AddToMenu(FSelectionMenu);
end;
itmDeleteColumn := TRMMenuItem.Create(Self);
with itmDeleteColumn do
begin
Caption := 'Column';
OnClick := itmDeleteColumnClick;
AddToMenu(itmDelete);
end;
itmDeleteRow := TRMMenuItem.Create(Self);
with itmDeleteRow do
begin
Caption := 'Row';
OnClick := itmDeleteRowClick;
AddToMenu(itmDelete);
end;
itmDeleteSep1 := TRMSeparatorMenuItem.Create(Self);
itmDeleteSep1.AddToMenu(itmDelete);
itmDeleteLeftCell := TRMMenuItem.Create(Self);
with itmDeleteLeftCell do
begin
Caption := RMLoadStr(rmRes + 268);
OnClick := itmDeleteLeftCellClick;
AddToMenu(itmDelete);
end;
itmDeleteTopCell := TRMMenuItem.Create(Self);
with itmDeleteTopCell do
begin
Caption := RMLoadStr(rmRes + 269);
OnClick := itmDeleteTopCellClick;
AddToMenu(itmDelete);
end;
N6 := TRMSeparatorMenuItem.Create(Self);
N6.AddToMenu(FSelectionMenu);
itmCellType := TRMSubmenuItem.Create(Self);
with itmCellType do
begin
Caption := 'Cell Type';
AddToMenu(FSelectionMenu);
end;
itmMemoView := TRMMenuItem.Create(Self);
with itmMemoView do
begin
Caption := 'Memo View';
Checked := True;
GroupIndex := 1;
RadioItem := true;
OnClick := itmMemoViewClick;
Tag := rmgtMemo;
AddToMenu(itmCellType);
end;
itmCalcMemoView := TRMMenuItem.Create(Self);
with itmCalcMemoView do
begin
Tag := rmgtCalcMemo;
Caption := 'Calc Memo View';
GroupIndex := 1;
RadioItem := true;
OnClick := itmMemoViewClick;
Tag := rmgtCalcMemo;
AddToMenu(itmCellType);
end;
itmPictureView := TRMMenuItem.Create(Self);
with itmPictureView do
begin
Tag := rmgtPicture;
Caption := 'Picture View';
GroupIndex := 1;
RadioItem := true;
OnClick := itmMemoViewClick;
AddToMenu(itmCellType);
end;
itmSubReportView := TRMMenuItem.Create(Self);
with itmSubReportView do
begin
Tag := rmgtSubReport;
Caption := 'SubReport View';
GroupIndex := 1;
RadioItem := true;
OnClick := itmMemoViewClick;
AddToMenu(itmCellType);
end;
itmInsertBand := TRMSubmenuItem.Create(Self);
with itmInsertBand do
begin
Caption := 'Band';
AddToMenu(FSelectionMenu);
end;
itmSelectBand := TRMSubmenuItem.Create(Self);
itmSelectBand.AddToMenu(FSelectionMenu);
N4 := TRMSeparatorMenuItem.Create(Self);
N4.AddToMenu(FSelectionMenu);
itmFrameType := TRMMenuItem.Create(Self);
with itmFrameType do
begin
Caption := 'Frame Type...';
OnClick := itmFrameTypeClick;
AddToMenu(FSelectionMenu);
end;
itmEdit := TRMMenuItem.Create(Self);
with itmEdit do
begin
Caption := 'Edit...';
OnClick := itmEditClick;
AddToMenu(FSelectionMenu);
end;
padpopClearContents := TRMMenuItem.Create(Self);
with padpopClearContents do
begin
Caption := 'Clear Contents';
OnClick := padpopClearContentsClick;
AddToMenu(FSelectionMenu);
end;
N100 := TRMSeparatorMenuItem.Create(Self);
N100.AddToMenu(FSelectionMenu);
padpopOtherProp := TRMMenuItem.Create(Self);
with padpopOtherProp do
begin
Caption := 'Other Prop';
AddToMenu(FSelectionMenu);
RMSetStrProp(padpopOtherProp, 'Caption', rmRes + 913);
end;
end;
procedure _CreateOneItem(aBandType: TRMBandType);
var
{$IFDEF USE_TB2K}
lItem: TTBItem;
{$ELSE}
litem: TRMMenuItem;
{$ENDIF}
lMenuItem: TRMMenuItem;
begin
{$IFDEF USE_TB2k}
lItem := TTBItem.Create(ToolbarBorder.btnAddBand);
lItem.Tag := Ord(aBandType);
lItem.Caption := RMBandNames[TRMBandType(aBandType)];
lItem.OnClick := OnAddBandEvent;
ToolbarBorder.btnAddBand.Add(lItem);
{$ELSE}
litem := TRMMenuItem.Create(FPopupMenuBands);
litem.Caption := RMBandNames[aBandType];
litem.Tag := Ord(aBandType);
litem.OnClick := OnAddBandEvent;
FPopupMenuBands.Items.Add(litem);
{$ENDIF}
lMenuItem := TRMMenuItem.Create(itmInsertBand);
lMenuItem.Caption := RMBandNames[TRMBandType(aBandType)];
lMenuItem.Tag := Ord(aBandType);
lMenuItem.OnClick := OnAddBandEvent;
itmInsertBand.Add(lMenuItem);
end;
procedure _CreateBandsMenuItems;
var
bt: TRMBandType;
begin
for bt := rmbtReportTitle to rmbtGroupFooter do
begin
_CreateOneItem(bt);
end;
_CreateOneItem(rmbtChild);
end;
var
i: Integer;
lMenuItem: TRMMenuItem;
begin
inherited CreateComp(aOwner, aDesignerForm);
FGrid := nil;
FDesignerForm := aDesignerForm;
FPageStream := TMemoryStream.Create;
_CreateComps;
_CreateMainMenu;
_CreateGridPopupMenu;
_CreateBandsMenuItems;
itmPictureView.Tag := rmgtPicture;
itmSubReportView.Tag := rmgtSubReport;
FAddinObjects := TStringList.Create;
FAddinObjects.Clear;
for i := 0 to RMAddInsCount - 1 do
begin
if not RMAddIns(i).IsControl then
begin
if (RMAddIns(i).ClassRef = nil) or (not RMAddIns(i).ClassRef.CanPlaceOnGridView) then Continue;
lMenuItem := TRMMenuItem.Create(itmCellType);
lMenuItem.GroupIndex := itmMemoView.GroupIndex;
lMenuItem.RadioItem := True;
lMenuItem.Tag := rmgtAddIn;
lMenuItem.Caption := RMAddIns(i).ButtonHint;
lMenuItem.OnClick := itmMemoViewClick;
FAddinObjects.Add(RMAddIns(i).ClassRef.ClassName);
itmCellType.Add(lMenuItem);
end;
end;
FFieldListBox := TListBox.Create(Self);
with FFieldListBox do
begin
Visible := False;
Parent := FDesignerForm;
Ctl3D := False;
Style := lbOwnerDrawFixed;
ItemHeight := 16;
OnClick := OnFieldListBoxClick;
OnDrawItem := OnFieldListBoxDrawItem;
end;
Localize;
LoadIni;
{$IFNDEF USE_TB2k}
FDesignerForm.MainMenu.Merge(FMainMenu);
{$ENDIF}
end;
destructor TRMGridReportPageEditor.Destroy;
begin
SaveIni;
{$IFNDEF USE_TB2k}
FDesignerForm.MainMenu.Unmerge(FMainMenu);
{$ENDIF}
SetGridNilProp;
FreeAndNil(FPageObjectList);
FreeAndNil(FAddinObjects);
FreeAndNil(FPageStream);
inherited Destroy;
end;
procedure TRMGridReportPageEditor.SaveIni;
begin
RMSaveToolbars('\GridReport', [ToolbarBorder, ToolbarEdit, ToolbarGrid, ToolbarCellEdit]);
end;
procedure TRMGridReportPageEditor.LoadIni;
begin
RMRestoreToolbars('\GridReport', [ToolbarEdit, ToolbarBorder, ToolbarGrid, ToolbarCellEdit]);
end;
procedure TRMGridReportPageEditor.Localize;
begin
RMSetStrProp(MenuEdit, 'Caption', rmRes + 163);
RMSetStrProp(MenuEditCopyPage, 'Caption', rmRes + 861);
RMSetStrProp(MenuEditPastePage, 'Caption', rmRes + 862);
RMSetStrProp(MenuEditCut, 'Caption', rmRes + 166);
RMSetStrProp(MenuEditCopy, 'Caption', rmRes + 167);
RMSetStrProp(MenuEditPaste, 'Caption', rmRes + 168);
RMSetStrProp(MenuEditDelete, 'Caption', rmRes + 169);
RMSetStrProp(MenuEditSelectAll, 'Caption', rmRes + 170);
RMSetStrProp(MenuEditUndo, 'Caption', rmRes + 164);
RMSetStrProp(MenuEditRedo, 'Caption', rmRes + 165);
RMSetStrProp(padSetToolbar, 'Caption', rmRes + 177);
RMSetStrProp(padAddTools, 'Caption', rmRes + 178);
RMSetStrProp(MenuEditToolbar, 'Caption', rmRes + 177);
RMSetStrProp(MenuEditOptions, 'Caption', rmRes + 179);
RMSetStrProp(itmToolbarStandard, 'Caption', rmRes + 181);
RMSetStrProp(itmToolbarText, 'Caption', rmRes + 182);
RMSetStrProp(itmToolbarBorder, 'Caption', rmRes + 180);
RMSetStrProp(itmToolbarInspector, 'Caption', rmRes + 184);
RMSetStrProp(itmToolbarInsField, 'Caption', rmRes + 110);
// RMSetStrProp(itmToolbarGrid, 'Caption', rmRes + 0);
RMSetStrProp(itmToolbarCellEdit, 'Caption', rmRes + 866);
RMSetStrProp(MenuCell, 'Caption', rmRes + 807);
RMSetStrProp(MenuCellMerge, 'Caption', rmRes + 805);
RMSetStrProp(MenuCellReverse, 'Caption', rmRes + 806);
RMSetStrProp(MenuCellProperty, 'Caption', rmRes + 694);
RMSetStrProp(MenuCellInsertColumn, 'Caption', rmRes + 801);
RMSetStrProp(MenuCellInsertRow, 'Caption', rmRes + 802);
RMSetStrProp(MenuCellDeleteColumn, 'Caption', rmRes + 803);
RMSetStrProp(MenuCellDeleteRow, 'Caption', rmRes + 804);
RMSetStrProp(MenuCellTableSize, 'Caption', rmRes + 692);
RMSetStrProp(MenuCellRow, 'Caption', rmRes + 245);
RMSetStrProp(MenuCellColumn, 'Caption', rmRes + 246);
RMSetStrProp(itmRowHeight, 'Caption', rmRes + 247);
RMSetStrProp(itmAverageRowHeight, 'Caption', rmRes + 248);
RMSetStrProp(itmColumnHeight, 'Caption', rmRes + 249);
RMSetStrProp(itmAverageColumnWidth, 'Caption', rmRes + 250);
RMSetStrProp(MenuCellInsertCell, 'Caption', rmRes + 252);
RMSetStrProp(itmInsertCellLeft, 'Caption', rmRes + 808);
RMSetStrProp(itmInsertCellTop, 'Caption', rmRes + 810);
RMSetStrProp(SelectionMenu_popCut, 'Caption', rmRes + 166);
RMSetStrProp(SelectionMenu_popCopy, 'Caption', rmRes + 167);
RMSetStrProp(SelectionMenu_popPaste, 'Caption', rmRes + 168);
// RMSetStrProp(SelectionMenu_popInsert, 'Caption', rmRes + 169);
// RMSetStrProp(SelectionMenu_popDelete, 'Caption', rmRes + 169);
RMSetStrProp(itmGridMenuBandProp, 'Caption', rmRes + 875);
RMSetStrProp(itmCellProp, 'Caption', rmRes + 694);
RMSetStrProp(itmMergeCells, 'Caption', rmRes + 805);
RMSetStrProp(itmSplitCells, 'Caption', rmRes + 806);
RMSetStrProp(itmInsert, 'Caption', rmRes + 702);
RMSetStrProp(itmInsertLeftColumn, 'Caption', rmRes + 808);
RMSetStrProp(itmInsertRightColumn, 'Caption', rmRes + 809);
RMSetStrProp(itmInsertTopRow, 'Caption', rmRes + 810);
RMSetStrProp(itmInsertBottomRow, 'Caption', rmRes + 811);
RMSetStrProp(itmDelete, 'Caption', rmRes + 350);
RMSetStrProp(itmDeleteColumn, 'Caption', rmRes + 812);
RMSetStrProp(itmDeleteRow, 'Caption', rmRes + 813);
RMSetStrProp(itmCellType, 'Caption', rmRes + 814);
RMSetStrProp(itmFrameType, 'Caption', rmRes + 214);
RMSetStrProp(itmEdit, 'Caption', rmRes + 153);
RMSetStrProp(padpopClearContents, 'Caption', rmRes + 881);
RMSetStrProp(itmMemoView, 'Caption', rmRes + 133);
RMSetStrProp(itmCalcMemoView, 'Caption', rmRes + 197);
RMSetStrProp(itmPictureView, 'Caption', rmRes + 135);
RMSetStrProp(itmSubReportView, 'Caption', rmRes + 136);
RMSetStrProp(itmInsertBand, 'Caption', rmRes + 860);
RMSetStrProp(itmSelectBand, 'Caption', rmRes + 876);
end;
type
TRMUndoObject = class(TObject)
private
FAryObjID: array of Integer;
FAryRow: array of Integer;
FAryCol: array of Integer;
protected
public
constructor Create;
destructor Destroy; override;
end;
constructor TRMUndoObject.Create;
begin
inherited Create;
SetLength(FAryObjID, 0);
SetLength(FAryRow, 0);
SetLength(FAryCol, 0);
end;
destructor TRMUndoObject.Destroy;
begin
SetLength(FAryObjID, 0);
SetLength(FAryRow, 0);
SetLength(FAryCol, 0);
inherited Destroy;
end;
procedure TRMGridReportPageEditor.Editor_BtnUndoClick(Sender: TObject);
begin
if FDesignerForm.Tab1.TabIndex = 0 then
begin
if FDesignerForm.CodeMemo.RMCanUndo then
begin
FDesignerForm.CodeMemo.RMUndo;
Editor_ShowPosition;
end;
end
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -