📄 rm_designer.pas
字号:
begin
//
end;
procedure TRMCustomPageEditor.Editor_Tab1Changed;
begin
//
end;
procedure TRMCustomPageEditor.Editor_OnFormMouseWheelUp(aUp: Boolean);
begin
//
end;
procedure TRMCustomPageEditor.Editor_KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
//
end;
procedure TRMCustomPageEditor.Editor_InitToolbarComponent;
begin
//
end;
procedure TRMCustomPageEditor.Editor_EnableControls;
begin
//
end;
procedure TRMCustomPageEditor.Editor_BtnDeletePageClick(Sender: TObject);
begin
//
end;
procedure TRMCustomPageEditor.Editor_OnInspAfterModify(Sender: TObject;
const aPropName, aPropValue: string);
begin
//
end;
procedure TRMCustomPageEditor.Editor_MenuFilePreview1Click(Sender: TObject);
begin
//
end;
procedure TRMCustomPageEditor.Editor_MenuFileHeaderFooterClick(Sender: TObject);
begin
//
end;
procedure TRMCustomPageEditor.Editor_BeforeFormDestroy;
begin
//
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMDefaultPageEditor }
constructor TRMDefaultPageEditor.CreateComp(aOwner: TComponent; aDesignerForm: TRMDesignerForm);
begin
inherited CreateComp(aOwner, aDesignerForm);
FPanel := TPanel.Create(Self);
with FPanel do
begin
Parent := TWinControl(aOwner);
Align := alClient;
BevelOuter := bvLowered;
end;
end;
destructor TRMDefaultPageEditor.Destroy;
begin
inherited Destroy;
end;
procedure TRMDefaultPageEditor.Editor_BtnDeletePageClick(Sender: TObject);
procedure _AlignmentSubReports(aPageNo: Integer);
var
i, j: Integer;
t: TRMView;
begin
with FDesignerForm.Report do
begin
for i := 0 to Pages.Count - 1 do
begin
j := 0;
while j < THackPage(Pages[i]).Objects.Count do
begin
t := THackPage(Pages[i]).Objects[j];
if t.ObjectType = rmgtSubReport then
begin
if TRMSubReportView(t).SubPage = aPageNo then
begin
Pages[i].Delete(j);
Dec(j);
end
else if TRMSubReportView(t).SubPage > aPageNo then
TRMSubReportView(t).SubPage := TRMSubReportView(t).SubPage - 1;
end;
Inc(j);
end;
end;
end;
end;
procedure _RemovePage(aPageNo: Integer);
begin
FDesignerForm.Modified := True;
with FDesignerForm.Report do
begin
if (aPageNo >= 0) and (aPageNo < Pages.Count) then
begin
if Pages.Count = 1 then
Pages[aPageNo].Clear
else
begin
FDesignerForm.Report.Pages.Delete(aPageNo);
FDesignerForm.Tab1.Tabs.Delete(aPageNo + 1);
_AlignmentSubReports(aPageNo);
FDesignerForm.CurPage := 0;
end;
end;
end;
end;
begin
if FDesignerForm.DesignerRestrictions * [rmdrDontDeletePage] <> [] then Exit;
if FDesignerForm.Report.Pages.Count > 1 then
begin
if Application.MessageBox(PChar(RMLoadStr(SRemovePg)),
PChar(RMLoadStr(SConfirm)), mb_IconQuestion + mb_YesNo) = mrYes then
begin
_RemovePage(FDesignerForm.CurPage);
end;
end;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
constructor TRMToolbarModifyPrepared.CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
begin
inherited Create(AOwner);
Visible := False;
// BeginUpdate;
Dockedto := DockTo;
FDesignerForm := TRMDesignerForm(AOwner);
ParentForm := FDesignerForm;
DockRow := 4;
DockPos := 0;
Name := 'ToolbarModifyPrepared';
CloseButton := False;
btnModifyPreviedFirst := TRMToolbarButton.Create(Self);
with btnModifyPreviedFirst do
begin
Width := 60;
Images := FDesignerForm.ImageListModifyPreview;
ImageIndex := 0;
OnClick := btnModifyPreviedFirstClick;
AddTo := Self;
{$IFDEF USE_TB2k}
DisplayMode := nbdmImageAndText;
{$ELSE}
DisplayMode := dmBoth;
{$ENDIF}
end;
btnModifyPreviedPrev := TRMToolbarButton.Create(Self);
with btnModifyPreviedPrev do
begin
Width := 60;
Images := FDesignerForm.ImageListModifyPreview;
ImageIndex := 1;
OnClick := btnModifyPreviedPrevClick;
AddTo := Self;
{$IFDEF USE_TB2k}
DisplayMode := nbdmImageAndText;
{$ELSE}
DisplayMode := dmBoth;
{$ENDIF}
end;
Edit1 := TRMEdit.Create(Self);
with Edit1 do
begin
Width := 64;
Text := '1';
OnKeyPress := Edit1KeyPress;
AddTo := Self;
end;
btnModifyPreviedNext := TRMToolbarButton.Create(Self);
with btnModifyPreviedNext do
begin
Width := 60;
Images := FDesignerForm.ImageListModifyPreview;
ImageIndex := 2;
OnClick := btnModifyPreviedNextClick;
AddTo := Self;
{$IFDEF USE_TB2k}
DisplayMode := nbdmImageAndText;
{$ELSE}
DisplayMode := dmBoth;
{$ENDIF}
end;
btnModifyPreviedLast := TRMToolbarButton.Create(Self);
with btnModifyPreviedLast do
begin
Width := 60;
Images := FDesignerForm.ImageListModifyPreview;
ImageIndex := 3;
OnClick := btnModifyPreviedLastClick;
AddTo := Self;
{$IFDEF USE_TB2k}
DisplayMode := nbdmImageAndText;
{$ELSE}
DisplayMode := dmBoth;
{$ENDIF}
end;
btnAutoSave := TRMToolbarButton.Create(Self);
with btnAutoSave do
begin
Width := 60;
AllowAllup := True;
GroupIndex := 1;
OnClick := btnAutoSaveClick;
AddTo := Self;
end;
// EndUpdate;
Localize;
end;
procedure TRMToolbarModifyPrepared.Localize;
begin
RMSetStrProp(btnModifyPreviedFirst, 'Caption', rmRes + 218);
RMSetStrProp(btnModifyPreviedPrev, 'Caption', rmRes + 219);
RMSetStrProp(btnModifyPreviedNext, 'Caption', rmRes + 220);
RMSetStrProp(btnModifyPreviedLast, 'Caption', rmRes + 221);
RMSetStrProp(btnAutoSave, 'Caption', rmRes + 222);
end;
type
THackPages = class(TRMPages)
end;
THackEndPage = class(TRMEndPage)
end;
procedure TRMToolbarModifyPrepared._EditPreparedReport(aNewPageNo: Integer);
var
liEndPage: TRMEndPage;
liPicture: TPicture;
libkPic: TRMbkPicture;
lipicLeft, lipicTop, liPicWidth, liPicHeight: Integer;
w: Word;
begin
if FDesignerForm.Modified then
begin
if btnAutoSave.Down then
w := mrYes
else
w := Application.MessageBox(PChar(RMLoadStr(SSaveChanges) + '?'),
PChar(RMLoadStr(SConfirm)), mb_YesNoCancel + mb_IconQuestion);
if w = mrYes then
begin
FDesignerForm.Report.EndPages[FDesignerForm.EndPageNo].ObjectsToStream(FDesignerForm.Report);
FDesignerForm.Report.CanRebuild := False;
RMDesigner.Modified := False;
FDesignerForm.Report.Modified := True;
end
else if w = mrCancel then
Exit;
end;
FDesignerForm.Modified := False;
FDesignerForm.EndPageNo := aNewPageNo;
libkPic := FDesignerForm.Report.EndPages.bkPictures[FDesignerForm.Report.EndPages[aNewPageNo].bkPictureIndex];
if libkPic <> nil then
begin
liPicture := TPicture.Create;
liPicture.Assign(libkPic.Picture);
lipicLeft := libkPic.Left;
lipicTop := libkPic.Top;
liPicWidth := libkPic.Width;
liPicHeight := libkPic.Height;
end
else
begin
liPicture := nil;
lipicLeft := 0;
lipicTop := 0;
liPicWidth := 0;
liPicHeight := 0;
end;
try
THackPages(FDesignerForm.Report.Pages).FPages.Clear;
FDesignerForm.Report.EndPages[FDesignerForm.EndPageNo].StreamToObjects(FDesignerForm.Report, False);
liEndPage := FDesignerForm.Report.EndPages[FDesignerForm.EndPageNo];
THackPages(FDesignerForm.Report.Pages).FPages.Add(liEndPage.Page);
if liPicture <> nil then
begin
THackReportPage(liEndPage.Page).FbkPicture.Assign(liPicture);
liEndPage.Page.bkPictureWidth := liPicWidth;
liEndPage.Page.bkPictureHeight := liPicHeight;
end;
liEndPage.Page.BackPictureLeft := lipicLeft;
liEndPage.Page.BackPictureTop := lipicTop;
finally
liPicture.Free;
FDesignerForm.CurPage := 0;
Edit1.Text := IntToStr(FDesignerForm.EndPageNo + 1);
end;
end;
procedure TRMToolbarModifyPrepared.btnModifyPreviedFirstClick(Sender: TObject);
begin
if FDesignerForm.EndPageNo <> 0 then
begin
_EditPreparedReport(0);
end;
end;
procedure TRMToolbarModifyPrepared.btnModifyPreviedPrevClick(Sender: TObject);
begin
if FDesignerForm.EndPageNo > 0 then
begin
_EditPreparedReport(FDesignerForm.EndPageNo - 1);
end;
end;
procedure TRMToolbarModifyPrepared.btnModifyPreviedLastClick(Sender: TObject);
begin
if FDesignerForm.EndPageNo <> FDesignerForm.Report.EndPages.Count - 1 then
begin
_EditPreparedReport(FDesignerForm.Report.EndPages.Count - 1);
end;
end;
procedure TRMToolbarModifyPrepared.btnModifyPreviedNextClick(Sender: TObject);
begin
if FDesignerForm.EndPageNo < FDesignerForm.Report.EndPages.Count - 1 then
begin
_EditPreparedReport(FDesignerForm.EndPageNo + 1);
end;
end;
procedure TRMToolbarModifyPrepared.Edit1KeyPress(Sender: TObject; var Key: Char);
var
liPageNo: Integer;
begin
if Key = #13 then
begin
try
liPageNo := StrToInt(Edit1.Text);
if liPageNo < 0 then
liPageNo := 0;
if liPageNo > FDesignerForm.Report.EndPages.Count - 1 then
liPageNo := FDesignerForm.Report.EndPages.Count - 1;
if FDesignerForm.EndPageNo <> liPageNo then
begin
_EditPreparedReport(liPageNo);
end;
except;
Edit1.Text := IntToStr(FDesignerForm.EndPageNo);
end;
end;
end;
procedure TRMToolbarModifyPrepared.btnAutoSaveClick(Sender: TObject);
begin
FDesignerForm.AutoSave := btnAutoSave.Down;
TRMToolbarButton(Sender).Down := FDesignerForm.AutoSave;
end;
{------------------------------------------------------------------------------}
{------------------------------------------------------------------------------}
{ TRMToolbarStandard }
constructor TRMToolbarStandard.CreateAndDock(AOwner: TComponent; DockTo: TRMDock);
procedure _CreatePageButtons(aIsReportPage: Boolean);
var
i: Integer;
lButton: TRMToolbarButton;
begin
for i := 0 to RMDsgPageButtonCount - 1 do
begin
if RMDsgPageButton(i).IsReportPage <> aIsReportPage then Continue;
lButton := TRMToolbarButton.Create(Self);
with lButton do
begin
Images := FDesignerForm.ImageListStand;
ImageIndex := StrToInt(RMDsgPageButton(i).ButtonBmpRes);
if RMDsgPageButton(i).IsReportPage then
OnClick := FDesignerForm.btnAddPageClick
else
OnClick := FDesignerForm.btnAddFormClick;
lButton.Hint := RMDsgPageButton(i).Caption;
Tag := i;
AddTo := Self;
SetLength(FAryButton, Length(FAryButton) + 1);
FAryButton[Length(FAryButton) - 1] := lButton;
end;
end;
end;
begin
inherited Create(AOwner);
Visible := False;
// BeginUpdate;
Dockedto := DockTo;
FDesignerForm := TRMDesignerForm(AOwner);
ParentForm := FDesignerForm;
DockRow := 0;
DockPos := 0;
Name := 'ToolbarStandard';
CloseButton := False;
btnFileNew := TRMToolbarButton.Create(Self);
with btnFileNew do
begin
ImageIndex := 0;
Images := FDesignerForm.ImageListStand;
OnClick := FDesignerForm.btnFileNewClick;
AddTo := Self;
end;
{$IFDEF USE_TB2K}
btnFileOpen := TRMSubmenuItem.Create(Self);
{$ELSE}
btnFileOpen := TRMToolbarButton.Create(Self);
{$ENDIF}
with btnFileOpen do
begin
ImageIndex := 1;
Images := FDesignerForm.ImageListStand;
OnClick := FDesignerForm.btnFileOpenClick;
DropdownCombo := True;
{$IFDEF USE_TB2k}
Self.Items.Add(btnFileOpen);
{$ELSE}
AddTo := Self;
DropdownMenu := FDesignerForm.FPopupMenuOpendFiles;
{$ENDIF}
end;
btnFileSave := TRMToolbarButton.Create(Self);
with btnFileSave do
begin
ImageIndex := 2;
Images := FDesignerForm.ImageListStand;
OnClick := FDesignerForm.btnFileSaveClick;
AddTo := Self;
end;
ToolbarSep971 := TRMToolbarSep.Create(Self);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -