rm_designer.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 2,241 行 · 第 1/5 页

PAS
2,241
字号
    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);
begin
  inherited Create(AOwner);
  BeginUpdate;
  Dockedto := DockTo;
  FDesignerForm := TRMDesignerForm(AOwner);
  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 := TTBSubmenuItem.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.PopupMenu1;
    {$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);
  with ToolbarSep971 do
  begin
    AddTo := Self;
  end;

  btnPrint := TRMToolbarButton.Create(Self);
  with btnPrint do
  begin
    ImageIndex := 3;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.padPrintClick;
    AddTo := Self;
  end;
  btnPreview := TRMToolbarButton.Create(Self);
  with btnPreview do
  begin
    ImageIndex := 4;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnPreviewClick;
    AddTo := Self;
  end;
  ToolbarSep972 := TRMToolbarSep.Create(Self);
  with ToolbarSep972 do
  begin
    AddTo := Self;
  end;

  btnCut := TRMToolbarButton.Create(Self);
  with btnCut do
  begin
    ImageIndex := 5;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnCutClick;
    AddTo := Self;
  end;
  btnCopy := TRMToolbarButton.Create(Self);
  with btnCopy do
  begin
    ImageIndex := 6;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnCopyClick;
    AddTo := Self;
  end;
  btnPaste := TRMToolbarButton.Create(Self);
  with btnPaste do
  begin
    ImageIndex := 7;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnPasteClick;
    AddTo := Self;
  end;
  ToolbarSep973 := TRMToolbarSep.Create(Self);
  with ToolbarSep973 do
  begin
    AddTo := Self;
  end;

  btnExpression := TRMToolbarButton.Create(Self);
  with btnExpression do
  begin
    ImageIndex := 21;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnExpressionClick;
    AddTo := Self;
  end;
  ToolbarSep1 := TRMToolbarSep.Create(Self);
  with ToolbarSep1 do
  begin
    AddTo := Self;
  end;

  btnRedo := TRMToolbarButton.Create(Self);
  with btnRedo do
  begin
    ImageIndex := 9;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnRedoClick;
    AddTo := Self;
  end;
  btnUndo := TRMToolbarButton.Create(Self);
  with btnUndo do
  begin
    ImageIndex := 8;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnUndoClick;
    AddTo := Self;
  end;
  ToolbarSep974 := TRMToolbarSep.Create(Self);
  with ToolbarSep974 do
  begin
    AddTo := Self;
  end;

  btnBringtoFront := TRMToolbarButton.Create(Self);
  with btnBringtoFront do
  begin
    ImageIndex := 10;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnBringtoFrontClick;
    AddTo := Self;
  end;
  btnSendtoBack := TRMToolbarButton.Create(Self);
  with btnSendtoBack do
  begin
    ImageIndex := 11;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnSendtoBackClick;
    AddTo := Self;
  end;
  btnSelectAll := TRMToolbarButton.Create(Self);
  with btnSelectAll do
  begin
    ImageIndex := 12;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnSelectAllClick;
    AddTo := Self;
  end;
  ToolbarSep975 := TRMToolbarSep.Create(Self);
  with ToolbarSep975 do
  begin
    AddTo := Self;
  end;

  btnAddPage := TRMToolbarButton.Create(Self);
  with btnAddPage do
  begin
    ImageIndex := 13;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnAddPageClick;
    AddTo := Self;
  end;
  btnAddForm := TRMToolbarButton.Create(Self);
  with btnAddForm do
  begin
    ImageIndex := 14;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnAddFormClick;
    AddTo := Self;
  end;
  btnDeletePage := TRMToolbarButton.Create(Self);
  with btnDeletePage do
  begin
    ImageIndex := 15;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnDeletePageClick;
    AddTo := Self;
  end;
  btnPageSetup := TRMToolbarButton.Create(Self);
  with btnPageSetup do
  begin
    ImageIndex := 16;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.btnPageSetupClick;
    AddTo := Self;
  end;
  ToolbarSep976 := TRMToolbarSep.Create(Self);
  with ToolbarSep976 do
  begin
    AddTo := Self;
  end;

  GB1 := TRMToolbarButton.Create(Self);
  with GB1 do
  begin
    Tag := 55;
    AllowAllUp := True;
    GroupIndex := 1;
    ImageIndex := 17;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.GB1Click;
    AddTo := Self;
  end;
  GB2 := TRMToolbarButton.Create(Self);
  with GB2 do
  begin
    Tag := 56;
    AllowAllUp := True;
    GroupIndex := 2;
    ImageIndex := 18;
    Images := FDesignerForm.ImageListStand;
    OnClick := FDesignerForm.GB2Click;
    AddTo := Self;
  end;
  GB3 := TRMToolbarButton.Create(Self);
  with GB3 do
  begin
    Tag := 57;
    ImageIn

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?