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

📄 guidm.pas

📁 DBDesigner 4 is a database design system that integrates database design, modelling, creation and ma
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        'Examples'+PathDelim;

    if(RecentSaveModelAsImageDir='')then
      RecentSaveModelAsImageDir:=RecentOpenFileDir;
  finally
    theIni.Free;
  end;
end;

procedure TDMGUI.SaveSettingsToIniFile;
var theIni: TMemIniFile;
  i: integer;
  s: string;
begin
  //Open IniFile
  theIni:=TMemIniFile.Create(DMMain.SettingsPath+DMMain.ProgName+'_Settings.ini');
  try
    theIni.WriteString('GeneralSettings', 'DelaySplashScreen',
      IntToStr(DelaySplashScreen));

    case Application.Style.DefaultStyle of
      dsWindows: theIni.WriteString('GeneralSettings', 'ApplicationStyle', '1');
      dsMotifPlus: theIni.WriteString('GeneralSettings', 'ApplicationStyle', '2');
      dsQtSGI: theIni.WriteString('GeneralSettings', 'ApplicationStyle', '3');
      dsPlatinum: theIni.WriteString('GeneralSettings', 'ApplicationStyle', '4');
    end;

    theIni.WriteString('GeneralSettings', 'ShowPalettesDocked',
      IntToStr(Ord(ShowPalettesDocked)));

    theIni.WriteString('GeneralSettings', 'EditorsFloatOnTop', IntToStr(Ord(DMMain.NormalizeEditorForms)));

    theIni.WriteString('GeneralSettings', 'ReopenLastFile',
      IntToStr(Ord(ReopenLastFile)));

    theIni.WriteString('GeneralSettings', 'ShowTipsOnStartup',
      IntToStr(Ord(ShowTipsOnStartup)));

    theIni.WriteString('GeneralSettings', 'LastTipShown',
      IntToStr(LastTipShown));


    //Clear RecentFiles
    theIni.EraseSection('RecentFiles');

    for i:=0 to RecentFiles.Count-1 do
      theIni.WriteString('RecentFiles', 'File'+IntToStr(i+1), RecentFiles[i]);

    theIni.WriteString('RecentDirectories', 'RecentOpenFileDir', RecentOpenFileDir);
    theIni.WriteString('RecentDirectories', 'RecentSaveModelAsImageDir', RecentSaveModelAsImageDir);
    theIni.WriteString('RecentDirectories', 'RecentOpenSQLScriptFileDir', RecentOpenSQLScriptFileDir);
    theIni.WriteString('RecentDirectories', 'RecentImportFileDir', RecentImportFileDir);

    theIni.WriteString('GeneralSettings', 'RunFirstTime',  '0');


    theIni.WriteString('GeneralSettings', 'SQLTextFont', SQLTextFont);
    theIni.WriteString('GeneralSettings', 'SQLTextFontSize', IntToStr(SQLTextFontSize));

    theIni.WriteString('GeneralSettings', 'MinimizeOnCtrlShiftC', IntToStr(Ord(MinimizeOnCtrlShiftC)));

    theIni.WriteString('GeneralSettings', 'HTMLBrowserAppl', DMMain.HTMLBrowserAppl);

    theIni.WriteString('DockedQueryPanel', 'Mode', IntToStr(DockedQueryPnlMode));
    theIni.WriteString('DockedQueryPanel', 'HeightM1', IntToStr(DockedQueryPnlHeightM1));
    theIni.WriteString('DockedQueryPanel', 'HeightM2', IntToStr(DockedQueryPnlHeightM2));
    theIni.WriteString('DockedQueryPanel', 'StoredSQLTreeVisibleM1', IntToStr(Ord(DockedQueryPnlStoredSQLTreeVisibleM1)));
    theIni.WriteString('DockedQueryPanel', 'StoredSQLTreeVisibleM2', IntToStr(Ord(DockedQueryPnlStoredSQLTreeVisibleM2)));
    theIni.WriteString('DockedQueryPanel', 'StoredSQLTreeWidthM1', IntToStr(DockedQueryPnlStoredSQLTreeWidthM1));
    theIni.WriteString('DockedQueryPanel', 'StoredSQLTreeWidthM2', IntToStr(DockedQueryPnlStoredSQLTreeWidthM2));
    theIni.WriteString('DockedQueryPanel', 'BLOBPnlVisibleM1', IntToStr(Ord(DockedQueryPnlBLOBPnlVisibleM1)));
    theIni.WriteString('DockedQueryPanel', 'BLOBPnlVisibleM2', IntToStr(Ord(DockedQueryPnlBLOBPnlVisibleM2)));
    theIni.WriteString('DockedQueryPanel', 'BLOBPnlWidthM1', IntToStr(DockedQueryPnlBLOBPnlWidthM1));
    theIni.WriteString('DockedQueryPanel', 'BLOBPnlWidthM2', IntToStr(DockedQueryPnlBLOBPnlWidthM2));
    theIni.WriteString('DockedQueryPanel', 'SQLPnlSizeM1', IntToStr(DockedQueryPnlSQLPnlSizeM1));
    theIni.WriteString('DockedQueryPanel', 'SQLPnlSizeM2', IntToStr(DockedQueryPnlSQLPnlSizeM2));

    theIni.WriteString('GeneralSettings', 'UseSQLSyntaxHighlighting', IntToStr(Ord(UseSQLSyntaxHighlighting)));

    theIni.WriteString('GeneralSettings', 'IgnoreSQLHistoryChange', IntToStr(Ord(IgnoreSQLHistoryChange)));


    theIni.WriteString('GeneralSettings', 'ApplicationFontName', DMMain.ApplicationFontName);
    theIni.WriteString('GeneralSettings', 'ApplicationFontSize', IntToStr(DMMain.ApplicationFontSize));

    s:='';
    if(fsBold in DMMain.ApplicationFontStyle)then
      s:=s+'Bold, '
    else if(fsItalic in DMMain.ApplicationFontStyle)then
      s:=s+'Italic, '
    else if(fsUnderline in DMMain.ApplicationFontStyle)then
      s:=s+'Underline, '
    else if(fsStrikeOut in DMMain.ApplicationFontStyle)then
      s:=s+'StrikeOut, ';
    s:=Copy(s, 1, Length(s)-2);
    theIni.WriteString('GeneralSettings', 'ApplicationFontStyle', s);


    theIni.UpdateFile;
  finally
    theIni.Free;
  end;
