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