⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmdrawreportdesignmainunt.pas

📁 EAComps手工画报表 对写报表编辑器有一定的参考价值
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit frmDrawReportDesignMainUnt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ToolWin, ActnMan, ActnCtrls, ActnMenus, ActnList, ImgList, ComCtrls,
  Menus, StdCtrls, Tabs, ExtCtrls, EAGraphicFun_Lib, jpeg,
  EAReportPmm, EAReportPmmDefining_Lib, EAReportDrawGrid_Comp, XPMan,
  ExtDlgs;

type
  TfrmDrawReportDesignMain = class(TForm)
    ImgList: TImageList;
    cbTools: TCoolBar;
    sbStatus: TStatusBar;
    pnlReportMain: TPanel;
    scrollReport: TScrollBox;
    tabPages: TTabSet;
    pnlShadow: TPanel;
    ActList: TActionList;
    ActFile_New: TAction;
    ActFile_Open: TAction;
    ActFile_CloseFile: TAction;
    ActFile_Save: TAction;
    ActFile_SaveAs: TAction;
    ActFile_ToExcel: TAction;
    ActFile_ToWord: TAction;
    ActFile_Print: TAction;
    ActFile_Preview: TAction;
    ActEdit_Undo: TAction;
    ActEdit_Redo: TAction;
    ActEdit_Cut: TAction;
    ActEdit_Copy: TAction;
    ActEdit_Paste: TAction;
    ActFile_Exit: TAction;
    ActEdit_Clear: TAction;
    ActEdit_Find: TAction;
    ActEdit_FindNext: TAction;
    ActEdit_Replace: TAction;
    ActTool_None: TAction;
    ActTool_DrawLine: TAction;
    ActTool_Erasure: TAction;
    ActTool_ShowLine: TAction;
    ActTool_HideLine: TAction;
    ActInsert_InsertPopup: TAction;
    ActInsert_Label: TAction;
    ActInsert_Image: TAction;
    ActInsert_Line: TAction;
    ActFormat_FontSet: TAction;
    ActGrid_AddGrid: TAction;
    ActGrid_DeleteGrid: TAction;
    ActGrid_SelectGrid: TAction;
    ActGrid_MergeCell: TAction;
    ActGrid_UnmergeCell: TAction;
    ActGrid_AvgRow: TAction;
    ActGrid_AvgCol: TAction;
    ActGrid_GridProperty: TAction;
    ActTool_ShowLineColor: TAction;
    ActTool_HideLienColor: TAction;
    ActPage_PagePopup: TAction;
    ActPage_Add: TAction;
    ActPage_Insert: TAction;
    ActPage_Delete: TAction;
    ActPage_Rename: TAction;
    ActPage_BackColor: TAction;
    ActPage_PageProperty: TAction;
    ActHelp_Help: TAction;
    ActHelp_About: TAction;
    ActFrame_FramePopup: TAction;
    ActFrame_AllFrame: TAction;
    ActFrame_AllNull: TAction;
    ActFrame_Outer: TAction;
    ActFrame_Cross: TAction;
    ActFrame_Left: TAction;
    ActFrame_HorzCenter: TAction;
    ActFrame_Right: TAction;
    ActFrame_Top: TAction;
    ActFrame_VertCenter: TAction;
    ActFrame_Bottom: TAction;
    ActFrame_ToLeftTop: TAction;
    ActFrame_ToRightTop: TAction;
    mmMain: TMainMenu;
    N1: TMenuItem;
    C1: TMenuItem;
    X1: TMenuItem;
    N2: TMenuItem;
    O1: TMenuItem;
    V1: TMenuItem;
    P1: TMenuItem;
    S1: TMenuItem;
    A1: TMenuItem;
    ExcelE1: TMenuItem;
    WordW1: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    D1: TMenuItem;
    C2: TMenuItem;
    X2: TMenuItem;
    F1: TMenuItem;
    N7: TMenuItem;
    V2: TMenuItem;
    E1: TMenuItem;
    R1: TMenuItem;
    Z1: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    P2: TMenuItem;
    L1: TMenuItem;
    L2: TMenuItem;
    N11: TMenuItem;
    A2: TMenuItem;
    B1: TMenuItem;
    D2: TMenuItem;
    I1: TMenuItem;
    N12: TMenuItem;
    R2: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    D3: TMenuItem;
    E2: TMenuItem;
    W1: TMenuItem;
    H1: TMenuItem;
    N18: TMenuItem;
    S2: TMenuItem;
    Q1: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N26: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    N29: TMenuItem;
    N30: TMenuItem;
    N31: TMenuItem;
    N32: TMenuItem;
    A3: TMenuItem;
    Y1: TMenuItem;
    N33: TMenuItem;
    D4: TMenuItem;
    G1: TMenuItem;
    M1: TMenuItem;
    S3: TMenuItem;
    P3: TMenuItem;
    N34: TMenuItem;
    N35: TMenuItem;
    N36: TMenuItem;
    A4: TMenuItem;
    H2: TMenuItem;
    N37: TMenuItem;
    tbCommonTool: TToolBar;
    tbGridTool: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    btnTool_None: TToolButton;
    btnTool_DrawLine: TToolButton;
    cboReportSize: TComboBox;
    btnTool_Erasure: TToolButton;
    btnTool_ShowLine: TToolButton;
    btnTool_HideLine: TToolButton;
    btnFrame_FramePopup: TToolButton;
    ToolButton21: TToolButton;
    ToolButton22: TToolButton;
    ToolButton23: TToolButton;
    ToolButton24: TToolButton;
    ToolButton25: TToolButton;
    ToolButton26: TToolButton;
    ToolButton27: TToolButton;
    ToolButton28: TToolButton;
    ToolButton30: TToolButton;
    ToolButton31: TToolButton;
    ToolButton32: TToolButton;
    pmInsertPopup: TPopupMenu;
    pmFramePopup: TPopupMenu;
    pmPagePopup: TPopupMenu;
    P4: TMenuItem;
    L3: TMenuItem;
    L4: TMenuItem;
    A5: TMenuItem;
    D5: TMenuItem;
    I2: TMenuItem;
    R3: TMenuItem;
    N38: TMenuItem;
    N39: TMenuItem;
    N40: TMenuItem;
    N41: TMenuItem;
    N43: TMenuItem;
    N44: TMenuItem;
    N45: TMenuItem;
    N46: TMenuItem;
    N47: TMenuItem;
    N48: TMenuItem;
    N49: TMenuItem;
    N50: TMenuItem;
    ActView_ShowScale: TAction;
    ActView_GridLine: TAction;
    N42: TMenuItem;
    G2: TMenuItem;
    S4: TMenuItem;
    ToolButton12: TToolButton;
    ToolButton15: TToolButton;
    ActEdit_BringToFront: TAction;
    ActEdit_SendToBack: TAction;
    N51: TMenuItem;
    T1: TMenuItem;
    B2: TMenuItem;
    ActGrid_CellProperty: TAction;
    U1: TMenuItem;
    ActFile_PrintSetup: TAction;
    U2: TMenuItem;
    dlgColor: TColorDialog;
    dlgSave: TSaveDialog;
    dlgOpen: TOpenDialog;
    N52: TMenuItem;
    F3: TMenuItem;
    dlgFont: TFontDialog;
    ActEdit_Delete: TAction;
    K1: TMenuItem;
    N53: TMenuItem;
    pmReport: TPopupMenu;
    D6: TMenuItem;
    C3: TMenuItem;
    X3: TMenuItem;
    K2: TMenuItem;
    V3: TMenuItem;
    B3: TMenuItem;
    T2: TMenuItem;
    N54: TMenuItem;
    N55: TMenuItem;
    tbSetupTool: TToolBar;
    ToolButton16: TToolButton;
    ToolButton20: TToolButton;
    ActFormat_AlignTL: TAction;
    ActFormat_AlignTC: TAction;
    ActFormat_AlignTR: TAction;
    ActFormat_AlignCL: TAction;
    ActFormat_AlignCC: TAction;
    ActFormat_AlignCR: TAction;
    ActFormat_AlignBL: TAction;
    ActFormat_AlignBC: TAction;
    ActFormat_AlignBR: TAction;
    ActFormat_BackColor: TAction;
    ActFormat_Align: TAction;
    ToolButton34: TToolButton;
    pmAlign: TPopupMenu;
    ActFormatAlignBC1: TMenuItem;
    ActFormatAlignBL1: TMenuItem;
    ActFormatAlignBR1: TMenuItem;
    ActFormatAlignCC1: TMenuItem;
    ActFormatAlignCL1: TMenuItem;
    ActFormatAlignCR1: TMenuItem;
    ActFormatAlignTC1: TMenuItem;
    ActFormatAlignTL1: TMenuItem;
    ActFormatAlignTR1: TMenuItem;
    A6: TMenuItem;
    N56: TMenuItem;
    N57: TMenuItem;
    N58: TMenuItem;
    N59: TMenuItem;
    N60: TMenuItem;
    N61: TMenuItem;
    N62: TMenuItem;
    N63: TMenuItem;
    N64: TMenuItem;
    K3: TMenuItem;
    ToolButton29: TToolButton;
    ActFormat_Image: TAction;
    I3: TMenuItem;
    N65: TMenuItem;
    ActFormat_AlignImage: TAction;
    O3: TMenuItem;
    dlgOpenPicture: TOpenPictureDialog;
    ActFormat_AlignImageNone: TAction;
    ActFormat_AlignImageClient: TAction;
    ActFormat_AlignImageAuto: TAction;
    N66: TMenuItem;
    N67: TMenuItem;
    N68: TMenuItem;
    drReport: TEAReportPmm;
    btnInsert_Label: TToolButton;
    btnInsert_Image: TToolButton;
    ToolButton36: TToolButton;
    ToolButton37: TToolButton;
    ToolButton13: TToolButton;
    procedure ActFile_NewExecute(Sender: TObject);
    procedure ActFile_OpenExecute(Sender: TObject);
    procedure ActPage_PagePopupExecute(Sender: TObject);
    procedure ActInsert_InsertPopupExecute(Sender: TObject);
    procedure scrollReportResize(Sender: TObject);
    procedure ActGrid_AddGridExecute(Sender: TObject);
    procedure ActTool_DrawLineExecute(Sender: TObject);
    procedure ActTool_NoneExecute(Sender: TObject);
    procedure ActTool_ErasureExecute(Sender: TObject);
    procedure ActTool_ShowLineExecute(Sender: TObject);
    procedure ActTool_HideLineExecute(Sender: TObject);
    procedure ActFrame_FramePopupExecute(Sender: TObject);
    procedure ActEdit_FindExecute(Sender: TObject);
    procedure ActEdit_ReplaceExecute(Sender: TObject);
    procedure ActFrame_AllFrameExecute(Sender: TObject);
    procedure ActFrame_AllNullExecute(Sender: TObject);
    procedure ActFrame_OuterExecute(Sender: TObject);
    procedure ActFrame_CrossExecute(Sender: TObject);
    procedure ActFrame_LeftExecute(Sender: TObject);
    procedure ActFrame_HorzCenterExecute(Sender: TObject);
    procedure ActFrame_RightExecute(Sender: TObject);
    procedure ActFrame_TopExecute(Sender: TObject);
    procedure ActFrame_VertCenterExecute(Sender: TObject);
    procedure ActFrame_BottomExecute(Sender: TObject);
    procedure ActFrame_ToLeftTopExecute(Sender: TObject);
    procedure ActFrame_ToRightTopExecute(Sender: TObject);
    procedure ActInsert_LabelExecute(Sender: TObject);
    procedure ActFile_ExitExecute(Sender: TObject);
    procedure ActView_GridLineExecute(Sender: TObject);
    procedure ActGrid_CellPropertyExecute(Sender: TObject);
    procedure cboReportSizeChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ActFile_PrintSetupExecute(Sender: TObject);
    procedure ActFile_PrintExecute(Sender: TObject);
    procedure ActFile_PreviewExecute(Sender: TObject);
    procedure ActPage_AddExecute(Sender: TObject);
    procedure tabPagesChange(Sender: TObject; NewTab: Integer;
      var AllowChange: Boolean);
    procedure ActPage_InsertExecute(Sender: TObject);
    procedure ActPage_DeleteExecute(Sender: TObject);
    procedure ActPage_RenameExecute(Sender: TObject);
    procedure ActPage_BackColorExecute(Sender: TObject);
    procedure ActPage_PagePropertyExecute(Sender: TObject);
    procedure ActHelp_AboutExecute(Sender: TObject);
    procedure ActFile_SaveExecute(Sender: TObject);
    procedure ActFile_CloseFileExecute(Sender: TObject);
    procedure ActFile_SaveAsExecute(Sender: TObject);
    procedure ActListUpdate(Action: TBasicAction; var Handled: Boolean);
    procedure ActEdit_UndoExecute(Sender: TObject);
    procedure ActEdit_RedoExecute(Sender: TObject);
    procedure ActFormat_FontSetExecute(Sender: TObject);
    procedure ActEdit_DeleteExecute(Sender: TObject);
    procedure ActEdit_CutExecute(Sender: TObject);
    procedure ActEdit_CopyExecute(Sender: TObject);
    procedure ActEdit_PasteExecute(Sender: TObject);
    procedure ActEdit_ClearExecute(Sender: TObject);
    procedure ActGrid_DeleteGridExecute(Sender: TObject);
    procedure ActEdit_BringToFrontExecute(Sender: TObject);
    procedure ActEdit_SendToBackExecute(Sender: TObject);
    procedure ActFormat_AlignExecute(Sender: TObject);
    procedure ActFormat_BackColorExecute(Sender: TObject);
    procedure ActFormat_AlignTLExecute(Sender: TObject);
    procedure ActFormat_AlignTCExecute(Sender: TObject);
    procedure ActFormat_AlignTRExecute(Sender: TObject);
    procedure ActFormat_AlignCLExecute(Sender: TObject);
    procedure ActFormat_AlignCCExecute(Sender: TObject);
    procedure ActFormat_AlignCRExecute(Sender: TObject);
    procedure ActFormat_AlignBLExecute(Sender: TObject);
    procedure ActFormat_AlignBCExecute(Sender: TObject);
    procedure ActFormat_AlignBRExecute(Sender: TObject);
    procedure drReportMouseWheel(Sender: TObject; Shift: TShiftState;
      WheelDelta: Integer; MousePos: TPoint);
    procedure drReportButtonClick(Sender, ASelectedObj: TObject;
      AObjType: TEASelectedObjectType);
    procedure ActInsert_ImageExecute(Sender: TObject);
    procedure ActFormat_ImageExecute(Sender: TObject);
    procedure ActFormat_AlignImageExecute(Sender: TObject);
    procedure ActFormat_AlignImageNoneExecute(Sender: TObject);
    procedure ActFormat_AlignImageClientExecute(Sender: TObject);
    procedure ActFormat_AlignImageAutoExecute(Sender: TObject);
    procedure ActInsert_LineExecute(Sender: TObject);
  private
    procedure InitData;
    procedure ClearData;
    procedure AdjustDrawReportPos;
    procedure LoadReportSizeToList;

    procedure SetupAllDrawGridTool(ADrawGridTool: TEAReportDrawGridTool);
    procedure SetupAllDrawGridFrame(AGridFrames: TEAGridFrames);
    procedure SetupTextAlign(AHorz: TEAHorzPos; AVert: TEAVertPos);
    procedure SetupImageAlign(AImageAlign: TEAImageAlign);

    function IsNotRepeatPageName(const AName: string; AOldPageIndex: Integer): Boolean;
    function GetNewPageName: string;
  public
    { Public declarations }
  end;

  procedure ShowDrawReportDesignMainForm;

