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

📄 options.pas

📁 功能强大的ER图建模工具的源代码。 可以代替ERWin了
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Options;

//----------------------------------------------------------------------------------------------------------------------
//
// This file is part of fabFORCE DBDesigner4.
// Copyright (C) 2002 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 Options.pas
// ---------------
// Version 1.3, 11.04.2003, Mike
// Description
//   Contains the options form class
//
// Changes:
//   Version 1.3, 11.04.2003, Mike
//     added FKPrefixEd, FKPostfixEd, ResetPersonalSettingsBtn
//   Version 1.2, 08.04.2003, Mike
//     added DefaultTableType and ActivateRefDefForNewRelation
//   Version 1.1, 04.04.2003, Mike
//     added Default Model Options Sheet
//   Version 1.0, 13.03.2003, Mike
//     initial version
//
//----------------------------------------------------------------------------------------------------------------------

{$I DBDesigner4.inc}

interface

uses
  SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs,
  QStdCtrls, QComCtrls, QExtCtrls, QButtons, IniFiles, Qt;

type
  TOptionsForm = class(TForm)
    PageControl: TPageControl;
    GenOptSheet: TTabSheet;
    VisualOptSheet: TTabSheet;
    Label1: TLabel;
    RegionColorsMemo: TMemo;
    Label4: TLabel;
    DefEditingOptionsSheet: TTabSheet;
    BottomPnl: TPanel;
    AbortBtn: TSpeedButton;
    SubmitBtn: TSpeedButton;
    GroupBox2: TGroupBox;
    Label18: TLabel;
    DefaultTableTypeCBox: TComboBox;
    GroupBox3: TGroupBox;
    Label19: TLabel;
    TableNameInRefsCBox: TCheckBox;
    Label23: TLabel;
    FKPrefixEd: TEdit;
    Label24: TLabel;
    FKPostfixEd: TEdit;
    CreateFKRefDefIndexCBox: TCheckBox;
    ActivateRefDefForNewRelationsCBox: TCheckBox;
    UsePosGridCBox: TCheckBox;
    GroupBox1: TGroupBox;
    GridWidthLbl: TLabel;
    GridXEd: TEdit;
    GridHeightLbl: TLabel;
    GridYEd: TEdit;
    GridWidthUnitsLbl: TLabel;
    GridHeightUnitsLbl: TLabel;
    PageControlTreeView: TTreeView;
    PageControlTitlePnl: TPanel;
    PageControlTitleLbl: TLabel;
    PageControlTitleShape: TShape;
    DBOptionsSheet: TTabSheet;
    Label7: TLabel;
    DefDatabaseTypeCBox: TComboBox;
    GroupBox4: TGroupBox;
    Label2: TLabel;
    SplashScreenDelayEd: TEdit;
    Label3: TLabel;
    ReopenLastFileCBox: TCheckBox;
    ShowTipsOnStartupCBox: TCheckBox;
    Various: TGroupBox;
    LimitUndoCBox: TCheckBox;
    UndoLimitEd: TEdit;
    EditorsFloatOnTopCBox: TCheckBox;
    ReservedWordsMemo: TMemo;
    Label10: TLabel;
    MinimizeOnCtrlShiftCCBox: TCheckBox;
    GroupBox5: TGroupBox;
    Label12: TLabel;
    LanguageCBox: TComboBox;
    GroupBox6: TGroupBox;
    Label11: TLabel;
    FontCBox: TComboBox;
    SQLFontSizeCBox: TComboBox;
    RenameReservedWordsCBox: TCheckBox;
    EncloseNamesCBox: TCheckBox;
    HTMLBrowserCBox: TCheckBox;
    HTMLBrowserEd: TEdit;
    UseSQLSyntaxHighlightingCBox: TCheckBox;
    IgnoreSQLHistoryChangeCBox: TCheckBox;
    Label13: TLabel;
    FontEdit: TEdit;
    SelectFontBtn: TSpeedButton;
    GroupBox7: TGroupBox;
    TblHeaderPreviewPnl: TPanel;
    TblBorderPnl: TPanel;
    TblColumnsPnl: TPanel;
    TblHeaderBGPnl: TPanel;
    TblHeaderBGImg: TImage;
    TblShadowPnl: TPanel;
    Label6: TLabel;
    Label5: TLabel;
    TblHeaderLU: TComboBox;
    DonotuseRelNameCbox: TCheckBox;
    ActivateNewXMLParserCBox: TCheckBox;
    EditOptionsTipPanel: TPanel;
    Label8: TLabel;
    Label9: TLabel;
    GroupBox8: TGroupBox;
    ResetPersonalSettingsBtn: TBitBtn;
    SyncDatatypesOfForeignKeysCBox: TCheckBox;
    OutputLinuxStyleLineBreaksCBox: TCheckBox;
    AddQuotesToDefValsCBox: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure DefDatabaseTypeCBoxChange(Sender: TObject);
    procedure TblHeaderLUChange(Sender: TObject);

    procedure GetPageHeaders;
    procedure ResetPersonalSettingsBtnClick(Sender: TObject);
    procedure SubmitBtnClick(Sender: TObject);
    procedure AbortBtnClick(Sender: TObject);

    procedure ApplyChanges;
    procedure UsePosGridCBoxClick(Sender: TObject);
    procedure SubmitBtnMouseEnter(Sender: TObject);
    procedure SubmitBtnMouseLeave(Sender: TObject);
    procedure PageControlChange(Sender: TObject);
    procedure PageControlTreeViewChange(Sender: TObject; Node: TTreeNode);
    procedure LanguageCBoxCloseUp(Sender: TObject);
    procedure HTMLBrowserCBoxClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure SelectFontBtnClick(Sender: TObject);
  private
    { Private declarations }
    DiscardChanges: Boolean;

    LanguageList: TStringList;
  public
    { Public declarations }
  end;

