📄 main.pas
字号:
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 + -