end;

procedure TDMGUI.AddFileToRecentFilesList(fname: string);
var theMenuItem: TMenuItem;
  oldPos: integer;
begin
  //Don't insert a file twice
  if(RecentFiles.IndexOf(fname)=-1)and(FileExists(fname))then
  begin
    RecentFiles.Insert(0, fname);

    theMenuItem:=TMenuItem.Create(MainForm);
    inc(RecentFilesMICounter);
    theMenuItem.Name:='OpenRecent'+IntToStr(RecentFilesMICounter+1)+'MI';
    theMenuItem.Caption:=ExtractFileName(fname);
    theMenuItem.OnClick:=OpenRecentFile;

    MainForm.OpenRecentMI.Insert(0, theMenuItem);

    if(RecentFiles.Count>10)then
    begin
      RecentFiles.Delete(10);
      theMenuItem:=MainForm.OpenRecentMI[10];
      MainForm.OpenRecentMI.Delete(10);
      theMenuItem.Free;
    end;
  end
  else if(RecentFiles.IndexOf(fname)>0)and(FileExists(fname))then
  begin
    oldPos:=RecentFiles.IndexOf(fname);
    RecentFiles.Delete(oldPos);
    RecentFiles.Insert(0, fname);

    theMenuItem:=MainForm.OpenRecentMI[oldPos];
    MainForm.OpenRecentMI.Delete(oldPos);
    MainForm.OpenRecentMI.Insert(0, theMenuItem);
  end;
end;

function TDMGUI.GetRecentFileCount: integer;
begin
  GetRecentFileCount:=RecentFiles.Count;
end;

function TDMGUI.GetRecentFileName(id: integer): string;
begin
  GetRecentFileName:=RecentFiles[id];
end;

procedure TDMGUI.OpenRecentFile(Sender: TObject);
begin
  MainForm.OpenFile(GetRecentFileName(MainForm.OpenRecentMI.IndexOf(TMenuItem(Sender))), False);
end;

procedure TDMGUI.SetStatusCaption(s: string);
begin
  MainForm.StatusCaptionLbl.Caption:=s;
  MainForm.StatusCaptionLbl.Refresh;
end;