var
  OptionsForm: TOptionsForm;

implementation

uses MainDM, EERDM, DBDM, GUIDM, EER, EditorQuery;

{$R *.xfm}

procedure TOptionsForm.FormCreate(Sender: TObject);
var theIni: TMemIniFile;
  i, langIndex: integer;
begin
  DMMain.InitForm(self);

  DiscardChanges:=False;

  PageControlTreeView.FullExpand;
  PageControl.ActivePageIndex:=0;
  PageControlTreeView.Selected:=PageControlTreeView.Items[0];

  GetPageHeaders;

  //Translate PageControlTreeView Items
  PageControlTreeView.Items[0].Text:=DMMain.GetTranslatedMessage('General Options', 251);
  PageControlTreeView.Items[1].Text:=DMMain.GetTranslatedMessage('Visual Options', 252);
  PageControlTreeView.Items[2].Text:=DMMain.GetTranslatedMessage('Database Options', 253);
  PageControlTreeView.Items[3].Text:=DMMain.GetTranslatedMessage('Default Model Options', 254);


  DefDatabaseTypeCBox.Items.Assign(DMDB.DatabaseTypes);
  DefDatabaseTypeCBox.ItemIndex:=DefDatabaseTypeCBox.Items.IndexOf(DMDB.DefaultDatabaseType);

  //RegionColorsMemo.Lines.Assign(DMEER.RegionColors);
  RegionColorsMemo.Text:=DMEER.DefaultRegionColors;

  SplashScreenDelayEd.Text:=IntToStr(DMGUI.DelaySplashScreen);


  LimitUndoCBox.Checked:=DMEER.LimitUndoActions;
  UndoLimitEd.Text:=IntToStr(DMEER.UndoActionLimit);

  ReopenLastFileCBox.Checked:=DMGUI.ReopenLastFile;

  EditorsFloatOnTopCBox.Checked:=DMMain.NormalizeEditorForms;

  TblHeaderLU.ItemIndex:=TblHeaderLU.Items.IndexOf(DMEER.TblHeaderBGImgs);
  TblHeaderLUChange(self);

  UsePosGridCBox.Checked:=DMEER.UsePositionGrid;
  GridXEd.Text:=IntToStr(DMEER.PositionGrid.X);
  GridYEd.Text:=IntToStr(DMEER.PositionGrid.Y);
  UsePosGridCBoxClick(self);

  TableNameInRefsCBox.Checked:=DMEER.TableNameInRefs;
  DefaultTableTypeCBox.ItemIndex:=DMEER.DefaultTableType;
  ActivateRefDefForNewRelationsCBox.Checked:=DMEER.ActivateRefDefForNewRelations;

  FKPrefixEd.Text:=DMEER.FKPrefix;
  FKPostfixEd.Text:=DMEER.FKPostfix;

  ShowTipsOnStartupCBox.Checked:=DMGUI.ShowTipsOnStartup;

  CreateFKRefDefIndexCBox.Checked:=DMEER.CreateFKRefDefIndex;

  //MySQL_ReservedWords
  //Read IniFile
  theIni:=TMemIniFile.Create(DMMain.SettingsPath+'DBDesigner4_DatabaseInfo.ini');
  try
    theIni.ReadSectionValues(DMDB.DefaultDatabaseType+'_ReservedWords', ReservedWordsMemo.Lines);
  finally
    theIni.Free;
  end;
  ReservedWordsMemo.SelStart:=0;
  ReservedWordsMemo.SelLength:=0;

  FontCBox.Items.Assign(Screen.Fonts);
  FontCBox.ItemIndex:=FontCBox.Items.IndexOf(DMGUI.SQLTextFont);

  SQLFontSizeCBox.ItemIndex:=SQLFontSizeCBox.Items.IndexOf(IntToStr(DMGUI.SQLTextFontSize));

