mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2026-03-13 09:24:25 +08:00
- Move all hardcoded preferences names (registry) plus their default values to const.inc to fix inconsistencies like the one described here: http://www.heidisql.com/forum/viewtopic.php?p=1739
- Consequently use Mainform.GetRegValue() to read these values, an overloaded method with either Boolean, String or Integer result. These methods keep a global TRegistry object (regMain) open while the application runs, rather than creating a new one for each caller. - Remove Mainform.SaveRegValue() which was used in one or two callers. Rather use a TRegistry object and do that by hand. There's no significant advantage in using a SaveRegValue method currently.
This commit is contained in:
@@ -11,15 +11,14 @@ const
|
||||
PRIVTABLE_COLUMNS = 'columns_priv';
|
||||
DBNAME_INFORMATION_SCHEMA = 'information_schema';
|
||||
DBNAME_MYSQL = 'mysql';
|
||||
LOCAL_HOST = '127.0.0.1';
|
||||
MYSQL_PORT = 3306;
|
||||
|
||||
// Related field things
|
||||
TEMPFIELDNAME = 'temp_fieldname';
|
||||
|
||||
// General things
|
||||
APPNAME = 'HeidiSQL';
|
||||
REGPATH = 'Software\' + APPNAME;
|
||||
REGPATH = '\Software\' + APPNAME + '\';
|
||||
REGKEY_SESSIONS = 'Servers\';
|
||||
STATUS_MSG_READY = 'Ready.';
|
||||
STR_NOTSUPPORTED = 'Not supported by this server';
|
||||
|
||||
@@ -29,10 +28,126 @@ const
|
||||
// Used for simulating a TTreeNode which has subnodes
|
||||
DUMMY_NODE_TEXT : String = 'Dummy node, should never be visible';
|
||||
|
||||
// Registry name for storing list of displayed columns
|
||||
// Various names of registry variables
|
||||
// User-changable variables have a default value
|
||||
// Note: Color values are in HEX format: $00BBGGRR
|
||||
REGNAME_DISPLAYEDCOLUMNS = 'DisplayedColumns';
|
||||
REGNAME_SORTDISPLAYEDCOLUMNS = 'DisplayedColumnsSorted';
|
||||
REGNAME_LISTTABLESCOLUMNNAMES = 'ListTablesColumnNames';
|
||||
REGNAME_LASTSESSION = 'lastcon';
|
||||
REGNAME_AUTORECONNECT = 'AutoReconnect';
|
||||
DEFAULT_AUTORECONNECT = False;
|
||||
REGNAME_CONVERTHTMLENTITIES = 'ConvertHTMLEntities';
|
||||
DEFAULT_CONVERTHTMLENTITIES = True;
|
||||
REGNAME_RESTORELASTUSEDDB = 'RestoreLastUsedDB';
|
||||
DEFAULT_RESTORELASTUSEDDB = True;
|
||||
REGNAME_LASTUSEDDB = 'lastUsedDB';
|
||||
REGNAME_FONTNAME = 'FontName';
|
||||
DEFAULT_FONTNAME = 'Courier New';
|
||||
REGNAME_FONTSIZE = 'FontSize';
|
||||
DEFAULT_FONTSIZE = 9;
|
||||
REGNAME_DATAFONTNAME = 'DataFontName';
|
||||
DEFAULT_DATAFONTNAME = 'Tahoma';
|
||||
REGNAME_DATAFONTSIZE = 'DataFontSize';
|
||||
DEFAULT_DATAFONTSIZE = 8;
|
||||
REGNAME_LOGSQLNUM = 'logsqlnum';
|
||||
DEFAULT_LOGSQLNUM = 300;
|
||||
REGNAME_LOGSQLWIDTH = 'logsqlwidth';
|
||||
DEFAULT_LOGSQLWIDTH = 2000;
|
||||
REGNAME_SQLCOLKEYATTRI = 'SQLColKeyAttri';
|
||||
DEFAULT_SQLCOLKEYATTRI = $00FF0000; // clBlue;
|
||||
REGNAME_SQLCOLFUNCTIONATTRI = 'SQLColFunctionAttri';
|
||||
DEFAULT_SQLCOLFUNCTIONATTRI = $00800000; // clNavy
|
||||
REGNAME_SQLCOLDATATYPEATTRI = 'SQLColDataTypeAttri';
|
||||
DEFAULT_SQLCOLDATATYPEATTRI = $00000080; // clMaroon;
|
||||
REGNAME_SQLCOLNUMBERATTRI = 'SQLColNumberAttri';
|
||||
DEFAULT_SQLCOLNUMBERATTRI = $00800080; // clPurple;
|
||||
REGNAME_SQLCOLSTRINGATTRI = 'SQLColStringAttri';
|
||||
DEFAULT_SQLCOLSTRINGATTRI = $00008000; // clGreen
|
||||
REGNAME_SQLCOLCOMMENTATTRI = 'SQLColCommentAttri';
|
||||
DEFAULT_SQLCOLCOMMENTATTRI = $00808080; // clGray
|
||||
REGNAME_SQLCOLTABLENAMEATTRI = 'SQLColTablenameAttri';
|
||||
DEFAULT_SQLCOLTABLENAMEATTRI = $00FF00FF; // clFuchsia
|
||||
REGNAME_SQLCOLACTIVELINE = 'SQLColActiveLine';
|
||||
DEFAULT_SQLCOLACTIVELINE = $00FFFFFF; // clWhite
|
||||
REGNAME_DEFAULTCOLWIDTH = 'DefaultColWidth';
|
||||
DEFAULT_DEFAULTCOLWIDTH = 100;
|
||||
REGNAME_DATALIMIT = 'DataLimit';
|
||||
DEFAULT_DATALIMIT = True;
|
||||
REGNAME_DATALIMITEND = 'DataLimitEnd';
|
||||
DEFAULT_DATALIMITEND = 50;
|
||||
REGNAME_REMEMBERFILTERS = 'RememberFilters';
|
||||
DEFAULT_REMEMBERFILTERS = True;
|
||||
REGNAME_LOGTOFILE = 'LogToFile';
|
||||
DEFAULT_LOGTOFILE = False;
|
||||
REGNAME_WINDOWSTATE = 'windowstate';
|
||||
REGNAME_WINDOWLEFT = 'windowleft';
|
||||
REGNAME_WINDOWTOP = 'windowtop';
|
||||
REGNAME_WINDOWWIDTH = 'windowwidth';
|
||||
REGNAME_WINDOWHEIGHT = 'windowheight';
|
||||
REGNAME_TOOLBAR2LEFT = 'ToolBar2Left';
|
||||
REGNAME_TOOLBARDATALEFT = 'ToolBarDataLeft';
|
||||
REGNAME_TOOLBAR2TOP = 'ToolBar2Top';
|
||||
REGNAME_TOOLBARDATATOP = 'ToolBarDataTop';
|
||||
REGNAME_CHILDWINSTATE = 'childwinstate';
|
||||
REGNAME_CHILDWINLEFT = 'childwinleft';
|
||||
REGNAME_CHILDWINTOP = 'childwintop';
|
||||
REGNAME_CHILDWINWIDTH = 'childwinwidth';
|
||||
REGNAME_CHILDWINHEIGHT = 'childwinheight';
|
||||
REGNAME_QUERYMEMOHEIGHT = 'querymemoheight';
|
||||
REGNAME_DBTREEWIDTH = 'dbtreewidth';
|
||||
REGNAME_SQLOUTHEIGHT = 'sqloutheight';
|
||||
REGNAME_QUERYHELPERSWIDTH = 'queryhelperswidth';
|
||||
REGNAME_SQLWHEREFILE = 'SQLWhereFile';
|
||||
REGNAME_DELIMITERS = 'delimiters';
|
||||
REGNAME_DELIMITERSELECTED = 'delimiterselected';
|
||||
REGNAME_SQLHELPWINLEFT = 'SQLHelp_WindowLeft';
|
||||
REGNAME_SQLHELPWINTOP = 'SQLHelp_WindowTop';
|
||||
REGNAME_SQLHELPWINWIDTH = 'SQLHelp_WindowWidth';
|
||||
REGNAME_SQLHELPWINHEIGHT = 'SQLHelp_WindowHeight';
|
||||
REGNAME_SQLHELPPLWIDTH = 'SQLHelp_PnlLeftWidth';
|
||||
REGNAME_SQLHELPPRHEIGHT = 'SQLHelp_PnlRightTopHeight';
|
||||
REGNAME_HOST = 'Host';
|
||||
DEFAULT_HOST = '127.0.0.1';
|
||||
REGNAME_USER = 'User';
|
||||
DEFAULT_USER = 'root';
|
||||
REGNAME_PASSWORD = 'Password';
|
||||
DEFAULT_PASSWORD = '';
|
||||
REGNAME_PORT = 'Port';
|
||||
DEFAULT_PORT = 3306;
|
||||
REGNAME_TIMEOUT = 'Timeout';
|
||||
DEFAULT_TIMEOUT = 30;
|
||||
REGNAME_COMPRESSED = 'Compressed';
|
||||
DEFAULT_COMPRESSED = False;
|
||||
REGNAME_ONLYDBS = 'OnlyDBs';
|
||||
REGNAME_ONLYDBSSORTED = 'OnlyDBsSorted';
|
||||
DEFAULT_ONLYDBSSORTED = False;
|
||||
REGNAME_EXP_STRUCTURE = 'ExportStructure';
|
||||
REGNAME_EXP_CREATEDB = 'WithCreateDatabase';
|
||||
REGNAME_EXP_CREATETABLE = 'WithCreateTable';
|
||||
REGNAME_EXP_DATA = 'ExportData';
|
||||
REGNAME_EXP_DBHOW = 'CreateDatabaseHow';
|
||||
REGNAME_EXP_TABLESHOW = 'CreateTablesHow';
|
||||
REGNAME_EXP_DATAHOW = 'CreateDataHow';
|
||||
REGNAME_EXP_COMPAT = 'Compatibility';
|
||||
REGNAME_EXP_OUTFILE = 'exportfilename';
|
||||
REGNAME_EXP_OUTDIR = 'ExportDirectory';
|
||||
REGNAME_EXP_TARGET = 'ExportSQL_OutputTo';
|
||||
REGNAME_EXP_WINWIDTH = 'ExportSQL_WindowWidth';
|
||||
REGNAME_EXP_WINHEIGHT = 'ExportSQL_WindowHeight';
|
||||
REGNAME_CSV_SEPARATOR = 'CSVSeparator';
|
||||
DEFAULT_CSV_SEPARATOR = ',';
|
||||
REGNAME_CSV_ENCLOSER = 'CSVEncloser';
|
||||
DEFAULT_CSV_ENCLOSER = '';
|
||||
REGNAME_CSV_TERMINATOR = 'CSVTerminator';
|
||||
DEFAULT_CSV_TERMINATOR = '\r\n';
|
||||
REGNAME_CSV_ESCAPER = 'CSVImportFieldEscaper';
|
||||
REGNAME_CSV_FILENAME = 'loadfilename';
|
||||
REGNAME_CSV_ENCLOPTION = 'CSVImportFieldsEnclosedOptionally';
|
||||
REGNAME_CSV_IGNORELINES = 'CSVImportIgnoreLines';
|
||||
REGNAME_CSV_LOWPRIO = 'CSVImportLowPriority';
|
||||
REGNAME_CSV_REPLACE = 'CSVImportReplace';
|
||||
REGNAME_CSV_IGNORE = 'CSVImportIgnore';
|
||||
|
||||
REGPREFIX_COLWIDTHS = 'ColWidths_';
|
||||
REGPREFIX_COLSVISIBLE = 'ColsVisible_';
|
||||
|
||||
@@ -807,7 +807,7 @@ var
|
||||
miFunction,
|
||||
miFilterFunction : TMenuItem;
|
||||
functioncats : TStringList;
|
||||
reg, reg2 : TRegistry;
|
||||
reg : TRegistry;
|
||||
begin
|
||||
QueryRunningInterlock := 0;
|
||||
UserQueryFired := False;
|
||||
@@ -830,22 +830,14 @@ begin
|
||||
|
||||
// Temporarily disable AutoReconnect in Registry
|
||||
// in case of unexpected application-termination
|
||||
AutoReconnect := false;
|
||||
reg := TRegistry.Create();
|
||||
with ( reg ) do
|
||||
begin
|
||||
OpenKey( REGPATH, true );
|
||||
if ( Valueexists( 'Autoreconnect' ) ) then
|
||||
begin
|
||||
if ( ReadBool( 'AutoReconnect' ) ) then
|
||||
begin
|
||||
AutoReconnect := true;
|
||||
WriteBool( 'AutoReconnect', false );
|
||||
end;
|
||||
end;
|
||||
CloseKey();
|
||||
AutoReconnect := Mainform.GetRegValue(REGNAME_AUTORECONNECT, DEFAULT_AUTORECONNECT);
|
||||
if AutoReconnect then begin
|
||||
reg := TRegistry.Create();
|
||||
reg.OpenKey( REGPATH, true );
|
||||
reg.WriteBool( REGNAME_AUTORECONNECT, False );
|
||||
reg.CloseKey;
|
||||
FreeAndNil(reg);
|
||||
end;
|
||||
FreeAndNil(reg);
|
||||
|
||||
ReadWindowOptions();
|
||||
|
||||
@@ -871,16 +863,12 @@ begin
|
||||
ReadDatabasesAndTables( Self );
|
||||
|
||||
// Re-enable AutoReconnect in Registry!
|
||||
if ( AutoReconnect ) then
|
||||
begin
|
||||
reg2 := TRegistry.Create();
|
||||
with ( reg2 ) do
|
||||
begin
|
||||
OpenKey( REGPATH, true );
|
||||
WriteBool( 'AutoReconnect', true );
|
||||
CloseKey();
|
||||
end;
|
||||
FreeAndNil(reg2);
|
||||
if AutoReconnect then begin
|
||||
reg := TRegistry.Create;
|
||||
reg.OpenKey( REGPATH, true );
|
||||
reg.WriteBool( REGNAME_AUTORECONNECT, true );
|
||||
reg.CloseKey;
|
||||
FreeAndNil(reg);
|
||||
end;
|
||||
|
||||
// Define window properties
|
||||
@@ -894,7 +882,7 @@ begin
|
||||
Application.Title := winName + ' - ' + APPNAME;
|
||||
|
||||
// Reselect last used database
|
||||
if ( ( MainForm.GetRegValue( 'RestoreLastUsedDB', true ) ) and ( lastUsedDB <> '' ) ) then
|
||||
if MainForm.GetRegValue( REGNAME_RESTORELASTUSEDDB, DEFAULT_RESTORELASTUSEDDB ) and ( lastUsedDB <> '' ) then
|
||||
begin
|
||||
try
|
||||
ActiveDatabase := lastUsedDB;
|
||||
@@ -969,167 +957,117 @@ var
|
||||
i : Integer;
|
||||
menuitem : Tmenuitem;
|
||||
reg : TRegistry;
|
||||
fontname, datafontname : String;
|
||||
fontsize, datafontsize : Integer;
|
||||
|
||||
begin
|
||||
// Initialize delimiter settings
|
||||
delimiter := DEFAULT_DELIMITER;
|
||||
ComboBoxQueryDelimiter.ItemIndex := ComboBoxQueryDelimiter.Items.IndexOf( delimiter );
|
||||
|
||||
ws := Mainform.GetRegValue(REGNAME_CHILDWINSTATE, 'Normal');
|
||||
if ws = 'Normal' then begin
|
||||
WindowState := wsNormal;
|
||||
Left := Mainform.GetRegValue(REGNAME_CHILDWINLEFT, Left);
|
||||
Top := Mainform.GetRegValue(REGNAME_CHILDWINTOP, Top);
|
||||
Width := Mainform.GetRegValue(REGNAME_CHILDWINWIDTH, Width );
|
||||
Height := Mainform.GetRegValue(REGNAME_CHILDWINHEIGHT, Height );
|
||||
end
|
||||
else if ws = 'Minimized' then
|
||||
WindowState := wsMinimized
|
||||
else if ( ws = 'Maximized' ) then
|
||||
WindowState := wsMaximized;
|
||||
|
||||
// Other values:
|
||||
pnlQueryMemo.Height := Mainform.GetRegValue(REGNAME_QUERYMEMOHEIGHT, pnlQueryMemo.Height);
|
||||
pnlQueryHelpers.Width := Mainform.GetRegValue(REGNAME_QUERYHELPERSWIDTH, pnlQueryHelpers.Width);
|
||||
DBtree.Width := Mainform.GetRegValue(REGNAME_DBTREEWIDTH, DBtree.Width);
|
||||
PageControlBottom.Height := Mainform.GetRegValue(REGNAME_SQLOUTHEIGHT, PageControlBottom.Height);
|
||||
prefDefaultColWidth := Mainform.GetRegValue(REGNAME_DEFAULTCOLWIDTH, DEFAULT_DEFAULTCOLWIDTH);
|
||||
prefLogsqlnum := Mainform.GetRegValue(REGNAME_LOGSQLNUM, DEFAULT_LOGSQLNUM);
|
||||
prefLogSqlWidth := Mainform.GetRegValue(REGNAME_LOGSQLWIDTH, DEFAULT_LOGSQLWIDTH);
|
||||
prefConvertHTMLEntities := Mainform.GetRegValue(REGNAME_CONVERTHTMLENTITIES, DEFAULT_CONVERTHTMLENTITIES);
|
||||
prefCSVSeparator := Mainform.GetRegValue(REGNAME_CSV_SEPARATOR, DEFAULT_CSV_SEPARATOR);
|
||||
prefCSVEncloser := Mainform.GetRegValue(REGNAME_CSV_ENCLOSER, DEFAULT_CSV_ENCLOSER);
|
||||
prefCSVTerminator := Mainform.GetRegValue(REGNAME_CSV_TERMINATOR, DEFAULT_CSV_TERMINATOR);
|
||||
prefRememberFilters := Mainform.GetRegValue(REGNAME_REMEMBERFILTERS, DEFAULT_REMEMBERFILTERS);
|
||||
|
||||
// SQL-Font:
|
||||
fontname := Mainform.GetRegValue(REGNAME_FONTNAME, DEFAULT_FONTNAME);
|
||||
fontsize := Mainform.GetRegValue(REGNAME_FONTSIZE, DEFAULT_FONTSIZE);
|
||||
SynMemoQuery.Font.Name := fontname;
|
||||
SynMemoSQLLog.Font.Name := fontname;
|
||||
SynMemoProcessView.Font.Name := fontname;
|
||||
SynMemoQuery.Font.Size := fontsize;
|
||||
SynMemoSQLLog.Font.Size := fontsize;
|
||||
SynMemoProcessView.Font.Size := fontsize;
|
||||
|
||||
// Data-Font:
|
||||
datafontname := Mainform.GetRegValue(REGNAME_DATAFONTNAME, DEFAULT_DATAFONTNAME);
|
||||
datafontsize := Mainform.GetRegValue(REGNAME_DATAFONTSIZE, DEFAULT_DATAFONTSIZE);
|
||||
gridData.Font.Name := datafontname;
|
||||
gridQuery.Font.Name := datafontname;
|
||||
DBMemo1.Font.Name := datafontname;
|
||||
gridData.Font.Size := datafontsize;
|
||||
gridQuery.Font.Size := datafontsize;
|
||||
DBMemo1.Font.Size := datafontsize;
|
||||
|
||||
// Color coding:
|
||||
SynSQLSyn1.KeyAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLKEYATTRI, ColorToString(DEFAULT_SQLCOLKEYATTRI)));
|
||||
SynSQLSyn1.FunctionAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLFUNCTIONATTRI, ColorToString(DEFAULT_SQLCOLFUNCTIONATTRI)));
|
||||
SynSQLSyn1.DataTypeAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLDATATYPEATTRI, ColorToString(DEFAULT_SQLCOLDATATYPEATTRI)));
|
||||
SynSQLSyn1.NumberAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLNUMBERATTRI, ColorToString(DEFAULT_SQLCOLNUMBERATTRI)));
|
||||
SynSQLSyn1.StringAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLSTRINGATTRI, ColorToString(DEFAULT_SQLCOLSTRINGATTRI)));
|
||||
SynSQLSyn1.CommentAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLCOMMENTATTRI, ColorToString(DEFAULT_SQLCOLCOMMENTATTRI)));
|
||||
SynSQLSyn1.TablenameAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLTABLENAMEATTRI, ColorToString(DEFAULT_SQLCOLTABLENAMEATTRI)));
|
||||
SynMemoQuery.ActiveLineColor := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLACTIVELINE, ColorToString(DEFAULT_SQLCOLACTIVELINE)));
|
||||
|
||||
// SQLFiles-History
|
||||
FillPopupQueryLoad();
|
||||
|
||||
reg := TRegistry.Create;
|
||||
if reg.OpenKey( REGPATH, true ) then
|
||||
begin
|
||||
ws := reg.ReadString( 'childwinstate' );
|
||||
if ws = 'Normal' then
|
||||
begin
|
||||
WindowState := wsNormal;
|
||||
if reg.ValueExists( 'childwinleft' ) then
|
||||
begin
|
||||
Left := reg.ReadInteger( 'childwinleft' );
|
||||
Top := reg.ReadInteger( 'childwintop' );
|
||||
Width := reg.ReadInteger( 'childwinwidth' );
|
||||
Height := reg.ReadInteger( 'childwinheight' );
|
||||
end;
|
||||
end
|
||||
else if ws = 'Minimized' then
|
||||
WindowState := wsMinimized
|
||||
else if ( ws = 'Maximized' ) then
|
||||
WindowState := wsMaximized;
|
||||
|
||||
// Other values:
|
||||
if reg.ValueExists( 'querymemoheight' ) then
|
||||
pnlQueryMemo.Height := reg.ReadInteger('querymemoheight');
|
||||
if reg.ValueExists( 'queryhelperswidth' ) then
|
||||
pnlQueryHelpers.Width := reg.ReadInteger('queryhelperswidth');
|
||||
|
||||
if reg.ValueExists( 'dbtreewidth' ) then
|
||||
DBtree.Width := reg.ReadInteger( 'dbtreewidth' );
|
||||
|
||||
if reg.ValueExists( 'sqloutheight' ) then
|
||||
PageControlBottom.Height := reg.ReadInteger( 'sqloutheight' );
|
||||
|
||||
if reg.ValueExists( 'DefaultColWidth' ) then
|
||||
prefDefaultColWidth := reg.ReadInteger( 'DefaultColWidth' )
|
||||
else
|
||||
prefDefaultColWidth := 100;
|
||||
|
||||
if reg.ValueExists('logsqlnum') then
|
||||
prefLogsqlnum := reg.ReadInteger('logsqlnum')
|
||||
else
|
||||
prefLogsqlnum := 300;
|
||||
|
||||
if reg.ValueExists('logsqlwidth') then
|
||||
prefLogSqlWidth := reg.ReadInteger('logsqlwidth')
|
||||
else
|
||||
prefLogSqlWidth := 2000;
|
||||
|
||||
prefConvertHTMLEntities := true;
|
||||
if reg.Valueexists('ConvertHTMLEntities') then
|
||||
prefConvertHTMLEntities := reg.ReadBool('ConvertHTMLEntities');
|
||||
|
||||
prefCSVSeparator := ',';
|
||||
prefCSVEncloser := '';
|
||||
prefCSVTerminator := '\r\n';
|
||||
if reg.Valueexists('CSVSeparator') then
|
||||
prefCSVSeparator := reg.ReadString('CSVSeparator');
|
||||
if reg.Valueexists('CSVEncloser') then
|
||||
prefCSVEncloser := reg.ReadString('CSVEncloser');
|
||||
if reg.Valueexists('CSVTerminator') then
|
||||
prefCSVTerminator := reg.ReadString('CSVTerminator');
|
||||
|
||||
// SQL-Font:
|
||||
if reg.ValueExists( 'FontName' ) and reg.ValueExists('FontSize') then
|
||||
begin
|
||||
SynMemoQuery.Font.Name := reg.ReadString( 'FontName' );
|
||||
SynMemoSQLLog.Font.Name := reg.ReadString( 'FontName' );
|
||||
SynMemoProcessView.Font.Name := reg.ReadString( 'FontName' );
|
||||
SynMemoQuery.Font.Size := reg.ReadInteger( 'FontSize' );
|
||||
SynMemoSQLLog.Font.Size := reg.ReadInteger( 'FontSize' );
|
||||
SynMemoProcessView.Font.Size := reg.ReadInteger( 'FontSize' );
|
||||
end;
|
||||
|
||||
// Data-Font:
|
||||
if reg.ValueExists( 'DataFontName' ) and reg.ValueExists( 'DataFontSize' ) then
|
||||
begin
|
||||
gridData.Font.Name := reg.ReadString( 'DataFontName' );
|
||||
gridQuery.Font.Name := reg.ReadString( 'DataFontName' );
|
||||
DBMemo1.Font.Name := reg.ReadString( 'DataFontName' );
|
||||
gridData.Font.Size := reg.ReadInteger( 'DataFontSize' );
|
||||
gridQuery.Font.Size := reg.ReadInteger( 'DataFontSize' );
|
||||
DBMemo1.Font.Size := reg.ReadInteger( 'DataFontSize' );
|
||||
end;
|
||||
|
||||
// Color coding:
|
||||
if reg.ValueExists( 'SQLColKeyAttri' ) then
|
||||
SynSQLSyn1.KeyAttri.Foreground := StringToColor( reg.ReadString( 'SQLColKeyAttri' ) );
|
||||
if reg.ValueExists( 'SQLColFunctionAttri' ) then
|
||||
SynSQLSyn1.FunctionAttri.Foreground := StringToColor( reg.ReadString( 'SQLColFunctionAttri' ) );
|
||||
if reg.ValueExists( 'SQLColDataTypeAttri' ) then
|
||||
SynSQLSyn1.DataTypeAttri.Foreground := StringToColor( reg.ReadString( 'SQLColDataTypeAttri' ) );
|
||||
if reg.ValueExists( 'SQLColNumberAttri' ) then
|
||||
SynSQLSyn1.NumberAttri.Foreground := StringToColor( reg.ReadString( 'SQLColNumberAttri' ) );
|
||||
if reg.ValueExists( 'SQLColStringAttri' ) then
|
||||
SynSQLSyn1.StringAttri.Foreground := StringToColor( reg.ReadString( 'SQLColStringAttri' ) );
|
||||
if reg.ValueExists( 'SQLColCommentAttri' ) then
|
||||
SynSQLSyn1.CommentAttri.Foreground := StringToColor( reg.ReadString( 'SQLColCommentAttri' ) );
|
||||
if reg.ValueExists( 'SQLColTablenameAttri' ) then
|
||||
SynSQLSyn1.TablenameAttri.Foreground := StringToColor( reg.ReadString( 'SQLColTablenameAttri' ) );
|
||||
if reg.ValueExists( 'SQLColActiveLine' ) then
|
||||
SynMemoQuery.ActiveLineColor := StringToColor( reg.ReadString('SQLColActiveLine') );
|
||||
|
||||
// SQLFiles-History
|
||||
FillPopupQueryLoad();
|
||||
|
||||
if reg.OpenKey( REGPATH, true ) then begin
|
||||
// SQL-Filter-Files-History
|
||||
i := 1;
|
||||
popupFilterOpenFile.Items.Clear();
|
||||
while ( reg.ValueExists( 'SQLWhereFile' + IntToStr(i) ) ) do
|
||||
while ( reg.ValueExists( REGNAME_SQLWHEREFILE + IntToStr(i) ) ) do
|
||||
begin
|
||||
menuitem := Tmenuitem.Create(Self);
|
||||
menuitem.Caption := IntToStr( popupFilterOpenFile.Items.count + 1) + ' ' + reg.ReadString( 'SQLWhereFile' + IntToStr(i) );
|
||||
menuitem.Caption := IntToStr( popupFilterOpenFile.Items.count + 1) + ' ' + reg.ReadString( REGNAME_SQLWHEREFILE + IntToStr(i) );
|
||||
menuitem.OnClick := LoadSQLWhereFile;
|
||||
popupFilterOpenFile.Items.Add( menuitem );
|
||||
inc( i );
|
||||
end;
|
||||
|
||||
// Synchronize internal variables with defaults from DFM.
|
||||
StopOnErrors := btnQueryStopOnErrors.Down;
|
||||
|
||||
// Says if the filters on the data tab shall be remembered
|
||||
if reg.ValueExists( 'RememberFilters' ) then
|
||||
prefRememberFilters := reg.ReadBool('RememberFilters')
|
||||
else
|
||||
prefRememberFilters := True;
|
||||
|
||||
// Restore width of columns of all VirtualTrees
|
||||
RestoreListSetup(ListVariables);
|
||||
RestoreListSetup(ListStatus);
|
||||
RestoreListSetup(ListProcesses);
|
||||
RestoreListSetup(ListCommandStats);
|
||||
RestoreListSetup(ListTables);
|
||||
RestoreListSetup(ListColumns);
|
||||
|
||||
// Read the delimiters
|
||||
delimiters := Trim( reg.ReadString( 'delimiters' ) );
|
||||
if ( delimiters <> EmptyStr ) then
|
||||
begin
|
||||
ComboBoxQueryDelimiter.Items.Text := delimiters;
|
||||
ComboBoxQueryDelimiter.ItemIndex := reg.ReadInteger( 'delimiterselected' );
|
||||
end;
|
||||
|
||||
// Activate logging
|
||||
if reg.ValueExists( 'LogToFile' ) and reg.ReadBool('LogToFile') then
|
||||
ActivateFileLogging;
|
||||
|
||||
// Open server-specific registry-folder.
|
||||
// relative from already opened folder!
|
||||
reg.OpenKey( 'Servers\' + FConn.Description, true );
|
||||
|
||||
// Set last used database, select it later in Init
|
||||
lastUsedDB := reg.ReadString( 'lastUsedDB' );
|
||||
reg.CloseKey;
|
||||
end;
|
||||
reg.CloseKey;
|
||||
reg.Free;
|
||||
|
||||
// Read the delimiters
|
||||
delimiters := Trim( Mainform.GetRegValue(REGNAME_DELIMITERS, '') );
|
||||
if delimiters <> '' then
|
||||
begin
|
||||
ComboBoxQueryDelimiter.Items.Text := delimiters;
|
||||
ComboBoxQueryDelimiter.ItemIndex := Mainform.GetRegValue( REGNAME_DELIMITERSELECTED, 0 );
|
||||
end;
|
||||
|
||||
// Synchronize internal variables with defaults from DFM.
|
||||
StopOnErrors := btnQueryStopOnErrors.Down;
|
||||
|
||||
// Restore width of columns of all VirtualTrees
|
||||
RestoreListSetup(ListVariables);
|
||||
RestoreListSetup(ListStatus);
|
||||
RestoreListSetup(ListProcesses);
|
||||
RestoreListSetup(ListCommandStats);
|
||||
RestoreListSetup(ListTables);
|
||||
RestoreListSetup(ListColumns);
|
||||
|
||||
// Activate logging
|
||||
if Mainform.GetRegValue(REGNAME_LOGTOFILE, DEFAULT_LOGTOFILE) then
|
||||
ActivateFileLogging;
|
||||
|
||||
// Set last used database, select it later in Init
|
||||
lastUsedDB := Mainform.GetRegValue(REGNAME_LASTUSEDDB, '', FConn.Description);
|
||||
|
||||
// Generate menuitems for popupDbGridHeader (column selection for ListTables)
|
||||
popupDBGridHeader.Items.Clear;
|
||||
for i:=0 to ListTables.Header.Columns.Count-1 do
|
||||
@@ -1177,55 +1115,43 @@ begin
|
||||
LeaveCriticalSection(SqlMessagesLock);
|
||||
|
||||
// Saving some vars into registry
|
||||
case ( WindowState ) of
|
||||
wsNormal :
|
||||
begin
|
||||
ws := 'Normal';
|
||||
end;
|
||||
wsMinimized :
|
||||
begin
|
||||
ws := 'Minimized';
|
||||
end;
|
||||
wsMaximized :
|
||||
begin
|
||||
ws := 'Maximized';
|
||||
end;
|
||||
case WindowState of
|
||||
wsNormal : ws := 'Normal';
|
||||
wsMinimized : ws := 'Minimized';
|
||||
wsMaximized : ws := 'Maximized';
|
||||
end;
|
||||
|
||||
reg := TRegistry.Create();
|
||||
with ( reg ) do
|
||||
if reg.OpenKey( REGPATH, true ) then
|
||||
begin
|
||||
if ( OpenKey( REGPATH, true ) ) then
|
||||
begin
|
||||
// Window state and position
|
||||
WriteString( 'childwinstate', ws );
|
||||
WriteInteger( 'childwinleft', left );
|
||||
WriteInteger( 'childwintop', top );
|
||||
WriteInteger( 'childwinwidth', width );
|
||||
WriteInteger( 'childwinheight', height );
|
||||
// Window state and position
|
||||
reg.WriteString( REGNAME_CHILDWINSTATE, ws );
|
||||
reg.WriteInteger( REGNAME_CHILDWINLEFT, Left );
|
||||
reg.WriteInteger( REGNAME_CHILDWINTOP, Top );
|
||||
reg.WriteInteger( REGNAME_CHILDWINWIDTH, Width );
|
||||
reg.WriteInteger( REGNAME_CHILDWINHEIGHT, Height );
|
||||
|
||||
WriteInteger( 'querymemoheight', pnlQueryMemo.Height );
|
||||
WriteInteger( 'queryhelperswidth', pnlQueryHelpers.Width );
|
||||
WriteInteger( 'dbtreewidth', dbtree.width );
|
||||
WriteInteger( 'sqloutheight', PageControlBottom.Height );
|
||||
reg.WriteInteger( REGNAME_QUERYMEMOHEIGHT, pnlQueryMemo.Height );
|
||||
reg.WriteInteger( REGNAME_QUERYHELPERSWIDTH, pnlQueryHelpers.Width );
|
||||
reg.WriteInteger( REGNAME_DBTREEWIDTH, dbtree.width );
|
||||
reg.WriteInteger( REGNAME_SQLOUTHEIGHT, PageControlBottom.Height );
|
||||
|
||||
// Save width of probably resized columns of all VirtualTrees
|
||||
SaveListSetup(ListVariables);
|
||||
SaveListSetup(ListStatus);
|
||||
SaveListSetup(ListProcesses);
|
||||
SaveListSetup(ListCommandStats);
|
||||
SaveListSetup(ListTables);
|
||||
SaveListSetup(ListColumns);
|
||||
// Save width of probably resized columns of all VirtualTrees
|
||||
SaveListSetup(ListVariables);
|
||||
SaveListSetup(ListStatus);
|
||||
SaveListSetup(ListProcesses);
|
||||
SaveListSetup(ListCommandStats);
|
||||
SaveListSetup(ListTables);
|
||||
SaveListSetup(ListColumns);
|
||||
|
||||
// Save the delimiters
|
||||
WriteString( 'delimiters', ComboBoxQueryDelimiter.Items.Text );
|
||||
WriteInteger( 'delimiterselected', ComboBoxQueryDelimiter.ItemIndex );
|
||||
// Save the delimiters
|
||||
reg.WriteString( REGNAME_DELIMITERS, ComboBoxQueryDelimiter.Items.Text );
|
||||
reg.WriteInteger( REGNAME_DELIMITERSELECTED, ComboBoxQueryDelimiter.ItemIndex );
|
||||
|
||||
// Open server-specific registry-folder.
|
||||
// relative from already opened folder!
|
||||
OpenKey( 'Servers\' + FConn.Description, true );
|
||||
WriteString( 'lastUsedDB', ActiveDatabase );
|
||||
end;
|
||||
// Open server-specific registry-folder.
|
||||
// relative from already opened folder!
|
||||
reg.OpenKey( REGKEY_SESSIONS + FConn.Description, true );
|
||||
reg.WriteString( REGNAME_LASTUSEDDB, ActiveDatabase );
|
||||
end;
|
||||
FreeAndNil(reg);
|
||||
|
||||
@@ -1572,7 +1498,6 @@ var
|
||||
j : Integer;
|
||||
OrderColumns : TOrderColArray;
|
||||
PrimaryKeyColumns : TStringList;
|
||||
reg, reg2 : TRegistry;
|
||||
reg_value : String;
|
||||
select_base : String;
|
||||
limit : Int64;
|
||||
@@ -1584,7 +1509,6 @@ var
|
||||
tmp : TDataSet;
|
||||
begin
|
||||
viewingdata := true;
|
||||
reg := TRegistry.Create();
|
||||
sl_query := TStringList.Create();
|
||||
try
|
||||
// limit number of rows automatically if first time this table is shown
|
||||
@@ -1632,16 +1556,13 @@ begin
|
||||
EDBImage1.DataField := '';
|
||||
EDBImage1.DataSource := DataSource1;
|
||||
|
||||
reg.OpenKey( REGPATH + '\Servers\' + FConn.Description, true );
|
||||
|
||||
if not dataselected and prefRememberFilters then
|
||||
begin
|
||||
SynMemoFilter.Text := '';
|
||||
// Read cached WHERE-clause and set filter
|
||||
reg_value := 'WHERECLAUSE_' + ActiveDatabase + '.' + SelectedTable;
|
||||
if ( reg.ValueExists( reg_value ) ) then
|
||||
begin
|
||||
SynMemoFilter.Text := reg.ReadString( reg_value );
|
||||
reg_value := Mainform.GetRegValue( 'WHERECLAUSE_' + ActiveDatabase + '.' + SelectedTable, '', FConn.Description );
|
||||
if reg_value <> '' then begin
|
||||
SynMemoFilter.Text := reg_value;
|
||||
// Ensure the user can see its previous specified filter
|
||||
// in case of an SQL-error, it's important that he can delete it
|
||||
tabFilter.tabVisible := true;
|
||||
@@ -1675,13 +1596,8 @@ begin
|
||||
MainForm.ShowStatus( 'Retrieving data...', 2, true );
|
||||
|
||||
// Read columns to display from registry
|
||||
reg2 := TRegistry.Create;
|
||||
with ( reg2 ) do
|
||||
begin
|
||||
OpenKey( REGPATH + '\Servers\' + FConn.Description, true );
|
||||
DisplayedColumnsList := explode( '`', ReadString(REGNAME_DISPLAYEDCOLUMNS + '_' + ActiveDatabase + '.' + SelectedTable));
|
||||
end;
|
||||
FreeAndNil(reg2);
|
||||
reg_value := Mainform.GetRegValue(REGNAME_DISPLAYEDCOLUMNS + '_' + ActiveDatabase + '.' + SelectedTable, '');
|
||||
DisplayedColumnsList := explode( '`', reg_value);
|
||||
|
||||
// Prepare SELECT statement
|
||||
select_base := 'SELECT ';
|
||||
@@ -1848,7 +1764,6 @@ begin
|
||||
|
||||
Screen.Cursor := crDefault;
|
||||
finally
|
||||
FreeAndNil(reg);
|
||||
FreeAndNil(sl_query);
|
||||
viewingdata := false;
|
||||
end;
|
||||
@@ -2679,7 +2594,7 @@ begin
|
||||
OnlyDBs.Delete( OnlyDBs.IndexOf(tndb_.Text) );
|
||||
with TRegistry.Create do
|
||||
begin
|
||||
if OpenKey(REGPATH + '\Servers\' + FConn.Description, false) then
|
||||
if OpenKey(REGPATH + REGKEY_SESSIONS + FConn.Description, false) then
|
||||
begin
|
||||
WriteString( 'OnlyDBs', ImplodeStr( ';', OnlyDBs ) );
|
||||
CloseKey;
|
||||
@@ -3490,7 +3405,7 @@ begin
|
||||
OnlyDBs.Add( CreateDatabaseForm.editDBName.Text );
|
||||
with TRegistry.Create do
|
||||
begin
|
||||
if OpenKey(REGPATH + '\Servers\' + FConn.Description, false) then
|
||||
if OpenKey(REGPATH + REGKEY_SESSIONS + FConn.Description, false) then
|
||||
begin
|
||||
WriteString( 'OnlyDBs', ImplodeStr( ';', OnlyDBs ) );
|
||||
CloseKey;
|
||||
@@ -4134,16 +4049,16 @@ begin
|
||||
break;
|
||||
end;
|
||||
while i > 1 do begin
|
||||
WriteString('SQLWhereFile'+IntToStr(i), ReadString('SQLWhereFile'+IntToStr(i-1)));
|
||||
WriteString(REGNAME_SQLWHEREFILE+IntToStr(i), ReadString(REGNAME_SQLWHEREFILE+IntToStr(i-1)));
|
||||
dec(i);
|
||||
end;
|
||||
WriteString('SQLWhereFile1', FileName);
|
||||
|
||||
i := 1;
|
||||
popupTreeView.Items.Clear;
|
||||
while ValueExists('SQLWhereFile'+IntToStr(i)) do begin
|
||||
while ValueExists(REGNAME_SQLWHEREFILE+IntToStr(i)) do begin
|
||||
menuitem := Tmenuitem.Create(self);
|
||||
menuitem.Caption := IntToStr(popupFilterOpenFile.Items.count+1) + ' ' + ReadString('SQLWhereFile'+IntToStr(i));
|
||||
menuitem.Caption := IntToStr(popupFilterOpenFile.Items.count+1) + ' ' + ReadString(REGNAME_SQLWHEREFILE+IntToStr(i));
|
||||
menuitem.OnClick := LoadSQLWhereFile;
|
||||
popupFilterOpenFile.Items.Add(menuitem);
|
||||
Inc( i );
|
||||
@@ -4186,7 +4101,7 @@ begin
|
||||
reg := TRegistry.Create;
|
||||
try
|
||||
if prefRememberFilters then begin
|
||||
reg.openkey( REGPATH + '\Servers\' + FConn.Description, false );
|
||||
reg.openkey( REGPATH + REGKEY_SESSIONS + FConn.Description, false );
|
||||
reg_value := 'WHERECLAUSE_' + ActiveDatabase + '.' + SelectedTable;
|
||||
if where <> '' then reg.WriteString( reg_value, where )
|
||||
else if reg.ValueExists( reg_value ) then reg.DeleteValue( reg_value );
|
||||
@@ -4816,22 +4731,16 @@ begin
|
||||
popupQueryLoad.Items.Add(menuitem);
|
||||
|
||||
// Recent files
|
||||
with TRegistry.Create do
|
||||
begin
|
||||
openkey(REGPATH, true);
|
||||
j := 0;
|
||||
for i:=0 to 19 do
|
||||
begin
|
||||
if not ValueExists('SQLFile'+IntToStr(i)) then
|
||||
continue;
|
||||
sqlFilename := ReadString( 'SQLFile'+IntToStr(i) );
|
||||
inc(j);
|
||||
menuitem := TMenuItem.Create( popupQueryLoad );
|
||||
menuitem.Caption := IntToStr(j) + ' ' + sqlFilename;
|
||||
menuitem.OnClick := popupQueryLoadClick;
|
||||
popupQueryLoad.Items.Add(menuitem);
|
||||
end;
|
||||
Free;
|
||||
j := 0;
|
||||
for i:=0 to 19 do begin
|
||||
sqlFilename := Mainform.GetRegValue( 'SQLFile'+IntToStr(i), '' );
|
||||
if sqlFilename = '' then
|
||||
continue;
|
||||
inc(j);
|
||||
menuitem := TMenuItem.Create( popupQueryLoad );
|
||||
menuitem.Caption := IntToStr(j) + ' ' + sqlFilename;
|
||||
menuitem.OnClick := popupQueryLoadClick;
|
||||
popupQueryLoad.Items.Add(menuitem);
|
||||
end;
|
||||
|
||||
// Separator + "Remove absent files"
|
||||
@@ -6477,17 +6386,15 @@ procedure TMDIChild.RestoreListSetup( List: TVirtualStringTree );
|
||||
var
|
||||
i : Byte;
|
||||
colwidth, colpos : Integer;
|
||||
Value : String;
|
||||
ValueList : TStringList;
|
||||
reg : TRegistry;
|
||||
begin
|
||||
reg := TRegistry.Create;
|
||||
reg.OpenKey( REGPATH, true );
|
||||
ValueList := TStringList.Create;
|
||||
|
||||
// Column widths
|
||||
if reg.ValueExists( REGPREFIX_COLWIDTHS + List.Name ) then
|
||||
begin
|
||||
ValueList := Explode( ',', reg.ReadString( REGPREFIX_COLWIDTHS + List.Name ) );
|
||||
Value := Mainform.GetRegValue(REGPREFIX_COLWIDTHS + List.Name, '');
|
||||
if Value <> '' then begin
|
||||
ValueList := Explode( ',', Value );
|
||||
for i := 0 to ValueList.Count - 1 do
|
||||
begin
|
||||
colwidth := MakeInt(ValueList[i]);
|
||||
@@ -6498,16 +6405,16 @@ begin
|
||||
end;
|
||||
|
||||
// Column visibility
|
||||
if reg.ValueExists( REGPREFIX_COLSVISIBLE + List.Name ) then
|
||||
begin
|
||||
ValueList := Explode( ',', reg.ReadString( REGPREFIX_COLSVISIBLE + List.Name ) );
|
||||
Value := Mainform.GetRegValue(REGPREFIX_COLSVISIBLE + List.Name, '');
|
||||
if Value <> '' then begin
|
||||
ValueList := Explode( ',', Value );
|
||||
SetVisibleListColumns( List, ValueList );
|
||||
end;
|
||||
|
||||
// Column position
|
||||
if reg.ValueExists( REGPREFIX_COLPOS + List.Name ) then
|
||||
begin
|
||||
ValueList := Explode( ',', reg.ReadString( REGPREFIX_COLPOS + List.Name ) );
|
||||
Value := Mainform.GetRegValue(REGPREFIX_COLPOS + List.Name, '');
|
||||
if Value <> '' then begin
|
||||
ValueList := Explode( ',', Value );
|
||||
for i := 0 to ValueList.Count - 1 do
|
||||
begin
|
||||
colpos := MakeInt(ValueList[i]);
|
||||
@@ -6517,7 +6424,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
reg.Free;
|
||||
ValueList.Free;
|
||||
end;
|
||||
|
||||
@@ -6752,13 +6658,11 @@ begin
|
||||
SetLength( Result, 0 );
|
||||
|
||||
// Read ORDER clause from registry
|
||||
reg := TRegistry.Create();
|
||||
reg.OpenKey( REGPATH + '\Servers\' + FConn.Description, true );
|
||||
reg_name := REGPREFIX_ORDERCLAUSE + ActiveDatabase + '.' + SelectedTable;
|
||||
old_orderclause := Mainform.GetRegValue(reg_name, '', FConn.Description);
|
||||
|
||||
if reg.ValueExists(reg_name) then
|
||||
if old_orderclause <> '' then
|
||||
begin
|
||||
old_orderclause := reg.ReadString(reg_name);
|
||||
// Parse ORDER clause
|
||||
order_parts := explode( ',', old_orderclause );
|
||||
ValidColumns := GetVTCaptions( ListColumns );
|
||||
@@ -6821,13 +6725,15 @@ begin
|
||||
new_orderclause := ComposeOrderClause(Result);
|
||||
if new_orderclause <> old_orderclause then
|
||||
begin
|
||||
reg := TRegistry.Create();
|
||||
reg.OpenKey( REGPATH + REGKEY_SESSIONS + FConn.Description, true );
|
||||
if new_orderclause <> '' then
|
||||
reg.WriteString(reg_name , new_orderclause)
|
||||
else
|
||||
reg.DeleteValue(reg_name);
|
||||
reg.Free;
|
||||
end;
|
||||
|
||||
reg.Free;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@ uses MAIN, helpers;
|
||||
}
|
||||
procedure TColumnSelectionForm.FormShow(Sender: TObject);
|
||||
var
|
||||
reg : TRegistry;
|
||||
reg_columns : TStringList;
|
||||
begin
|
||||
// Take column names from listColumns and add here
|
||||
@@ -51,30 +50,17 @@ begin
|
||||
reg_name := REGNAME_DISPLAYEDCOLUMNS + '_' + Mainform.Childwin.ActiveDatabase + '.' + Mainform.Childwin.SelectedTable;
|
||||
|
||||
// Read reg value and check items!
|
||||
reg := TRegistry.Create;
|
||||
reg.OpenKey( REGPATH + '\Servers\' + Mainform.Childwin.Conn.Description, true );
|
||||
reg_columns := explode( '`', reg.ReadString( reg_name ) );
|
||||
if reg_columns.Count = 0 then
|
||||
begin
|
||||
// Simply check all items
|
||||
ToggleCheckListBox( chklistColumns, True );
|
||||
end
|
||||
else
|
||||
begin
|
||||
// Only check selected items
|
||||
reg_columns := explode( '`', Mainform.GetRegValue( reg_name, '', Mainform.Childwin.Conn.Description ) );
|
||||
if reg_columns.Count = 0 then // Simply check all items
|
||||
ToggleCheckListBox( chklistColumns, True )
|
||||
else // Only check selected items
|
||||
ToggleCheckListBox( chklistColumns, True, reg_columns );
|
||||
end;
|
||||
|
||||
// Call check-event to update state of "Select / Deselect all" checkbox
|
||||
chklistColumnsClickCheck( Sender );
|
||||
|
||||
// Restore last used sorting state from registry
|
||||
reg.OpenKey( REGPATH, false );
|
||||
if (reg.ValueExists(REGNAME_SORTDISPLAYEDCOLUMNS)) then
|
||||
chkSort.Checked := reg.ReadBool(REGNAME_SORTDISPLAYEDCOLUMNS);
|
||||
|
||||
reg.CloseKey;
|
||||
FreeAndNil(reg);
|
||||
chkSort.Checked := Mainform.GetRegValue(REGNAME_SORTDISPLAYEDCOLUMNS, chkSort.Checked);
|
||||
end;
|
||||
|
||||
|
||||
@@ -90,7 +76,7 @@ var
|
||||
begin
|
||||
// Open registry registry key
|
||||
reg := TRegistry.Create;
|
||||
reg.OpenKey( REGPATH + '\Servers\' + Mainform.Childwin.Conn.Description, true );
|
||||
reg.OpenKey( REGPATH + REGKEY_SESSIONS + Mainform.Childwin.Conn.Description, true );
|
||||
|
||||
// Set initial values
|
||||
reg_oldvalue := '';
|
||||
|
||||
@@ -110,7 +110,7 @@ begin
|
||||
// Save last connection name to registry
|
||||
reg := TRegistry.Create;
|
||||
if reg.OpenKey(REGPATH, true) then
|
||||
reg.WriteString('lastcon', ComboBoxDescription.Text);
|
||||
reg.WriteString(REGNAME_LASTSESSION, ComboBoxDescription.Text);
|
||||
reg.CloseKey;
|
||||
reg.Free;
|
||||
Close;
|
||||
@@ -132,27 +132,21 @@ var
|
||||
i : Integer;
|
||||
lastcon : String;
|
||||
AutoReconnect : Boolean;
|
||||
reg : TRegistry;
|
||||
begin
|
||||
Screen.Cursor := crHourglass;
|
||||
|
||||
ComboBoxDescription.Items.Clear;
|
||||
ComboBoxDescription.Text := '';
|
||||
with TRegistry.Create do
|
||||
reg := TRegistry.Create;
|
||||
if reg.OpenKey(REGPATH + REGKEY_SESSIONS, true) then
|
||||
begin
|
||||
if OpenKey(REGPATH + '\Servers', true) then
|
||||
begin
|
||||
GetKeyNames(ComboBoxDescription.Items);
|
||||
CloseKey;
|
||||
end;
|
||||
OpenKey(REGPATH, true);
|
||||
lastcon := ReadString('lastcon');
|
||||
if ValueExists('AutoReconnect') then
|
||||
AutoReconnect := ReadBool('AutoReconnect')
|
||||
else
|
||||
AutoReconnect := false;
|
||||
CloseKey;
|
||||
Free;
|
||||
reg.GetKeyNames(ComboBoxDescription.Items);
|
||||
reg.Free;
|
||||
end;
|
||||
lastcon := Mainform.GetRegValue(REGNAME_LASTSESSION, '');
|
||||
AutoReconnect := Mainform.GetRegValue(REGNAME_AUTORECONNECT, DEFAULT_AUTORECONNECT);
|
||||
|
||||
if ComboBoxDescription.Items.Count > 0 then
|
||||
begin
|
||||
EnableDisable(true);
|
||||
@@ -207,16 +201,16 @@ begin
|
||||
Screen.Cursor := crHourglass;
|
||||
with TRegistry.Create do
|
||||
begin
|
||||
if OpenKey(REGPATH + '\Servers\' + ComboBoxDescription.Text, true) then
|
||||
if OpenKey(REGPATH + REGKEY_SESSIONS + ComboBoxDescription.Text, true) then
|
||||
begin
|
||||
WriteString('Host', EditHost.Text);
|
||||
WriteString('User', EditUsername.Text);
|
||||
WriteString('Password', encrypt(EditPassword.Text));
|
||||
WriteString('Port', EditPort.Text);
|
||||
WriteString('Timeout', EditTimeout.Text);
|
||||
WriteBool('Compressed', CheckBoxCompressed.Checked);
|
||||
WriteString('OnlyDBs', EditOnlyDBs.Text);
|
||||
WriteBool('OnlyDBsSorted', CheckBoxSorted.Checked);
|
||||
WriteString(REGNAME_HOST, EditHost.Text);
|
||||
WriteString(REGNAME_USER, EditUsername.Text);
|
||||
WriteString(REGNAME_PASSWORD, encrypt(EditPassword.Text));
|
||||
WriteString(REGNAME_PORT, EditPort.Text);
|
||||
WriteString(REGNAME_TIMEOUT, EditTimeout.Text);
|
||||
WriteBool(REGNAME_COMPRESSED, CheckBoxCompressed.Checked);
|
||||
WriteString(REGNAME_ONLYDBS, EditOnlyDBs.Text);
|
||||
WriteBool(REGNAME_ONLYDBSSORTED, CheckBoxSorted.Checked);
|
||||
CloseKey;
|
||||
end;
|
||||
Free;
|
||||
@@ -236,14 +230,14 @@ begin
|
||||
begin
|
||||
i := 0;
|
||||
description := 'New Connection';
|
||||
while KeyExists(REGPATH + '\Servers\' + description) do
|
||||
while KeyExists(REGPATH + REGKEY_SESSIONS + description) do
|
||||
begin
|
||||
inc(i);
|
||||
description := 'New Connection' + ' (' + inttostr(i) + ')';
|
||||
end;
|
||||
if not InputQuery('New Connection...', 'Description:', description) then
|
||||
exit;
|
||||
if KeyExists(REGPATH + '\Servers\' + description) then
|
||||
if KeyExists(REGPATH + REGKEY_SESSIONS + description) then
|
||||
begin
|
||||
MessageDlg('Entry "' + description + '" already exists!', mtError, [mbOK], 0);
|
||||
exit;
|
||||
@@ -253,16 +247,16 @@ begin
|
||||
ComboBoxDescription.Items.Add(description);
|
||||
ComboBoxDescription.ItemIndex := ComboBoxDescription.Items.Count - 1;
|
||||
|
||||
if OpenKey(REGPATH + '\Servers\' + ComboBoxDescription.Text, true) then
|
||||
if OpenKey(REGPATH + REGKEY_SESSIONS + ComboBoxDescription.Text, true) then
|
||||
begin
|
||||
WriteString('Host', LOCAL_HOST);
|
||||
WriteString('User', 'root');
|
||||
WriteString('Password', encrypt(''));
|
||||
WriteString('Port', inttostr(MYSQL_PORT));
|
||||
WriteString('Timeout', inttostr(30));
|
||||
WriteBool('Compressed', false);
|
||||
WriteString('OnlyDBs', '');
|
||||
WriteBool('OnlyDBsSorted', true);
|
||||
WriteString(REGNAME_HOST, DEFAULT_HOST);
|
||||
WriteString(REGNAME_USER, DEFAULT_USER);
|
||||
WriteString(REGNAME_PASSWORD, encrypt(DEFAULT_PASSWORD));
|
||||
WriteString(REGNAME_PORT, inttostr(DEFAULT_PORT));
|
||||
WriteString(REGNAME_TIMEOUT, inttostr(DEFAULT_TIMEOUT));
|
||||
WriteBool(REGNAME_COMPRESSED, DEFAULT_COMPRESSED);
|
||||
WriteString(REGNAME_ONLYDBS, '');
|
||||
WriteBool(REGNAME_ONLYDBSSORTED, DEFAULT_ONLYDBSSORTED);
|
||||
CloseKey;
|
||||
end;
|
||||
Free;
|
||||
@@ -282,7 +276,7 @@ begin
|
||||
begin
|
||||
with TRegistry.Create do
|
||||
begin
|
||||
if not DeleteKey(REGPATH + '\Servers\' + ComboBoxDescription.Text) then
|
||||
if not DeleteKey(REGPATH + REGKEY_SESSIONS + ComboBoxDescription.Text) then
|
||||
MessageDlg('Error while deleting Key from Registry!', mtError, [mbOK], 0);
|
||||
Free;
|
||||
end;
|
||||
@@ -292,28 +286,20 @@ end;
|
||||
|
||||
|
||||
procedure Tconnform.ComboBoxDescriptionClick(Sender: TObject);
|
||||
var
|
||||
sessname : String;
|
||||
begin
|
||||
// select one connection!
|
||||
Screen.Cursor := crHourglass;
|
||||
with TRegistry.Create do
|
||||
begin
|
||||
if OpenKey(REGPATH + '\Servers\' + ComboBoxDescription.Text, true) then
|
||||
begin
|
||||
EditHost.Text := ReadString('Host');
|
||||
EditUsername.Text := ReadString('User');
|
||||
EditPassword.Text := decrypt(ReadString('Password'));
|
||||
EditPort.Text := ReadString('Port');
|
||||
EditTimeout.Text := ReadString('Timeout');
|
||||
CheckBoxCompressed.Checked := ReadBool('Compressed');
|
||||
EditOnlyDBs.Text := ReadString('OnlyDBs');
|
||||
if ValueExists('OnlyDBsSorted') then
|
||||
CheckBoxSorted.Checked := ReadBool('OnlyDBsSorted')
|
||||
else
|
||||
CheckBoxSorted.Checked := false; // for existing connections from older HS-versions always off
|
||||
CloseKey;
|
||||
end;
|
||||
Free;
|
||||
end;
|
||||
sessname := ComboBoxDescription.Text;
|
||||
EditHost.Text := Mainform.GetRegValue(REGNAME_HOST, '', sessname);
|
||||
EditUsername.Text := Mainform.GetRegValue(REGNAME_USER, '', sessname);
|
||||
EditPassword.Text := decrypt(Mainform.GetRegValue(REGNAME_PASSWORD, '', sessname));
|
||||
EditPort.Text := Mainform.GetRegValue(REGNAME_PORT, '', sessname);
|
||||
EditTimeout.Text := Mainform.GetRegValue(REGNAME_TIMEOUT, '', sessname);;
|
||||
CheckBoxCompressed.Checked := Mainform.GetRegValue(REGNAME_COMPRESSED, DEFAULT_COMPRESSED, sessname);
|
||||
EditOnlyDBs.Text := Mainform.GetRegValue(REGNAME_ONLYDBS, '', sessname);
|
||||
CheckBoxSorted.Checked := Mainform.GetRegValue(REGNAME_ONLYDBSSORTED, DEFAULT_ONLYDBSSORTED, sessname);
|
||||
ButtonSave.Enabled := false;
|
||||
ButtonSaveAndConnect.Enabled := ButtonSave.Enabled;
|
||||
ButtonEditDesc.Enabled := ComboBoxDescription.ItemIndex > -1;
|
||||
@@ -383,7 +369,7 @@ begin
|
||||
with TRegistry.Create do begin
|
||||
idx := ComboBoxDescription.ItemIndex;
|
||||
try
|
||||
MoveKey(REGPATH + '\Servers\' + olddesc, REGPATH + '\Servers\' + newdesc, true);
|
||||
MoveKey(REGPATH + REGKEY_SESSIONS + olddesc, REGPATH + REGKEY_SESSIONS + newdesc, true);
|
||||
ComboBoxDescription.Items[ComboBoxDescription.ItemIndex] := newdesc;
|
||||
ComboBoxDescription.ItemIndex := idx;
|
||||
ComboBoxDescriptionClick(self);
|
||||
|
||||
@@ -10,7 +10,7 @@ interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||||
StdCtrls, Buttons, CheckLst, ZDataSet, ComCtrls;
|
||||
StdCtrls, Buttons, CheckLst, ZDataSet, ComCtrls, Registry;
|
||||
|
||||
type
|
||||
TCopyTableForm = class(TForm)
|
||||
@@ -180,6 +180,7 @@ var
|
||||
zq : TDataSet;
|
||||
isFulltext : Boolean;
|
||||
struc_data : Byte;
|
||||
reg : TRegistry;
|
||||
begin
|
||||
// copy table!
|
||||
|
||||
@@ -188,9 +189,14 @@ begin
|
||||
if radioStructure.Checked then struc_data := OPTION_STRUCTURE;
|
||||
if radioStructureAndData.Checked then struc_data := OPTION_STRUCTURE_AND_DATA;
|
||||
|
||||
mainform.SaveRegValue( OPTION_REGNAME_STRUC_DATA, struc_data );
|
||||
mainform.SaveRegValue( OPTION_REGNAME_WITH_INDEXES, CheckBoxWithIndexes.Checked );
|
||||
mainform.SaveRegValue( OPTION_REGNAME_WITH_ALL_FIELDS, CheckBoxWithAllFields.Checked );
|
||||
reg := TRegistry.Create;
|
||||
if reg.OpenKey(REGPATH, False) then begin
|
||||
reg.WriteInteger( OPTION_REGNAME_STRUC_DATA, struc_data );
|
||||
reg.WriteBool( OPTION_REGNAME_WITH_INDEXES, CheckBoxWithIndexes.Checked );
|
||||
reg.WriteBool( OPTION_REGNAME_WITH_ALL_FIELDS, CheckBoxWithAllFields.Checked );
|
||||
reg.CloseKey;
|
||||
end;
|
||||
reg.Free;
|
||||
|
||||
strquery := 'CREATE TABLE ' + mainform.mask(ComboSelectDatabase.Text) + '.' + mainform.mask(editNewTablename.Text) + ' ';
|
||||
|
||||
|
||||
@@ -47,19 +47,13 @@ uses main, helpers;
|
||||
Initialization
|
||||
}
|
||||
procedure TDataSortingForm.FormShow(Sender: TObject);
|
||||
var
|
||||
reg : TRegistry;
|
||||
begin
|
||||
// Take column names from listColumns and add here
|
||||
ColumnNames := GetVTCaptions( Mainform.Childwin.ListColumns );
|
||||
|
||||
// Read original ORDER clause from registry
|
||||
reg := TRegistry.Create();
|
||||
reg.OpenKey( REGPATH + '\Servers\' + Mainform.Childwin.Description, true );
|
||||
reg_name := REGPREFIX_ORDERCLAUSE + Mainform.Childwin.ActiveDatabase + '.' + Mainform.Childwin.SelectedTable;
|
||||
OldOrderClause := reg.ReadString(reg_name);
|
||||
reg.CloseKey;
|
||||
FreeAndNil(reg);
|
||||
OldOrderClause := Mainform.GetRegValue(reg_name, '', Mainform.Childwin.Description);
|
||||
|
||||
OrderColumns := Mainform.Childwin.HandleOrderColumns;
|
||||
|
||||
@@ -304,7 +298,7 @@ var
|
||||
reg : TRegistry;
|
||||
begin
|
||||
reg := TRegistry.Create();
|
||||
reg.OpenKey( REGPATH + '\Servers\' + Mainform.Childwin.Description, true );
|
||||
reg.OpenKey( REGPATH + REGKEY_SESSIONS + Mainform.Childwin.Description, true );
|
||||
reg.WriteString( reg_name, Mainform.Childwin.ComposeOrderClause(OrderColumns) );
|
||||
reg.CloseKey;
|
||||
FreeAndNil(reg);
|
||||
|
||||
@@ -240,54 +240,49 @@ begin
|
||||
end;
|
||||
|
||||
// Read options
|
||||
with TRegistry.Create do
|
||||
if OpenKey(REGPATH, true) then begin
|
||||
// WithUseDB, UseBackticks, CompleteInserts: deprecated (hardcoded true now)
|
||||
if Valueexists('ExportStructure') then cbxStructure.Checked := ReadBool('ExportStructure');
|
||||
if Valueexists('WithCreateDatabase') then cbxDatabase.Checked := ReadBool('WithCreateDatabase');
|
||||
if Valueexists('WithCreateTable') then cbxTables.Checked := ReadBool('WithCreateTable');
|
||||
if Valueexists('ExportData') then cbxData.Checked := ReadBool('ExportData');
|
||||
if Valueexists('CreateDatabaseHow') then comboDatabase.ItemIndex := ReadInteger('CreateDatabaseHow');
|
||||
if Valueexists('CreateTablesHow') then comboTables.ItemIndex := ReadInteger('CreateTablesHow')
|
||||
else if Valueexists('WithDropTable') and ReadBool('WithDropTable') then comboTables.ItemIndex := TAB_DROP_CREATE;
|
||||
if Valueexists('CreateDataHow') then comboData.ItemIndex := ReadInteger('CreateDataHow');
|
||||
if Valueexists('Compatibility') then comboTargetCompat.ItemIndex := ReadInteger('Compatibility');
|
||||
if Valueexists('exportfilename') then editFileName.Text := ReadString('exportfilename');
|
||||
if Valueexists('ExportDirectory') then editDirectory.Text := ReadString('ExportDirectory');
|
||||
if Valueexists('ExportSQL_OutputTo') then
|
||||
begin
|
||||
OutputTo := ReadInteger('ExportSQL_OutputTo');
|
||||
// WithUseDB, UseBackticks, CompleteInserts: deprecated (hardcoded true now)
|
||||
cbxStructure.Checked := Mainform.GetRegValue(REGNAME_EXP_STRUCTURE, cbxStructure.Checked);
|
||||
cbxDatabase.Checked := Mainform.GetRegValue(REGNAME_EXP_CREATEDB, cbxDatabase.Checked);
|
||||
cbxTables.Checked := Mainform.GetRegValue(REGNAME_EXP_CREATETABLE, cbxTables.Checked);
|
||||
cbxData.Checked := Mainform.GetRegValue(REGNAME_EXP_DATA, cbxData.Checked);
|
||||
comboDatabase.ItemIndex := Mainform.GetRegValue(REGNAME_EXP_DBHOW, comboDatabase.ItemIndex);
|
||||
comboTables.ItemIndex := Mainform.GetRegValue(REGNAME_EXP_TABLESHOW, comboTables.ItemIndex);
|
||||
comboData.ItemIndex := Mainform.GetRegValue(REGNAME_EXP_DATAHOW, comboData.ItemIndex);
|
||||
comboTargetCompat.ItemIndex := Mainform.GetRegValue(REGNAME_EXP_COMPAT, comboTargetCompat.ItemIndex);
|
||||
editFileName.Text := Mainform.GetRegValue(REGNAME_EXP_OUTFILE, '');
|
||||
editDirectory.Text := Mainform.GetRegValue(REGNAME_EXP_OUTDIR, '');
|
||||
OutputTo := Mainform.GetRegValue(REGNAME_EXP_TARGET, -1);
|
||||
if OutputTo > -1 then
|
||||
begin
|
||||
|
||||
{***
|
||||
@note ansgarbecker, 2007-02-24
|
||||
If OutputTo is now OUTPUT_HOST and there are no other windows
|
||||
to export to, reset OutputTo to OUTPUT_FILE to avoid the error-popup
|
||||
"You need at least 2 windows...", which should not be fired in
|
||||
FormShow rather than only when the user has really clicked that
|
||||
radiobutton.
|
||||
As a benefit, the OUTPUT_FILE won't be saved to registry here
|
||||
so the OUTPUT_HOST is still enabled in registry and will be used
|
||||
the next time if we have more than 1 window
|
||||
@see bug #1666054
|
||||
}
|
||||
// Check if all the heidisql windows are still alive.
|
||||
CheckForCrashedWindows;
|
||||
// Fetch list of heidisql windows.
|
||||
list := GetWindowList;
|
||||
if (Length(list) < 2) and (OutputTo = OUTPUT_HOST) then
|
||||
OutputTo := OUTPUT_FILE;
|
||||
{***
|
||||
@note ansgarbecker, 2007-02-24
|
||||
If OutputTo is now OUTPUT_HOST and there are no other windows
|
||||
to export to, reset OutputTo to OUTPUT_FILE to avoid the error-popup
|
||||
"You need at least 2 windows...", which should not be fired in
|
||||
FormShow rather than only when the user has really clicked that
|
||||
radiobutton.
|
||||
As a benefit, the OUTPUT_FILE won't be saved to registry here
|
||||
so the OUTPUT_HOST is still enabled in registry and will be used
|
||||
the next time if we have more than 1 window
|
||||
@see bug #1666054
|
||||
}
|
||||
// Check if all the heidisql windows are still alive.
|
||||
CheckForCrashedWindows;
|
||||
// Fetch list of heidisql windows.
|
||||
list := GetWindowList;
|
||||
if (Length(list) < 2) and (OutputTo = OUTPUT_HOST) then
|
||||
OutputTo := OUTPUT_FILE;
|
||||
|
||||
case OutputTo of
|
||||
OUTPUT_FILE : radioFile.Checked := true;
|
||||
OUTPUT_DIR : radioDirectory.Checked := true;
|
||||
OUTPUT_DB : radioOtherDatabase.Checked := true;
|
||||
OUTPUT_HOST : radioOtherHost.Checked := true;
|
||||
end;
|
||||
case OutputTo of
|
||||
OUTPUT_FILE : radioFile.Checked := true;
|
||||
OUTPUT_DIR : radioDirectory.Checked := true;
|
||||
OUTPUT_DB : radioOtherDatabase.Checked := true;
|
||||
OUTPUT_HOST : radioOtherHost.Checked := true;
|
||||
end;
|
||||
if ValueExists('ExportSQL_WindowWidth') then Width := ReadInteger('ExportSQL_WindowWidth');
|
||||
if ValueExists('ExportSQL_WindowHeight') then Height := ReadInteger('ExportSQL_WindowHeight');
|
||||
Free;
|
||||
end;
|
||||
Width := Mainform.GetRegValue(REGNAME_EXP_WINWIDTH, Width);
|
||||
Height := Mainform.GetRegValue(REGNAME_EXP_WINHEIGHT, Height);
|
||||
|
||||
if EditFileName.Text = '' then
|
||||
EditFileName.Text := ExtractFilePath(paramstr(0)) + 'export.sql';
|
||||
@@ -1524,16 +1519,16 @@ begin
|
||||
begin
|
||||
OpenKey(REGPATH, true);
|
||||
// WithUseDB, UseBackticks, CompleteInserts, WithDropTable: deprecated (currently not automagically removed)
|
||||
WriteBool('ExportStructure', cbxStructure.Checked);
|
||||
WriteBool('WithCreateDatabase', cbxDatabase.Checked);
|
||||
WriteBool('WithCreateTable', cbxTables.Checked);
|
||||
WriteBool('ExportData', cbxData.Checked);
|
||||
WriteInteger('CreateDatabaseHow', comboDatabase.ItemIndex);
|
||||
WriteInteger('CreateTablesHow', comboTables.ItemIndex);
|
||||
WriteInteger('CreateDataHow', comboData.ItemIndex);
|
||||
WriteInteger('Compatibility', comboTargetCompat.ItemIndex);
|
||||
WriteString('exportfilename', EditFileName.Text);
|
||||
WriteString('ExportDirectory', EditDirectory.Text);
|
||||
WriteBool(REGNAME_EXP_STRUCTURE, cbxStructure.Checked);
|
||||
WriteBool(REGNAME_EXP_CREATEDB, cbxDatabase.Checked);
|
||||
WriteBool(REGNAME_EXP_CREATETABLE, cbxTables.Checked);
|
||||
WriteBool(REGNAME_EXP_DATA, cbxData.Checked);
|
||||
WriteInteger(REGNAME_EXP_DBHOW, comboDatabase.ItemIndex);
|
||||
WriteInteger(REGNAME_EXP_TABLESHOW, comboTables.ItemIndex);
|
||||
WriteInteger(REGNAME_EXP_DATAHOW, comboData.ItemIndex);
|
||||
WriteInteger(REGNAME_EXP_COMPAT, comboTargetCompat.ItemIndex);
|
||||
WriteString(REGNAME_EXP_OUTFILE, EditFileName.Text);
|
||||
WriteString(REGNAME_EXP_OUTDIR, EditDirectory.Text);
|
||||
OutputTo := OUTPUT_FILE;
|
||||
if radioDirectory.checked then
|
||||
OutputTo := OUTPUT_DIR
|
||||
@@ -1541,9 +1536,9 @@ begin
|
||||
OutputTo := OUTPUT_DB
|
||||
else if radioOtherHost.checked then
|
||||
OutputTo := OUTPUT_HOST;
|
||||
WriteInteger('ExportSQL_OutputTo', OutputTo );
|
||||
WriteInteger('ExportSQL_WindowWidth', Width );
|
||||
WriteInteger('ExportSQL_WindowHeight', Height );
|
||||
WriteInteger(REGNAME_EXP_TARGET, OutputTo );
|
||||
WriteInteger(REGNAME_EXP_WINWIDTH, Width );
|
||||
WriteInteger(REGNAME_EXP_WINHEIGHT, Height );
|
||||
CloseKey();
|
||||
Free;
|
||||
end;
|
||||
|
||||
@@ -101,7 +101,6 @@ procedure Tloaddataform.FormShow(Sender: TObject);
|
||||
var
|
||||
tn : TTreeNode;
|
||||
i : Integer;
|
||||
reg : TRegistry;
|
||||
begin
|
||||
// read dbs and Tables from treeview
|
||||
comboDatabase.Items.Clear;
|
||||
@@ -124,29 +123,19 @@ begin
|
||||
comboDatabase.ItemIndex := 0;
|
||||
|
||||
comboDatabaseChange(self);
|
||||
reg := TRegistry.Create;
|
||||
if reg.OpenKey(REGPATH, true) then
|
||||
begin
|
||||
// filename
|
||||
editFilename.Text := reg.ReadString('loadfilename');
|
||||
// Use options from CSV export
|
||||
editFieldTerminator.Text := reg.ReadString('CSVSeparator');
|
||||
editFieldEncloser.Text := reg.ReadString('CSVEncloser');
|
||||
editLineTerminator.Text := reg.ReadString('CSVTerminator');
|
||||
// Other options
|
||||
if reg.ValueExists('CSVImportFieldsEnclosedOptionally') then
|
||||
chkFieldsEnclosedOptionally.Checked := reg.ReadBool('CSVImportFieldsEnclosedOptionally');
|
||||
editFieldEscaper.Text := reg.ReadString('CSVImportFieldEscaper');
|
||||
if reg.ValueExists('CSVImportIgnoreLines') then
|
||||
updownIgnoreLines.Position := reg.ReadInteger('CSVImportIgnoreLines');
|
||||
if reg.ValueExists('CSVImportLowPriority') then
|
||||
chkLowPriority.Checked := reg.ReadBool('CSVImportLowPriority');
|
||||
if reg.ValueExists('CSVImportReplace') then
|
||||
chkReplace.Checked := reg.ReadBool('CSVImportReplace');
|
||||
if reg.ValueExists('CSVImportIgnore') then
|
||||
chkIgnore.Checked := reg.ReadBool('CSVImportIgnore');
|
||||
end;
|
||||
FreeAndNil(reg);
|
||||
// filename
|
||||
editFilename.Text := Mainform.GetRegValue(REGNAME_CSV_FILENAME, '');
|
||||
// Use options from CSV export
|
||||
editFieldTerminator.Text := Mainform.GetRegValue(REGNAME_CSV_SEPARATOR, DEFAULT_CSV_SEPARATOR);
|
||||
editFieldEncloser.Text := Mainform.GetRegValue(REGNAME_CSV_ENCLOSER, DEFAULT_CSV_ENCLOSER);
|
||||
editLineTerminator.Text := Mainform.GetRegValue(REGNAME_CSV_TERMINATOR, DEFAULT_CSV_TERMINATOR);
|
||||
// Other options
|
||||
chkFieldsEnclosedOptionally.Checked := Mainform.GetRegValue(REGNAME_CSV_ENCLOPTION, chkFieldsEnclosedOptionally.Checked);
|
||||
editFieldEscaper.Text := Mainform.GetRegValue(REGNAME_CSV_ESCAPER, editFieldEscaper.Text);
|
||||
updownIgnoreLines.Position := Mainform.GetRegValue(REGNAME_CSV_IGNORELINES, updownIgnoreLines.Position);
|
||||
chkLowPriority.Checked := Mainform.GetRegValue(REGNAME_CSV_LOWPRIO, chkLowPriority.Checked);
|
||||
chkReplace.Checked := Mainform.GetRegValue(REGNAME_CSV_REPLACE, chkReplace.Checked);
|
||||
chkIgnore.Checked := Mainform.GetRegValue(REGNAME_CSV_IGNORE, chkIgnore.Checked);
|
||||
end;
|
||||
|
||||
|
||||
@@ -219,18 +208,18 @@ begin
|
||||
if reg.OpenKey(REGPATH, true) then
|
||||
begin
|
||||
// filename
|
||||
reg.WriteString( 'loadfilename', editFilename.Text );
|
||||
reg.WriteString( REGNAME_CSV_FILENAME, editFilename.Text );
|
||||
// Use options from CSV export
|
||||
reg.WriteString( 'CSVSeparator', editFieldTerminator.Text );
|
||||
reg.WriteString( 'CSVEncloser', editFieldEncloser.Text );
|
||||
reg.WriteString( 'CSVTerminator', editLineTerminator.Text );
|
||||
reg.WriteString( REGNAME_CSV_SEPARATOR, editFieldTerminator.Text );
|
||||
reg.WriteString( REGNAME_CSV_ENCLOSER, editFieldEncloser.Text );
|
||||
reg.WriteString( REGNAME_CSV_TERMINATOR, editLineTerminator.Text );
|
||||
// Other options
|
||||
reg.WriteBool( 'CSVImportFieldsEnclosedOptionally', chkFieldsEnclosedOptionally.Checked );
|
||||
reg.WriteString( 'CSVImportFieldEscaper', editFieldEscaper.Text );
|
||||
reg.WriteInteger( 'CSVImportIgnoreLines', updownIgnoreLines.Position );
|
||||
reg.WriteBool( 'CSVImportLowPriority', chkLowPriority.Checked );
|
||||
reg.WriteBool( 'CSVImportReplace', chkReplace.Checked );
|
||||
reg.WriteBool( 'CSVImportIgnore', chkIgnore.Checked );
|
||||
reg.WriteBool( REGNAME_CSV_ENCLOPTION, chkFieldsEnclosedOptionally.Checked );
|
||||
reg.WriteString( REGNAME_CSV_ESCAPER, editFieldEscaper.Text );
|
||||
reg.WriteInteger( REGNAME_CSV_IGNORELINES, updownIgnoreLines.Position );
|
||||
reg.WriteBool( REGNAME_CSV_LOWPRIO, chkLowPriority.Checked );
|
||||
reg.WriteBool( REGNAME_CSV_REPLACE, chkReplace.Checked );
|
||||
reg.WriteBool( REGNAME_CSV_IGNORE, chkIgnore.Checked );
|
||||
end;
|
||||
FreeAndNil(reg);
|
||||
|
||||
|
||||
239
source/main.pas
239
source/main.pas
@@ -199,14 +199,15 @@ type
|
||||
procedure HandleWMProcessLog(var msg: TMessage); message WM_PROCESSLOG;
|
||||
procedure HandleWMClearRightClickPointer(var msg: TMessage); message WM_CLEAR_RIGHTCLICK_POINTER;
|
||||
private
|
||||
regMain : TRegistry;
|
||||
function GetChildwin: TMDIChild;
|
||||
function GetParamValue(const paramChar: Char; const paramName:
|
||||
string; var curIdx: Byte; out paramValue: string): Boolean;
|
||||
public
|
||||
function GetRegValue( valueName: String; defaultValue: Integer; key: String = '' ) : Integer; Overload;
|
||||
function GetRegValue( valueName: String; defaultValue: Boolean; key: String = '' ) : Boolean; Overload;
|
||||
procedure SaveRegValue( valueName: String; value: Integer; key: String = '' ); Overload;
|
||||
procedure SaveRegValue( valueName: String; value: Boolean; key: String = '' ); Overload;
|
||||
procedure OpenRegistry(Session: String = '');
|
||||
function GetRegValue( valueName: String; defaultValue: Integer; Session: String = '' ) : Integer; Overload;
|
||||
function GetRegValue( valueName: String; defaultValue: Boolean; Session: String = '' ) : Boolean; Overload;
|
||||
function GetRegValue( valueName: String; defaultValue: String; Session: String = '' ) : String; Overload;
|
||||
function CreateMDIChild(parHost, parPort, parUser, parPass, parDatabase, parTimeout, parCompress, parSortDatabases, parDescription: String): Boolean;
|
||||
|
||||
// Reference to currently active childwindow:
|
||||
@@ -382,16 +383,16 @@ begin
|
||||
begin
|
||||
if OpenKey(REGPATH, true) then
|
||||
begin
|
||||
WriteString('windowstate', ws);
|
||||
WriteInteger('windowleft', left);
|
||||
WriteInteger('windowtop', top);
|
||||
WriteInteger('windowwidth', width);
|
||||
WriteInteger('windowheight', height);
|
||||
WriteString(REGNAME_WINDOWSTATE, ws);
|
||||
WriteInteger(REGNAME_WINDOWLEFT, left);
|
||||
WriteInteger(REGNAME_WINDOWTOP, top);
|
||||
WriteInteger(REGNAME_WINDOWWIDTH, width);
|
||||
WriteInteger(REGNAME_WINDOWHEIGHT, height);
|
||||
// Position of Toolbars
|
||||
WriteInteger('ToolBar2Left', ToolBarStandard.Left);
|
||||
WriteInteger('ToolBarDataLeft', ToolBarData.Left);
|
||||
WriteInteger('ToolBar2Top', ToolBarStandard.Top);
|
||||
WriteInteger('ToolBarDataTop', ToolBarData.Top);
|
||||
WriteInteger(REGNAME_TOOLBAR2LEFT, ToolBarStandard.Left);
|
||||
WriteInteger(REGNAME_TOOLBARDATALEFT, ToolBarData.Left);
|
||||
WriteInteger(REGNAME_TOOLBAR2TOP, ToolBarStandard.Top);
|
||||
WriteInteger(REGNAME_TOOLBARDATATOP, ToolBarData.Top);
|
||||
end;
|
||||
CloseKey;
|
||||
Free;
|
||||
@@ -407,6 +408,10 @@ begin
|
||||
deletefile(filename+'gif');
|
||||
if FileExists(filename+'bmp') then
|
||||
deletefile(filename+'bmp');
|
||||
if regMain <> nil then begin
|
||||
regMain.CloseKey;
|
||||
regMain.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
@@ -424,36 +429,24 @@ begin
|
||||
caption := APPNAME;
|
||||
setLocales;
|
||||
|
||||
with TRegistry.Create do
|
||||
begin
|
||||
if OpenKey(REGPATH, true) then
|
||||
begin
|
||||
ws := ReadString('windowstate');
|
||||
if ws = 'Minimized'
|
||||
then windowstate := wsMinimized else
|
||||
if ws = 'Normal' then begin
|
||||
windowstate := wsNormal;
|
||||
left := ReadInteger('windowleft');
|
||||
top := ReadInteger('windowtop');
|
||||
width := ReadInteger('windowwidth');
|
||||
height := ReadInteger('windowheight');
|
||||
end else
|
||||
if ws = 'Maximized'
|
||||
then windowstate := wsMaximized;
|
||||
ws := GetRegValue('windowstate', 'Normal');
|
||||
if ws = 'Minimized'
|
||||
then windowstate := wsMinimized else
|
||||
if ws = 'Normal' then begin
|
||||
windowstate := wsNormal;
|
||||
Left := GetRegValue(REGNAME_WINDOWLEFT, Left);
|
||||
Top := GetRegValue(REGNAME_WINDOWTOP, Top);
|
||||
Width := GetRegValue(REGNAME_WINDOWWIDTH, Width);
|
||||
Height := GetRegValue(REGNAME_WINDOWHEIGHT, Height);
|
||||
end else
|
||||
if ws = 'Maximized'
|
||||
then windowstate := wsMaximized;
|
||||
|
||||
// Position of Toolbars
|
||||
if valueExists('ToolBar2Left') then
|
||||
ToolBarStandard.Left := ReadInteger('ToolBar2Left');
|
||||
if valueExists('ToolBarDataLeft') then
|
||||
ToolBarData.Left := ReadInteger('ToolBarDataLeft');
|
||||
if valueExists('ToolBar2Top') then
|
||||
ToolBarStandard.Top := ReadInteger('ToolBar2Top');
|
||||
if valueExists('ToolBarDataTop') then
|
||||
ToolBarData.Top := ReadInteger('ToolBarDataTop');
|
||||
end;
|
||||
CloseKey;
|
||||
Free;
|
||||
end;
|
||||
// Position of Toolbars
|
||||
ToolBarStandard.Left := GetRegValue(REGNAME_TOOLBAR2LEFT, ToolBarStandard.Left);
|
||||
ToolBarData.Left := GetRegValue(REGNAME_TOOLBARDATALEFT, ToolBarData.Left);
|
||||
ToolBarStandard.Top := GetRegValue(REGNAME_TOOLBAR2TOP, ToolBarStandard.Top);
|
||||
ToolBarData.Top := GetRegValue(REGNAME_TOOLBARDATATOP, ToolBarData.Top);
|
||||
|
||||
// Beautify appversion
|
||||
if Pos('$Rev: WC', appversion) < 1 then begin
|
||||
@@ -538,16 +531,16 @@ begin
|
||||
begin
|
||||
// Save session parameters to registry
|
||||
reg := TRegistry.Create;
|
||||
if reg.OpenKey(REGPATH + '\Servers\' + parDescription, true) then
|
||||
if reg.OpenKey(REGPATH + REGKEY_SESSIONS + parDescription, true) then
|
||||
begin
|
||||
reg.WriteString('Host', parHost);
|
||||
reg.WriteString('User', parUser);
|
||||
reg.WriteString('Password', encrypt(parPass));
|
||||
reg.WriteString('Port', parPort);
|
||||
reg.WriteString('Timeout', parTimeout);
|
||||
reg.WriteBool('Compressed', Boolean(StrToIntDef(parCompress, 0)) );
|
||||
reg.WriteString('OnlyDBs', parDatabase);
|
||||
reg.WriteBool('OnlyDBsSorted', Boolean(StrToIntDef(parSortDatabases, 0)) );
|
||||
reg.WriteString(REGNAME_HOST, parHost);
|
||||
reg.WriteString(REGNAME_USER, parUser);
|
||||
reg.WriteString(REGNAME_PASSWORD, encrypt(parPass));
|
||||
reg.WriteString(REGNAME_PORT, parPort);
|
||||
reg.WriteString(REGNAME_TIMEOUT, parTimeout);
|
||||
reg.WriteBool(REGNAME_COMPRESSED, Boolean(StrToIntDef(parCompress, 0)) );
|
||||
reg.WriteString(REGNAME_ONLYDBS, parDatabase);
|
||||
reg.WriteBool(REGNAME_ONLYDBSSORTED, Boolean(StrToIntDef(parSortDatabases, 0)) );
|
||||
reg.CloseKey;
|
||||
reg.Free;
|
||||
end;
|
||||
@@ -616,14 +609,14 @@ begin
|
||||
Access := KEY_ALL_ACCESS;
|
||||
if OpenKey(REGPATH, false) then
|
||||
begin
|
||||
DeleteValue('childwinstate');
|
||||
DeleteValue('childwinleft');
|
||||
DeleteValue('childwintop');
|
||||
DeleteValue('childwinwidth');
|
||||
DeleteValue('childwinheight');
|
||||
DeleteValue('querymemoheight');
|
||||
DeleteValue('dbtreewidth');
|
||||
DeleteValue('sqloutheight');
|
||||
DeleteValue(REGNAME_CHILDWINSTATE);
|
||||
DeleteValue(REGNAME_CHILDWINLEFT);
|
||||
DeleteValue(REGNAME_CHILDWINTOP);
|
||||
DeleteValue(REGNAME_CHILDWINWIDTH);
|
||||
DeleteValue(REGNAME_CHILDWINHEIGHT);
|
||||
DeleteValue(REGNAME_QUERYMEMOHEIGHT);
|
||||
DeleteValue(REGNAME_DBTREEWIDTH);
|
||||
DeleteValue(REGNAME_SQLOUTHEIGHT);
|
||||
|
||||
CloseKey;
|
||||
MessageDlg('All Window-Settings were reset to default values.', mtInformation, [mbok], 0);
|
||||
@@ -874,7 +867,7 @@ procedure TMainForm.ExportSettings1Click(Sender: TObject);
|
||||
begin
|
||||
// Export settings to .reg-file
|
||||
if SaveDialog2.Execute then begin
|
||||
if winexec(pchar('regedit.exe /e "'+SaveDialog2.FileName+'" HKEY_CURRENT_USER\'+REGPATH), SW_SHOW) = ERROR_FILE_NOT_FOUND then
|
||||
if winexec(pchar('regedit.exe /e "'+SaveDialog2.FileName+'" HKEY_CURRENT_USER'+REGPATH), SW_SHOW) = ERROR_FILE_NOT_FOUND then
|
||||
MessageDlg('File not found: regedit.exe', mtError, [mbOK], 0);
|
||||
end;
|
||||
end;
|
||||
@@ -958,10 +951,10 @@ begin
|
||||
with TRegistry.Create do
|
||||
begin
|
||||
openkey(REGPATH, true);
|
||||
WriteBool('ConvertHTMLEntities', ConvertHTMLSpecialChars);
|
||||
WriteString('CSVSeparator', FieldSep);
|
||||
WriteString('CSVEncloser', FieldEncl);
|
||||
WriteString('CSVTerminator', LineSep);
|
||||
WriteBool(REGNAME_CONVERTHTMLENTITIES, ConvertHTMLSpecialChars);
|
||||
WriteString(REGNAME_CSV_SEPARATOR, FieldSep);
|
||||
WriteString(REGNAME_CSV_ENCLOSER, FieldEncl);
|
||||
WriteString(REGNAME_CSV_TERMINATOR, LineSep);
|
||||
closekey();
|
||||
Free;
|
||||
end;
|
||||
@@ -1098,112 +1091,62 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
function TMainForm.GetRegValue( valueName: String; defaultValue: Integer; key: String = '' ) : Integer;
|
||||
{**
|
||||
Init main registry object and open desired key
|
||||
Outsoureced from GetRegValue() to avoid redundant code
|
||||
in these 3 overloaded methods.
|
||||
}
|
||||
procedure TMainForm.OpenRegistry(Session: String = '');
|
||||
var
|
||||
reg : TRegistry;
|
||||
folder : String;
|
||||
begin
|
||||
result := defaultValue;
|
||||
reg := TRegistry.Create;
|
||||
if regMain = nil then
|
||||
regMain := TRegistry.Create;
|
||||
folder := REGPATH;
|
||||
if key <> '' then
|
||||
folder := folder + '\' + key;
|
||||
try
|
||||
if reg.OpenKey(folder, false) then
|
||||
begin
|
||||
if reg.ValueExists( valueName ) then
|
||||
result := reg.ReadInteger( valueName );
|
||||
reg.CloseKey;
|
||||
end;
|
||||
finally
|
||||
reg.Free;
|
||||
end;
|
||||
if Session <> '' then
|
||||
folder := folder + REGKEY_SESSIONS + Session;
|
||||
if regMain.CurrentPath <> folder then
|
||||
regMain.OpenKey(folder, false);
|
||||
end;
|
||||
|
||||
|
||||
{**
|
||||
Read a numeric preference value from registry
|
||||
}
|
||||
function TMainForm.GetRegValue( valueName: String; defaultValue: Integer; Session: String = '' ) : Integer;
|
||||
begin
|
||||
result := defaultValue;
|
||||
OpenRegistry(Session);
|
||||
if regMain.ValueExists( valueName ) then
|
||||
result := regMain.ReadInteger( valueName );
|
||||
end;
|
||||
|
||||
|
||||
{***
|
||||
Safely read a given valueName from the registry default-folder REGPATH
|
||||
Read a boolean preference value from registry
|
||||
@param string Name of the value
|
||||
@param boolean Default-value to return if valueName was not found
|
||||
@param string Subkey of REGPATH where to search for the value
|
||||
}
|
||||
function TMainForm.GetRegValue( valueName: String; defaultValue: Boolean; key: String = '' ) : Boolean;
|
||||
var
|
||||
reg : TRegistry;
|
||||
folder : String;
|
||||
function TMainForm.GetRegValue( valueName: String; defaultValue: Boolean; Session: String = '' ) : Boolean;
|
||||
begin
|
||||
result := defaultValue;
|
||||
reg := TRegistry.Create;
|
||||
folder := REGPATH;
|
||||
if key <> '' then
|
||||
folder := folder + '\' + key;
|
||||
try
|
||||
if reg.OpenKey(folder, false) then
|
||||
begin
|
||||
if reg.ValueExists( valueName ) then
|
||||
result := reg.ReadBool( valueName );
|
||||
reg.CloseKey;
|
||||
end;
|
||||
finally
|
||||
reg.Free;
|
||||
end;
|
||||
OpenRegistry(Session);
|
||||
if regMain.ValueExists( valueName ) then
|
||||
result := regMain.ReadBool( valueName );
|
||||
end;
|
||||
|
||||
|
||||
|
||||
{***
|
||||
Saves a number-value into the predefined folder REGPATH
|
||||
@param string Name for the value
|
||||
@param integer Value-number
|
||||
@param string Subkey of REGPATH where to store the value
|
||||
Read a text preference value from registry
|
||||
}
|
||||
procedure TMainForm.SaveRegValue( valueName: String; value: Integer; key: String = '' );
|
||||
var
|
||||
reg : TRegistry;
|
||||
folder : String;
|
||||
function TMainForm.GetRegValue( valueName: String; defaultValue: String; Session: String = '' ) : String;
|
||||
begin
|
||||
reg := TRegistry.Create;
|
||||
folder := REGPATH;
|
||||
if key <> '' then
|
||||
folder := folder + '\' + key;
|
||||
try
|
||||
if reg.OpenKey(folder, false) then
|
||||
begin
|
||||
reg.WriteInteger( valueName, value );
|
||||
reg.CloseKey;
|
||||
end;
|
||||
finally
|
||||
reg.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
{***
|
||||
Saves a boolean-value into the predefined folder REGPATH
|
||||
@param string Name for the value
|
||||
@param boolean Value
|
||||
@param string Subkey of REGPATH where to store the value
|
||||
}
|
||||
procedure TMainForm.SaveRegValue( valueName: String; value: Boolean; key: String = '' );
|
||||
var
|
||||
reg : TRegistry;
|
||||
folder : String;
|
||||
begin
|
||||
reg := TRegistry.Create;
|
||||
folder := REGPATH;
|
||||
if key <> '' then
|
||||
folder := folder + '\' + key;
|
||||
try
|
||||
if reg.OpenKey(folder, false) then
|
||||
begin
|
||||
reg.WriteBool( valueName, value );
|
||||
reg.CloseKey;
|
||||
end;
|
||||
finally
|
||||
reg.Free;
|
||||
end;
|
||||
result := defaultValue;
|
||||
OpenRegistry(Session);
|
||||
if regMain.ValueExists( valueName ) then
|
||||
result := regMain.ReadString( valueName );
|
||||
end;
|
||||
|
||||
|
||||
|
||||
@@ -112,13 +112,6 @@ type
|
||||
|
||||
function OptionsWindow (AOwner : TComponent; Flags : String = '') : Boolean;
|
||||
|
||||
var
|
||||
fontname : String = 'Courier New';
|
||||
fontsize : Integer = 9;
|
||||
datafontname : String = 'MS SANS SERIF';
|
||||
datafontcharset : String = '';
|
||||
datafontsize : Integer = 8;
|
||||
AutoReconnect : Boolean = false;
|
||||
|
||||
implementation
|
||||
uses childwin, main, helpers;
|
||||
@@ -163,31 +156,31 @@ begin
|
||||
reg.OpenKey(REGPATH, true);
|
||||
|
||||
// Save values
|
||||
reg.WriteBool('AutoReconnect', CheckBoxAutoReconnect.Checked);
|
||||
reg.WriteBool('ConvertHTMLEntities', CheckBoxConvertHTMLEntities.Checked);
|
||||
reg.WriteBool('RestoreLastUsedDB', CheckBoxRestoreLastUsedDB.Checked);
|
||||
reg.WriteString('FontName', ComboBoxFonts.Text);
|
||||
reg.WriteInteger('FontSize', UpDownFontSize.Position);
|
||||
reg.WriteInteger('logsqlnum', updownLogSQLNum.Position);
|
||||
reg.WriteInteger('logsqlwidth', updownLogSnip.Position);
|
||||
reg.WriteString('SQLColKeyAttri', colortostring(pnlKeywords.Color));
|
||||
reg.WriteString('SQLColFunctionAttri', colortostring(pnlFunctions.Color));
|
||||
reg.WriteString('SQLColDataTypeAttri', colortostring(pnlDatatypes.Color));
|
||||
reg.WriteString('SQLColNumberAttri', colortostring(pnlNumeric.Color));
|
||||
reg.WriteString('SQLColStringAttri', colortostring(pnlString.Color));
|
||||
reg.WriteString('SQLColCommentAttri', colortostring(pnlComments.Color));
|
||||
reg.WriteString('SQLColTablenameAttri', colortostring(pnlTablenames.Color));
|
||||
reg.WriteString('SQLColActiveLine', ColorToString(pnlActiveLine.Color));
|
||||
reg.WriteString('CSVSeparator', Edit1.Text);
|
||||
reg.WriteString('CSVEncloser', Edit2.Text);
|
||||
reg.WriteString('CSVTerminator', Edit3.Text);
|
||||
reg.WriteInteger('DefaultColWidth', updownDefaultColWidth.Position);
|
||||
reg.WriteBool('DataLimit', CheckBoxLimit.Checked);
|
||||
reg.WriteInteger('DataLimitEnd', UpDownLimit.Position);
|
||||
reg.WriteString('DataFontName', Panel8.Font.Name);
|
||||
reg.WriteInteger('DataFontSize', UpDownDataFontSize.Position);
|
||||
reg.WriteBool('RememberFilters', chkRememberFilters.Checked);
|
||||
reg.WriteBool('LogToFile', chkLogToFile.Checked);
|
||||
reg.WriteBool(REGNAME_AUTORECONNECT, CheckBoxAutoReconnect.Checked);
|
||||
reg.WriteBool(REGNAME_CONVERTHTMLENTITIES, CheckBoxConvertHTMLEntities.Checked);
|
||||
reg.WriteBool(REGNAME_RESTORELASTUSEDDB, CheckBoxRestoreLastUsedDB.Checked);
|
||||
reg.WriteString(REGNAME_FONTNAME, ComboBoxFonts.Text);
|
||||
reg.WriteInteger(REGNAME_FONTSIZE, UpDownFontSize.Position);
|
||||
reg.WriteInteger(REGNAME_LOGSQLNUM, updownLogSQLNum.Position);
|
||||
reg.WriteInteger(REGNAME_LOGSQLWIDTH, updownLogSnip.Position);
|
||||
reg.WriteString(REGNAME_SQLCOLKEYATTRI, colortostring(pnlKeywords.Color));
|
||||
reg.WriteString(REGNAME_SQLCOLFUNCTIONATTRI, colortostring(pnlFunctions.Color));
|
||||
reg.WriteString(REGNAME_SQLCOLDATATYPEATTRI, colortostring(pnlDatatypes.Color));
|
||||
reg.WriteString(REGNAME_SQLCOLNUMBERATTRI, colortostring(pnlNumeric.Color));
|
||||
reg.WriteString(REGNAME_SQLCOLSTRINGATTRI, colortostring(pnlString.Color));
|
||||
reg.WriteString(REGNAME_SQLCOLCOMMENTATTRI, colortostring(pnlComments.Color));
|
||||
reg.WriteString(REGNAME_SQLCOLTABLENAMEATTRI, colortostring(pnlTablenames.Color));
|
||||
reg.WriteString(REGNAME_SQLCOLACTIVELINE, ColorToString(pnlActiveLine.Color));
|
||||
reg.WriteString(REGNAME_CSV_SEPARATOR, Edit1.Text);
|
||||
reg.WriteString(REGNAME_CSV_ENCLOSER, Edit2.Text);
|
||||
reg.WriteString(REGNAME_CSV_TERMINATOR, Edit3.Text);
|
||||
reg.WriteInteger(REGNAME_DEFAULTCOLWIDTH, updownDefaultColWidth.Position);
|
||||
reg.WriteBool(REGNAME_DATALIMIT, CheckBoxLimit.Checked);
|
||||
reg.WriteInteger(REGNAME_DATALIMITEND, UpDownLimit.Position);
|
||||
reg.WriteString(REGNAME_DATAFONTNAME, Panel8.Font.Name);
|
||||
reg.WriteInteger(REGNAME_DATAFONTSIZE, UpDownDataFontSize.Position);
|
||||
reg.WriteBool(REGNAME_REMEMBERFILTERS, chkRememberFilters.Checked);
|
||||
reg.WriteBool(REGNAME_LOGTOFILE, chkLogToFile.Checked);
|
||||
|
||||
// Close registry key
|
||||
reg.CloseKey;
|
||||
@@ -255,107 +248,47 @@ begin
|
||||
end;
|
||||
|
||||
var
|
||||
reg : TRegistry;
|
||||
fontname : String;
|
||||
fontsize : Integer;
|
||||
datafontname : String;
|
||||
datafontsize : Integer;
|
||||
begin
|
||||
screen.Cursor := crHourGlass;
|
||||
|
||||
// Open registry key
|
||||
reg := TRegistry.Create;
|
||||
reg.OpenKey(REGPATH, true);
|
||||
|
||||
// Read and display values
|
||||
if reg.ValueExists('FontName') then
|
||||
fontname := reg.ReadString('FontName');
|
||||
if reg.ValueExists('FontSize') then
|
||||
fontsize := reg.ReadInteger('FontSize');
|
||||
if reg.ValueExists('DataFontName') then
|
||||
datafontname := reg.ReadString('DataFontName');
|
||||
if reg.ValueExists('DataFontCharset') then
|
||||
datafontcharset := reg.ReadString('DataFontCharset');
|
||||
if reg.ValueExists('DataFontSize') then
|
||||
datafontsize := reg.ReadInteger('DataFontSize');
|
||||
if reg.ValueExists('AutoReconnect') then
|
||||
AutoReconnect := reg.ReadBool('AutoReconnect');
|
||||
if reg.ValueExists('ConvertHTMLEntities') then
|
||||
CheckBoxConvertHTMLEntities.Checked := reg.ReadBool('ConvertHTMLEntities');
|
||||
if reg.ValueExists('RestoreLastUsedDB') then
|
||||
CheckBoxRestoreLastUsedDB.Checked := reg.ReadBool('RestoreLastUsedDB');
|
||||
if reg.ValueExists('DataLimit') then
|
||||
CheckBoxLimit.Checked := reg.ReadBool('DataLimit');
|
||||
if reg.ValueExists('DataLimitEnd') then
|
||||
UpDownLimit.Position := reg.ReadInteger('DataLimitEnd');
|
||||
fontname := Mainform.GetRegValue(REGNAME_FONTNAME, DEFAULT_FONTNAME);
|
||||
fontsize := Mainform.GetRegValue(REGNAME_FONTSIZE, DEFAULT_FONTSIZE);
|
||||
datafontname := Mainform.GetRegValue(REGNAME_DATAFONTNAME, DEFAULT_DATAFONTNAME);
|
||||
datafontsize := Mainform.GetRegValue(REGNAME_DATAFONTSIZE, DEFAULT_DATAFONTSIZE);
|
||||
CheckBoxAutoReconnect.Checked := Mainform.GetRegValue(REGNAME_AUTORECONNECT, DEFAULT_AUTORECONNECT);
|
||||
CheckBoxConvertHTMLEntities.Checked := Mainform.GetRegValue(REGNAME_CONVERTHTMLENTITIES, DEFAULT_CONVERTHTMLENTITIES);
|
||||
CheckBoxRestoreLastUsedDB.Checked := Mainform.GetRegValue(REGNAME_RESTORELASTUSEDDB, DEFAULT_RESTORELASTUSEDDB);
|
||||
CheckBoxLimit.Checked := Mainform.GetRegValue(REGNAME_DATALIMIT, DEFAULT_DATALIMIT);
|
||||
UpDownLimit.Position := Mainform.GetRegValue(REGNAME_DATALIMITEND, DEFAULT_DATALIMITEND);
|
||||
CheckBoxLimit.OnClick(self);
|
||||
if reg.ValueExists('logsqlnum') then
|
||||
updownLogSQLNum.Position := reg.ReadInteger('logsqlnum');
|
||||
if reg.ValueExists('logsqlwidth') then
|
||||
updownLogSnip.Position := reg.ReadInteger('logsqlwidth');
|
||||
updownLogSQLNum.Position := Mainform.GetRegValue(REGNAME_LOGSQLNUM, DEFAULT_LOGSQLNUM);
|
||||
updownLogSnip.Position := Mainform.GetRegValue(REGNAME_LOGSQLWIDTH, DEFAULT_LOGSQLWIDTH);
|
||||
// Default Column-Width in DBGrids:
|
||||
if reg.ValueExists('DefaultColWidth') then
|
||||
updownDefaultColWidth.Position := reg.ReadInteger('DefaultColWidth');
|
||||
|
||||
updownDefaultColWidth.Position := Mainform.GetRegValue(REGNAME_DEFAULTCOLWIDTH, DEFAULT_DEFAULTCOLWIDTH);
|
||||
// Color-coding:
|
||||
if reg.ValueExists('SQLColKeyAttri') then
|
||||
pnlKeywords.Color := StringToColor(reg.readstring('SQLColKeyAttri'))
|
||||
else
|
||||
pnlKeywords.Color := clBlue;
|
||||
if reg.ValueExists('SQLColFunctionAttri') then
|
||||
pnlFunctions.Color := StringToColor(reg.readstring('SQLColFunctionAttri'))
|
||||
else
|
||||
pnlFunctions.Color := clNavy;
|
||||
if reg.ValueExists('SQLColDataTypeAttri') then
|
||||
pnlDatatypes.Color := StringToColor(reg.readstring('SQLColDataTypeAttri'))
|
||||
else
|
||||
pnlDatatypes.Color := clMaroon;
|
||||
if reg.ValueExists('SQLColNumberAttri') then
|
||||
pnlNumeric.Color := StringToColor(reg.readstring('SQLColNumberAttri'))
|
||||
else
|
||||
pnlNumeric.Color := clPurple;
|
||||
if reg.ValueExists('SQLColStringAttri') then
|
||||
pnlString.Color := StringToColor(reg.readstring('SQLColStringAttri'))
|
||||
else
|
||||
pnlString.Color := clGreen;
|
||||
if reg.ValueExists('SQLColCommentAttri') then
|
||||
pnlComments.Color := StringToColor(reg.readstring('SQLColCommentAttri'))
|
||||
else
|
||||
pnlComments.Color := clGray;
|
||||
if reg.ValueExists('SQLColTablenameAttri') then
|
||||
pnlTablenames.Color := StringToColor(reg.readstring('SQLColTablenameAttri'))
|
||||
else
|
||||
pnlTablenames.Color := clFuchsia;
|
||||
if reg.ValueExists('SQLColActiveLine') then
|
||||
pnlActiveLine.Color := StringToColor(reg.readstring('SQLColActiveLine'))
|
||||
else
|
||||
pnlActiveLine.Color := clWindow;
|
||||
|
||||
|
||||
Edit1.Text := ',';
|
||||
Edit2.Text := '';
|
||||
Edit3.Text := '\r\n';
|
||||
|
||||
pnlKeywords.Color := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLKEYATTRI, ColorToString(DEFAULT_SQLCOLKEYATTRI)));
|
||||
pnlFunctions.Color := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLFUNCTIONATTRI, ColorToString(DEFAULT_SQLCOLFUNCTIONATTRI)));
|
||||
pnlDatatypes.Color := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLDATATYPEATTRI, ColorToString(DEFAULT_SQLCOLDATATYPEATTRI)));
|
||||
pnlNumeric.Color := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLNUMBERATTRI, ColorToString(DEFAULT_SQLCOLNUMBERATTRI)));
|
||||
pnlString.Color := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLSTRINGATTRI, ColorToString(DEFAULT_SQLCOLSTRINGATTRI)));
|
||||
pnlComments.Color := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLCOMMENTATTRI, ColorToString(DEFAULT_SQLCOLCOMMENTATTRI)));
|
||||
pnlTablenames.Color := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLTABLENAMEATTRI, ColorToString(DEFAULT_SQLCOLTABLENAMEATTRI)));
|
||||
pnlActiveLine.Color := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLACTIVELINE, ColorToString(DEFAULT_SQLCOLACTIVELINE)));
|
||||
// CSV-Options:
|
||||
if reg.ValueExists('CSVSeparator') then
|
||||
Edit1.Text := reg.ReadString('CSVSeparator');
|
||||
if reg.ValueExists('CSVEncloser') then
|
||||
Edit2.Text := reg.ReadString('CSVEncloser');
|
||||
if reg.ValueExists('CSVTerminator') then
|
||||
Edit3.Text := reg.ReadString('CSVTerminator');
|
||||
|
||||
Edit1.Text := Mainform.GetRegValue(REGNAME_CSV_SEPARATOR, DEFAULT_CSV_SEPARATOR);
|
||||
Edit2.Text := Mainform.GetRegValue(REGNAME_CSV_ENCLOSER, DEFAULT_CSV_ENCLOSER);
|
||||
Edit3.Text := Mainform.GetRegValue(REGNAME_CSV_TERMINATOR, DEFAULT_CSV_TERMINATOR);
|
||||
// Remember data pane filters across sessions
|
||||
if reg.ValueExists('RememberFilters') then
|
||||
chkRememberFilters.Checked := reg.ReadBool('RememberFilters');
|
||||
|
||||
chkRememberFilters.Checked := Mainform.GetRegValue(REGNAME_REMEMBERFILTERS, DEFAULT_REMEMBERFILTERS);
|
||||
// Log to file
|
||||
if reg.ValueExists('LogToFile') then
|
||||
chkLogToFile.Checked := reg.ReadBool('LogToFile');
|
||||
chkLogToFile.Checked := Mainform.GetRegValue(REGNAME_LOGTOFILE, DEFAULT_LOGTOFILE);
|
||||
btnOpenLogFolder.Enabled := DirectoryExists(DirnameSessionLogs);
|
||||
|
||||
// Close registry key
|
||||
reg.CloseKey;
|
||||
reg.Free;
|
||||
|
||||
// Miscellaneous:
|
||||
CheckBoxAutoReconnect.Checked := AutoReconnect;
|
||||
|
||||
// SQL-Appearance:
|
||||
EnumFontFamilies(Canvas.Handle, // HDC of Device-Context.
|
||||
nil, // Name of Font-Family (PChar)
|
||||
|
||||
@@ -87,12 +87,12 @@ begin
|
||||
m := Mainform.Childwin;
|
||||
|
||||
// Set window-layout
|
||||
Top := Mainform.GetRegValue( 'SQLHelp_WindowTop', Top );
|
||||
Left := Mainform.GetRegValue( 'SQLHelp_WindowLeft', Left );
|
||||
Width := Mainform.GetRegValue( 'SQLHelp_WindowWidth', Width );
|
||||
Height := Mainform.GetRegValue( 'SQLHelp_WindowHeight', Height );
|
||||
pnlLeft.Width := Mainform.GetRegValue( 'SQLHelp_PnlLeftWidth', pnlLeft.Width );
|
||||
pnlRightTop.Height := Mainform.GetRegValue( 'SQLHelp_PnlRightTopHeight', pnlRightTop.Height );
|
||||
Top := Mainform.GetRegValue( REGNAME_SQLHELPWINTOP, Top );
|
||||
Left := Mainform.GetRegValue( REGNAME_SQLHELPWINLEFT, Left );
|
||||
Width := Mainform.GetRegValue( REGNAME_SQLHELPWINWIDTH, Width );
|
||||
Height := Mainform.GetRegValue( REGNAME_SQLHELPWINHEIGHT, Height );
|
||||
pnlLeft.Width := Mainform.GetRegValue( REGNAME_SQLHELPPLWIDTH, pnlLeft.Width );
|
||||
pnlRightTop.Height := Mainform.GetRegValue( REGNAME_SQLHELPPRHEIGHT, pnlRightTop.Height );
|
||||
Caption := DEFAULT_WINDOW_CAPTION;
|
||||
|
||||
MemoDescription.Font.Name := m.SynMemoQuery.Font.Name;
|
||||
@@ -308,14 +308,20 @@ end;
|
||||
Save layout and close window
|
||||
}
|
||||
procedure TfrmSQLhelp.ButtonCloseClick(Sender: TObject);
|
||||
var
|
||||
reg : TRegistry;
|
||||
begin
|
||||
Mainform.SaveRegValue( 'SQLHelp_WindowLeft', Left );
|
||||
Mainform.SaveRegValue( 'SQLHelp_WindowTop', Top );
|
||||
Mainform.SaveRegValue( 'SQLHelp_WindowWidth', Width );
|
||||
Mainform.SaveRegValue( 'SQLHelp_WindowHeight', Height );
|
||||
Mainform.SaveRegValue( 'SQLHelp_PnlLeftWidth', pnlLeft.Width );
|
||||
Mainform.SaveRegValue( 'SQLHelp_PnlRightTopHeight', PnlRightTop.Height );
|
||||
|
||||
reg := TRegistry.Create;
|
||||
if reg.OpenKey(REGPATH, False) then begin
|
||||
reg.WriteInteger( REGNAME_SQLHELPWINLEFT, Left );
|
||||
reg.WriteInteger( REGNAME_SQLHELPWINTOP, Top );
|
||||
reg.WriteInteger( REGNAME_SQLHELPWINWIDTH, Width );
|
||||
reg.WriteInteger( REGNAME_SQLHELPWINHEIGHT, Height );
|
||||
reg.WriteInteger( REGNAME_SQLHELPPLWIDTH, pnlLeft.Width );
|
||||
reg.WriteInteger( REGNAME_SQLHELPPRHEIGHT, PnlRightTop.Height );
|
||||
reg.CloseKey;
|
||||
end;
|
||||
reg.Free;
|
||||
Close;
|
||||
end;
|
||||
|
||||
|
||||
@@ -233,7 +233,7 @@ begin
|
||||
if CheckBoxCreateAccount.Checked then
|
||||
with TRegistry.Create do
|
||||
begin
|
||||
OpenKey(REGPATH + '\Servers\', false);
|
||||
OpenKey(REGPATH + REGKEY_SESSIONS, false);
|
||||
if KeyExists(EditDescription.Text) then
|
||||
begin
|
||||
MessageDlg('This Description (' + EditDescription.Text + ') is already used.' + CRLF + 'Please specify another description!', mtError, [mbOK], 0);
|
||||
@@ -242,14 +242,14 @@ begin
|
||||
end
|
||||
else with TRegistry.Create do
|
||||
begin
|
||||
OpenKey(REGPATH + '\Servers\' + EditDescription.Text, true);
|
||||
WriteString('Host', Mainform.Childwin.Conn.MysqlParams.Host);
|
||||
WriteString('User', EditUser.Text);
|
||||
WriteString('Password', encrypt(EditPassword.Text));
|
||||
WriteString('Port', IntToStr(Mainform.Childwin.Conn.MysqlParams.Port));
|
||||
WriteString('Timeout', '30');
|
||||
WriteBool('Compressed', false);
|
||||
WriteString('OnlyDBs', '');
|
||||
OpenKey(REGPATH + REGKEY_SESSIONS + EditDescription.Text, true);
|
||||
WriteString(REGNAME_HOST, Mainform.Childwin.Conn.MysqlParams.Host);
|
||||
WriteString(REGNAME_USER, EditUser.Text);
|
||||
WriteString(REGNAME_PASSWORD, encrypt(EditPassword.Text));
|
||||
WriteString(REGNAME_PORT, IntToStr(Mainform.Childwin.Conn.MysqlParams.Port));
|
||||
WriteString(REGNAME_TIMEOUT, IntToStr(DEFAULT_TIMEOUT));
|
||||
WriteBool(REGNAME_COMPRESSED, DEFAULT_COMPRESSED);
|
||||
WriteString(REGNAME_ONLYDBS, '');
|
||||
CloseKey;
|
||||
Free;
|
||||
end;
|
||||
|
||||
Reference in New Issue
Block a user