procedure TDMGUI.SetQueryStatusLbl;
begin
  if(DMDB.CurrentDBConn=nil)then
  begin
    MainForm.ConnectionSBtn.Enabled:=False;
    MainForm.QueryStatusLbl.Caption:=
      DMMain.GetTranslatedMessage('Not connected to a Database', 27);
  end
  else
  begin
    MainForm.ConnectionSBtn.Enabled:=True;
    MainForm.QueryStatusLbl.Caption:=
      DMMain.GetTranslatedMessage('Connected to Database %s', 28,
        DMDB.CurrentDBConn.Params.Values['User_Name']+'@'+
        DMDB.CurrentDBConn.Params.Values['Database']);
  end;

  MainForm.DBConnPnl.Width:=MainForm.QueryStatusLbl.Width+37;
end;

function TDMGUI.LoadTip: string;
var theStringList: TStringList;
begin
  LoadTip:='';

  theStringList:=TStringList.Create;
  try
    DMMain.GetSectionFromTxtFile(DMMain.SettingsPath+DMMain.ProgName+'_Translations.ini',
      'Tips', theStringList, True);

    if(theStringList.Text='')then
    begin
      LoadTip:='';
      ShowTipsOnStartup:=False;
    end
    else
    begin
      inc(LastTipShown);
      if(LastTipShown>theStringList.Count-1)then
        LastTipShown:=0;

      LoadTip:=DMMain.ReplaceText(theStringList[DMGUI.LastTipShown], '#13#10', #13#10);
    end
  finally
    theStringList.Free;
  end;
end;

procedure TDMGUI.CopyInitialSettingsToPrivatSettingsDir;
var SourcePath: string;
begin
  SourcePath:=ExtractFilepath(Application.ExeName)+'Data'+PathDelim;

  //Copy Settings
  DMMain.CopyDiskFile(SourcePath+'DBDesigner4_Settings.ini',
    DMMain.SettingsPath+'DBDesigner4_Settings.ini', False);
  //Copy Database Info
  DMMain.CopyDiskFile(SourcePath+'DBDesigner4_DatabaseInfo.ini',
    DMMain.SettingsPath+'DBDesigner4_DatabaseInfo.ini', False);
  //Copy Translations Info
  DMMain.CopyDiskFile(SourcePath+'DBDesigner4_Translations.ini',
    DMMain.SettingsPath+'DBDesigner4_Translations.ini', False);

  DMMain.CopyDiskFile(SourcePath+'DBDesigner4_Translations.txt',
    DMMain.SettingsPath+'DBDesigner4_Translations.txt', False);



  //Copy DBConn DefaultSettings
  DMMain.CopyDiskFile(SourcePath+'DBConn_DefaultSettings.ini',
    DMMain.SettingsPath+'DBConn_DefaultSettings.ini', False);

  //Copy Language settings
  if(FileExists(SourcePath+'Language.ini'))then
    DMMain.CopyDiskFile(SourcePath+'Language.ini',
      DMMain.SettingsPath+'Language.ini', False);
end;

procedure TDMGUI.CheckIniFiles;
begin
  //Check if the default settings exist
  //if not, copy them
  if(Not(FileExists(DMMain.SettingsPath+'DBDesigner4_Settings.ini')))then
    CopyInitialSettingsToPrivatSettingsDir
  else
  begin
    //if they exist, check their version and replace personal file with up-to-date version
    DMMain.CheckIniFileVersion('DBDesigner4_Settings.ini', INIVersion_DBDesigner4_Settings);
    DMMain.CheckIniFileVersion('DBDesigner4_DatabaseInfo.ini', INIVersion_DBDesigner4_DatabaseInfo);
    DMMain.CheckIniFileVersion('DBConn_DefaultSettings.ini', INIVersion_DBConn_DefaultSettings);

    //if Translations.ini needs to be updated, copy Translations.txt as well
    if(Not(DMMain.CheckIniFileVersion(DMMain.ProgName+'_Translations.ini', INIVersion_DBDesigner4_Translations)))then
      DMMain.CopyDiskFile(ExtractFilepath(Application.ExeName)+'Data'+PathDelim+'DBDesigner4_Translations.txt',
        DMMain.SettingsPath+'DBDesigner4_Translations.txt', False);
  end;
end;

end.

⌨️ 快捷键说明

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