var
  frmDrawReportDesignMain: TfrmDrawReportDesignMain;

implementation
uses
  EAReportLabel_Comp, EAReportImage_Comp, EAReportLine_Comp, EASysUtils,
  frmDrawReportDesignAddGridUnt, frmDrawReportDesignFindReplaceUnt,
  frmDrawGridCellSetupUnt, frmEAPubInputUnt;
{$R *.dfm}

const
  cSPageImg = 47;
  cSTitleStr = 'EAReportPmm';

procedure ShowDrawReportDesignMainForm;
begin
  Application.CreateForm(TfrmDrawReportDesignMain, frmDrawReportDesignMain);
  with frmDrawReportDesignMain do
  try
    InitData;
    ShowModal;
  finally
    ClearData;
    Free;
  end;
  frmDrawReportDesignMain := nil;
end;

procedure TfrmDrawReportDesignMain.ActFile_NewExecute(Sender: TObject);
begin
//
end;

procedure TfrmDrawReportDesignMain.ActFile_OpenExecute(Sender: TObject);
var
  I, vViewScale: Integer;
  B: Boolean;
begin
  if not dlgOpen.Execute then
    Exit;

  B := drReport.SaveDataInfo;
  drReport.Store.StopStore := True;
  drReport.LoadFromFile(dlgOpen.FileName);
  drReport.Store.Clear;

  tabPages.Tabs.BeginUpdate;
  tabPages.Tabs.Clear;

  for I := 0 to drReport.Pages.Count - 1 do
    tabPages.Tabs.Add(drReport.Pages[I].Name);
  if drReport.Pages.Count > 0 then
  begin
    tabPages.TabIndex := drReport.PageIndex;
  end
  else begin
    drReport.Pages.Add('第 1 页');
  end;
  for I := 0 to cboReportSize.Items.Count - 1 do
  begin
    vViewScale := Integer(cboReportSize.Items.Objects[I]);
    if vViewScale = drReport.ViewScale then
    begin
      cboReportSize.ItemIndex := I;
      Break;
    end;
    if I = cboReportSize.Items.Count - 1 then
    begin
      cboReportSize.Items.Objects[I] := TObject(drReport.ViewScale);
      cboReportSize.ItemIndex := I;
      Break;
    end;
  end;
  drReport.SaveDataInfo := B;
  drReport.Store.StopStore := False;

  tabPages.Tabs.EndUpdate;
  Self.Caption := cSTitleStr + '[' + dlgOpen.FileName + ']';
end;

procedure TfrmDrawReportDesignMain.ActPage_PagePopupExecute(
  Sender: TObject);
begin
//
end;

procedure TfrmDrawReportDesignMain.ActInsert_InsertPopupExecute(
  Sender: TObject);
begin
//
end;

procedure TfrmDrawReportDesignMain.ClearData;
begin

end;

procedure TfrmDrawReportDesignMain.InitData;
begin
  drReport.Left := 20;
  drReport.Top := 20;

⌨️ 快捷键说明

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