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