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

📄 main.pas

📁 DBDesigner 4 is a database design system that integrates database design, modelling, creation and ma
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit Main;

//----------------------------------------------------------------------------------------------------------------------
//
// This file is part of fabFORCE DBDesigner4.
// Copyright (C) 2002, 2003 Michael G. Zinner, www.fabFORCE.net
//
// DBDesigner4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// DBDesigner4 is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with DBDesigner4; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
//----------------------------------------------------------------------------------------------------------------------
//
// Unit Main.pas
// -------------
// Version 2.1, 03.05.2003, Mike
// Description
//   Contains the TMainForm which representes the
//   application's Main Form
//
// Changes:
//   Version 2.1, 03.05.2003, Mike
//     Added CenterModelMI
//   Version 2.0, 18.04.2003, Mike
//     Changed all Records to TObjects.
//   Version 1.6, 15.04.2003, Mike
//     Hide/Show palettes now works with docked palettes
//   Version 1.5, 07.04.2003, Mike
//     ignore application parameters starting with - and open the
//     first existing file submitted as appl. parameter
//   Version 1.4, 04.04.2003, Mike
//     Added Submit Bug Menu Item
//   Version 1.3, 31.03.2003, Mike
//     OpenFile: when appending model, assign new IDs to
//       appeded objects and don't load settings
//   Version 1.2, 28.03.2003, Mike
//     Added SnapToGridBtn and QEventType_RefreshGridBtn Event
//   Version 1.1, 20.03.2003, Mike
//     renamed Syncronisation to Synchronisation in the main menu
//     changed call of EERModel.LoadFromFile in OpenFile to correct
//       wrong setting of AddDataToExistingModel
//   Version 1.0, 13.03.2003, Mike
//     initial version, Mike
//
//----------------------------------------------------------------------------------------------------------------------

{$I DBDesigner4.inc}

interface

uses
  SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs,
  QStdCtrls, QExtCtrls, QMenus, QTypes, QComCtrls, QGrids, QDBGrids,
  DBXpress, DB, SqlExpr, QImgList, QButtons, QDBCtrls, QT, QPrinters,
  QClipbrd, QStyle,
{$IFDEF USE_QTheming}QThemed,{$ENDIF}
  EERModel;


const
  INIVersion_DBDesigner4_Settings=4;
  INIVersion_DBDesigner4_DatabaseInfo=8;
  INIVersion_DBDesigner4_Translations=19;
  INIVersion_DBConn_DefaultSettings=4;