{$IFDEF MSWINDOWS}
  if(DMMain.disablePersonalSettings)then
    ResetPersonalSettingsBtn.Visible:=False;
{$ENDIF}

  MinimizeOnCtrlShiftCCBox.Checked:=DMGUI.MinimizeOnCtrlShiftC;

  PageControlTitleLbl.Font.Style:=[fsBold];

  LanguageList:=TStringList.Create;

  theIni:=TMemIniFile.Create(DMMain.SettingsPath+'DBDesigner4_Translations.ini');
  try
    theIni.ReadSectionValues('Languages', LanguageList);

    LanguageCBox.Items.Clear;
    langIndex:=0;
    for i:=0 to LanguageList.Count-1 do
    begin
      if(LanguageList.ValueFromIndex[i]<>'xx')then
      begin
        LanguageCBox.Items.Add(LanguageList.Names[i]);
        if(LanguageList.ValueFromIndex[i]=DMMain.GetLanguageCode)then
          langIndex:=i;
      end;
    end;
    LanguageCBox.ItemIndex:=langIndex;
  finally
    theIni.Free;
  end;

  RenameReservedWordsCBox.Checked:=DMEER.RenameReservedWords;
  EncloseNamesCBox.Checked:=DMEER.EncloseNames;

  HTMLBrowserEd.Text:=DMMain.HTMLBrowserAppl;
  HTMLBrowserCBox.Checked:=(DMMain.HTMLBrowserAppl<>'');
  HTMLBrowserCBoxClick(self);

  UseSQLSyntaxHighlightingCBox.Checked:=DMGUI.UseSQLSyntaxHighlighting;
{$IFNDEF USE_SYNEDIT}
  UseSQLSyntaxHighlightingCBox.Enabled:=False;
{$ENDIF}

  IgnoreSQLHistoryChangeCBox.Checked:=Not(DMGUI.IgnoreSQLHistoryChange);

  FontEdit.Text:=DMMain.ApplicationFontName+', '+
    IntToStr(DMMain.ApplicationFontSize);

  DonotuseRelNameCbox.Checked:=DMEER.DoNotUseRelNameInRefDef;

{$IFDEF USE_IXMLDBMODELType}
  ActivateNewXMLParserCBox.Checked:=DMEER.UseNewXMLParser;
{$ELSE}
  ActivateNewXMLParserCBox.Checked:=True;
  ActivateNewXMLParserCBox.Enabled:=False;
{$ENDIF}

⌨️ 快捷键说明

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