type
  TMainForm = class(TForm)
    MainMenu: TMainMenu;
    FileMI: TMenuItem;
    EditMI: TMenuItem;
    DisplayMI: TMenuItem;
    OptionsMI: TMenuItem;
    HelpMI: TMenuItem;
    ExitMI: TMenuItem;
    NewMI: TMenuItem;
    N1: TMenuItem;
    StatusPnl: TPanel;
    Shape8: TShape;
    ZoomShape: TShape;
    ZoomLbl: TLabel;
    AboutMI: TMenuItem;
    StatusCaptionLbl: TLabel;
    Bevel1: TBevel;
    MenuSepPnl: TPanel;
    HSepPn: TPanel;
    SaveMI: TMenuItem;
    OpenMI: TMenuItem;
    N2: TMenuItem;
    SaveAsMI: TMenuItem;
    EERModelOptionsMI: TMenuItem;
    N3: TMenuItem;
    DBDesignerOptionsMI: TMenuItem;
    DisplayEntityLevelMI: TMenuItem;
    DisplayAttributeLevelMI: TMenuItem;
    DisplayPrimaryKeyLevelMI: TMenuItem;
    N4: TMenuItem;
    PhysicalSchemaLevelMI: TMenuItem;
    CutMI: TMenuItem;
    CopyMI: TMenuItem;
    PasteMI: TMenuItem;
    DeleteMI: TMenuItem;
    SelectAllMI: TMenuItem;
    WindowsMI: TMenuItem;
    ToolsMI: TMenuItem;
    DBModelMI: TMenuItem;
    N6: TMenuItem;
    CascadeMI: TMenuItem;
    N7: TMenuItem;
    TileMI: TMenuItem;
    DatatypesMI: TMenuItem;
    CloseMI: TMenuItem;
    OpenRecentMI: TMenuItem;
    SaveinDatabaseMI: TMenuItem;
    ExportMI: TMenuItem;
    N8: TMenuItem;
    SQLCreateScriptMI: TMenuItem;
    DatabaseMI: TMenuItem;
    ReverseEngineeringMI: TMenuItem;
    DatabasesyncronisationMI: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    PageSetupMI: TMenuItem;
    N11: TMenuItem;
    NotationMI: TMenuItem;
    NotationStandardMI: TMenuItem;
    NotationErwinMI: TMenuItem;
    DisplayRelationNamesMI: TMenuItem;
    ResetPalettePositionsMI: TMenuItem;
    NavigatorInfoMI: TMenuItem;
    SaveModelasImageMI: TMenuItem;
    N12: TMenuItem;
    NotationStandard2MI: TMenuItem;
    ShowForeignKeysMI: TMenuItem;
    OpenfromDatabaseMI: TMenuItem;
    SQLDropScriptMI: TMenuItem;
    DisplayPageGridMI: TMenuItem;
    PrintMI: TMenuItem;
    Columns1: TMenuItem;
    N14: TMenuItem;
    N5: TMenuItem;
    UndoMI: TMenuItem;
    N13: TMenuItem;
    RedoMI: TMenuItem;
    AddLinkModelMI: TMenuItem;
    Style1: TMenuItem;
    StyleStandardMI: TMenuItem;
    StyleSGIMI: TMenuItem;
    StylePlatinumMI: TMenuItem;
    StyleMotifMI: TMenuItem;
    OnlinedocumentationMI: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    VisitHomepageMI: TMenuItem;
    CheckfornewversionsMI: TMenuItem;
    N17: TMenuItem;
    Bevel2: TBevel;
    RefreshTmr: TTimer;
    QueryPnl: TPanel;
    QuerySplitter: TSplitter;
    ShowPalettesTmr: TTimer;
    ToolsPnl: TPanel;
    Shape1: TShape;
    ToolsdockedMI: TMenuItem;
    SavedImg: TImage;
    NotSavedImg: TImage;
    Save2DiskImg: TImage;
    Save2DBImg: TImage;
    Save2DiskDisabledImg: TImage;
    Save2DBDisabledImg: TImage;
    DBConnPnl: TPanel;
    ConnectionSBtn: TSpeedButton;
    QueryStatusLbl: TLabel;
    Bevel3: TBevel;
    PluginsMI: TMenuItem;
    DockPalettesMI: TMenuItem;
    PaletteDockPnl: TPanel;
    NavPnl: TPanel;
    NavHeaderPnl: TPanel;
    DatatypesPnl: TPanel;
    DatatypesHeaderPnl: TPanel;
    ModelPnl: TPanel;
    ModelHeaderPnl: TPanel;
    Splitter2: TSplitter;
    N18: TMenuItem;
    NavFooterPnl: TPanel;
    DatatypesFooterPnl: TPanel;
    ModelFooterPnl: TPanel;
    PaletteDockSepPnl: TPanel;
    DatatypesSepPnl: TPanel;
    DatatypesLeftPnl: TPanel;
    ModelLeftPnl: TPanel;
    NavLeftPnl: TPanel;
    TableIndicesMI: TMenuItem;
    ListTableIndicesMI: TMenuItem;
    DesignModeMI: TMenuItem;
    N19: TMenuItem;
    QueryModeMI: TMenuItem;
    DesignToolsPnl: TPanel;
    CreatesImg: TImage;
    SyncImg: TImage;
    Image3: TImage;
    wtZoomSBtn: TSpeedButton;
    wtHandSBtn: TSpeedButton;
    wtImageSBtn: TSpeedButton;
    wtNoteSBtn: TSpeedButton;
    Image2: TImage;
    wtRelnmSBtn: TSpeedButton;
    wtRel11SubSBtn: TSpeedButton;
    Image6: TImage;
    wtRel11SBtn: TSpeedButton;
    wtRel1nSBtn: TSpeedButton;
    wtRel1nSubSBtn: TSpeedButton;
    wtTableSBtn: TSpeedButton;
    wtRegionSBtn: TSpeedButton;
    Image1: TImage;
    wtDeleteSBtn: TSpeedButton;
    wtSizeSBtn: TSpeedButton;
    wtMoveSBtn: TSpeedButton;
    wtPointerSBtn: TSpeedButton;
    WorkModePnl: TPanel;
    QueryImg: TImage;
    Designimg: TImage;
    Image5: TImage;
    Shape2: TShape;
    Shape3: TShape;
    QueryToolsPnl: TPanel;
    Shape5: TShape;
    wtPointerQrySBtn: TSpeedButton;
    wtMoveQrySBtn: TSpeedButton;
    Image7: TImage;
    wtHandQrySBtn: TSpeedButton;
    wtZoomQrySBtn: TSpeedButton;
    Image8: TImage;
    Image9: TImage;
    wtSQLSelectSBtn: TSpeedButton;
    wtSQLFromSBtn: TSpeedButton;
    wtSQLWhereSBtn: TSpeedButton;
    wtSQLGroupSBtn: TSpeedButton;
    wtSQLHavingSBtn: TSpeedButton;
    wtSQLOrderSBtn: TSpeedButton;
    wtSQLSetSBtn: TSpeedButton;
    KylixSpaceUpTimer: TTimer;
    SnapToGridBtn: TSpeedButton;
    Image10: TImage;
    SubmitabugfeaturerequestMI: TMenuItem;
    DeactivateTmr: TTimer;
    N20: TMenuItem;
    CenterModelMI: TMenuItem;
    Import1: TMenuItem;
    ImportERwin41XMLModelMI: TMenuItem;
    ConnecttoDatabaseMI: TMenuItem;
    DisconnectfromDatabaseMI: TMenuItem;
    ExportSelectedObjectsAsImgMi: TMenuItem;
    CopyselectedObjectsasImageMI: TMenuItem;
    CloseAllMI: TMenuItem;
    NotationCrowsFootMI: TMenuItem;
    N21: TMenuItem;
    wtRel11NonIdSBtn: TSpeedButton;
    Shape4: TShape;
    SQLOptimizeTableScriptMI: TMenuItem;
    AddLinkModelFromFileMI: TMenuItem;
    AddLinkModelfromDBMI: TMenuItem;
    N22: TMenuItem;
    ShowLinkedModelsMI: TMenuItem;
    RefreshLinkedObjectsMI: TMenuItem;
    N23: TMenuItem;
    AddLinkModelfromOnlineLibraryMI: TMenuItem;
    SQLRepairTableScriptMI: TMenuItem;
    NavInfoPBox: TPaintBox;
    DatatypePBox: TPaintBox;
    DBModelPBox: TPaintBox;
    Test1: TMenuItem;
    N24: TMenuItem;
    ExportMDBXMLFileMI: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure NewMIClick(Sender: TObject);
    function NewEERModel: TForm;
    procedure OpenFile(fname: string; AppendModel: Boolean);
    procedure ZoomLblClick(Sender: TObject);
    procedure ExitMIClick(Sender: TObject);
    procedure AboutMIClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure SaveAsMIClick(Sender: TObject);
    procedure SaveMIClick(Sender: TObject);
    procedure DisplayEntityLevelMIClick(Sender: TObject);
    procedure PhysicalSchemaLevelMIClick(Sender: TObject);



    procedure AddToMDIWindowMenu(theForm: TForm);
    procedure MDIWindowMIClick(Sender: TObject);
    procedure CascadeMIClick(Sender: TObject);
    procedure TileMIClick(Sender: TObject);
    procedure ToolsMIClick(Sender: TObject);
    procedure DatatypesMIClick(Sender: TObject);
    procedure DBModelMIClick(Sender: TObject);
    procedure CloseMIClick(Sender: TObject);
    procedure EERModelOptionsMIClick(Sender: TObject);
    procedure DeleteMIClick(Sender: TObject);
    procedure DeleteMIShow(Sender: TObject);
    procedure NotationStandardMIClick(Sender: TObject);

    procedure SetMenuItemChecks;
    procedure DBDesignerOptionsMIClick(Sender: TObject);
    procedure DisplayRelationNamesMIClick(Sender: TObject);
    procedure ResetPalettePositionsMIClick(Sender: TObject);
    procedure PageSetupMIClick(Sender: TObject);
    procedure NavigatorInfoMIClick(Sender: TObject);
    procedure SaveModelasImageMIClick(Sender: TObject);
    procedure ShowForeignKeysMIClick(Sender: TObject);
    procedure DisplayPageGridMIClick(Sender: TObject);
    procedure PrintMIClick(Sender: TObject);
    procedure SelectAllMIClick(Sender: TObject);
    procedure ActivateEERMIOnShow(Sender: TObject);
    procedure SQLCreateScriptMIClick(Sender: TObject);
    procedure ReverseEngineeringMIClick(Sender: TObject);
    procedure CopyMIClick(Sender: TObject);
    procedure PasteMIClick(Sender: TObject);
    procedure PasteMIShow(Sender: TObject);
    procedure CutMIClick(Sender: TObject);
    procedure DatabasesyncronisationMIClick(Sender: TObject);
    procedure UndoMIShow(Sender: TObject);
    procedure UndoMIClick(Sender: TObject);
    procedure RedoMIShow(Sender: TObject);
    procedure RedoMIClick(Sender: TObject);
    procedure StyleStandardMIClick(Sender: TObject);
    procedure SQLDropScriptMIClick(Sender: TObject);
    procedure OnlinedocumentationMIClick(Sender: TObject);
    procedure VisitHomepageMIClick(Sender: TObject);
    procedure CheckfornewversionsMIClick(Sender: TObject);
    procedure SaveinDatabaseMIClick(Sender: TObject);
    procedure OpenfromDatabaseMIClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure RefreshTmrTimer(Sender: TObject);
    procedure ShowPalettesTmrTimer(Sender: TObject);

    procedure DesignimgClick(Sender: TObject);
    procedure QueryImgClick(Sender: TObject);
    procedure ToolsdockedMIClick(Sender: TObject);
    procedure SyncImgClick(Sender: TObject);

    procedure DisableSaveImgs;
    procedure EnableSaveImgs;
    procedure Save2DiskImgClick(Sender: TObject);
    procedure Save2DBImgClick(Sender: TObject);

    function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; override;

    procedure wtPointerSBtnClick(Sender: TObject);
    procedure wtPointerSBtnMouseEnter(Sender: TObject);

    procedure SetApplStyle(ApplStyle: integer);
    procedure SetWorkMode(theWorkMode: integer);
    procedure DisplaySelectedWorkTool(WorkTool: integer);

    procedure ApplicationRestore(Sender: TObject);

    procedure HidePalettes;
    procedure ShowPalettes;

    procedure BuildPluginMenus;
    procedure PluginMIClick(Sender: TObject);

    procedure DockPalettesMIClick(Sender: TObject);
    procedure ListTableIndicesMIClick(Sender: TObject);

    procedure CopyMouseOverObjToClipboard;
    procedure CopyMouseOverObjToSQLMemo(key: integer);

    procedure CopySQLToClipboard(Key: Word);
    procedure DesignModeMIShow(Sender: TObject);
    procedure DesignModeMIClick(Sender: TObject);
    procedure ConnectionSBtnClick(Sender: TObject);

    procedure CheckLinuxDesktopFile;

    procedure DoApplicationEvent(Sender: QObjectH; Event: QEventH; var Handled: Boolean);

    procedure KylixSpaceUpTimerTimer(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure SnapToGridBtnMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure SubmitabugfeaturerequestMIClick(Sender: TObject);
    procedure DeactivateTmrTimer(Sender: TObject);
    procedure CenterModelMIClick(Sender: TObject);
    procedure ImportERwin41XMLModelMIClick(Sender: TObject);
    procedure ConnecttoDatabaseMIClick(Sender: TObject);
    procedure DisconnectfromDatabaseMIClick(Sender: TObject);
    procedure DisconnectfromDatabaseMIShow(Sender: TObject);

    procedure CopyselectedObjectsasImageMIClick(Sender: TObject);
    procedure CloseAllMIClick(Sender: TObject);
    procedure SQLOptimizeTableScriptMIClick(Sender: TObject);
    procedure OpenMIClick(Sender: TObject);

    procedure PlaceModel(theModel: TEERModel; P: TPoint; PlaceFrom: integer);
    procedure AddLinkModelFromFileMIClick(Sender: TObject);
    procedure AddLinkModelfromDBMIClick(Sender: TObject);
    procedure ShowLinkedModelsMIShow(Sender: TObject);
    procedure ShowLinkedModelsMIClick(Sender: TObject);
    procedure RefreshLinkedObjectsMIClick(Sender: TObject);
    procedure AddLinkModelfromOnlineLibraryMIClick(Sender: TObject);
    procedure SQLRepairTableScriptMIClick(Sender: TObject);
    procedure NavInfoPBoxPaint(Sender: TObject);
    procedure Test1Click(Sender: TObject);
    procedure ExportMDBXMLFileMIClick(Sender: TObject);
  private
    { Private declarations }
    KeyWasUp: Boolean;

    TabHidePalettes: TList;
    TabHasBeenPressedBeforeInactive: Boolean;

    TabHasBeenPressed: Boolean;

    PluginList: TStringList;

    //The EditorQueryDragTargetForm which is created when the user dragges an EERTable
    EditorQueryDragTargetForm: TForm;
    ToolBeforeSpaceDown: integer;

    ActivateDeactivateCounter: integer;
    ApplicationIsDeactivated: Boolean;
  public
    { Public declarations }
    Version: string;

⌨️ 快捷键说明

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