Simplify writing settings to registry:

* Keep only one TRegistry object in memory instead of creating a new one in each routine.
* Move out relevant functions and TRegistry object from main to helpers to make them usable globally.
This commit is contained in:
Ansgar Becker
2009-01-03 17:16:11 +00:00
parent 9bd350cf58
commit 909d31fd64
20 changed files with 419 additions and 583 deletions

View File

@ -3,7 +3,7 @@ unit bineditor;
interface
uses
Windows, Classes, Graphics, Forms, Controls, helpers, StdCtrls, TntStdCtrls, Registry, VirtualTrees,
Windows, Classes, Graphics, Forms, Controls, helpers, StdCtrls, TntStdCtrls, VirtualTrees,
ComCtrls, ToolWin, Dialogs, SysUtils;
{$I const.inc}
@ -78,24 +78,18 @@ end;
procedure TfrmBinEditor.FormDestroy(Sender: TObject);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
if reg.OpenKey(REGPATH, False) then begin
reg.WriteInteger( REGNAME_EDITOR_WIDTH, Width );
reg.WriteInteger( REGNAME_EDITOR_HEIGHT, Height );
reg.CloseKey;
end;
reg.Free;
OpenRegistry;
MainReg.WriteInteger( REGNAME_EDITOR_WIDTH, Width );
MainReg.WriteInteger( REGNAME_EDITOR_HEIGHT, Height );
end;
procedure TfrmBinEditor.FormShow(Sender: TObject);
begin
// Restore form dimensions
Width := Mainform.GetRegValue(REGNAME_EDITOR_WIDTH, DEFAULT_EDITOR_WIDTH);
Height := Mainform.GetRegValue(REGNAME_EDITOR_HEIGHT, DEFAULT_EDITOR_HEIGHT);
Width := GetRegValue(REGNAME_EDITOR_WIDTH, DEFAULT_EDITOR_WIDTH);
Height := GetRegValue(REGNAME_EDITOR_HEIGHT, DEFAULT_EDITOR_HEIGHT);
// Fix label position:
lblTextLength.Top := tlbStandard.Top + (tlbStandard.Height-lblTextLength.Height) div 2;
SetWindowSizeGrip(Handle, True);

View File

@ -4,7 +4,7 @@ interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CheckLst, ExtCtrls, Registry, TntCheckLst, WideStrings;
Dialogs, StdCtrls, CheckLst, ExtCtrls, TntCheckLst, WideStrings;
type
TColumnSelectionForm = class(TForm)
@ -65,7 +65,7 @@ begin
chklistColumnsClickCheck( Sender );
// Restore last used sorting state from registry
chkSort.Checked := Mainform.GetRegValue(REGNAME_SORTDISPLAYEDCOLUMNS, chkSort.Checked);
chkSort.Checked := GetRegValue(REGNAME_SORTDISPLAYEDCOLUMNS, chkSort.Checked);
end;

View File

@ -10,7 +10,7 @@ interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Registry, Buttons, ExtCtrls, ZPlainMySqlDriver,
StdCtrls, Buttons, ExtCtrls, ZPlainMySqlDriver,
PngSpeedButton, TntStdCtrls, ComCtrls, ToolWin;
type
@ -94,16 +94,12 @@ end;
// Connect
procedure Tconnform.ButtonConnectClick(Sender: TObject);
var
reg : TRegistry;
btn: TButton;
begin
Screen.Cursor := crHourglass;
// Save last connection name to registry
reg := TRegistry.Create;
if reg.OpenKey(REGPATH, true) then
reg.WriteString(REGNAME_LASTSESSION, ComboBoxDescription.Text);
reg.CloseKey;
reg.Free;
OpenRegistry;
MainReg.WriteString(REGNAME_LASTSESSION, ComboBoxDescription.Text);
btn := Sender as TButton;
btn.Enabled := false;
@ -140,20 +136,15 @@ var
i : Integer;
lastcon : String;
AutoReconnect : Boolean;
reg : TRegistry;
begin
Screen.Cursor := crHourglass;
ComboBoxDescription.Items.Clear;
ComboBoxDescription.Text := '';
reg := TRegistry.Create;
if reg.OpenKey(REGPATH + REGKEY_SESSIONS, true) then
begin
reg.GetKeyNames(ComboBoxDescription.Items);
reg.Free;
end;
lastcon := Mainform.GetRegValue(REGNAME_LASTSESSION, '');
AutoReconnect := Mainform.GetRegValue(REGNAME_AUTORECONNECT, DEFAULT_AUTORECONNECT);
if MainReg.OpenKey(REGPATH + REGKEY_SESSIONS, true) then
MainReg.GetKeyNames(ComboBoxDescription.Items);
lastcon := GetRegValue(REGNAME_LASTSESSION, '');
AutoReconnect := GetRegValue(REGNAME_AUTORECONNECT, DEFAULT_AUTORECONNECT);
if ComboBoxDescription.Items.Count > 0 then
begin
@ -206,22 +197,15 @@ procedure Tconnform.ButtonSaveClick(Sender: TObject);
begin
// save connection!
Screen.Cursor := crHourglass;
with TRegistry.Create do
begin
if OpenKey(REGPATH + REGKEY_SESSIONS + ComboBoxDescription.Text, true) then
begin
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, Utf8Encode(EditOnlyDBs.Text));
WriteBool(REGNAME_ONLYDBSSORTED, CheckBoxSorted.Checked);
CloseKey;
end;
Free;
end;
OpenRegistry(ComboBoxDescription.Text);
MainReg.WriteString(REGNAME_HOST, EditHost.Text);
MainReg.WriteString(REGNAME_USER, EditUsername.Text);
MainReg.WriteString(REGNAME_PASSWORD, encrypt(EditPassword.Text));
MainReg.WriteString(REGNAME_PORT, EditPort.Text);
MainReg.WriteString(REGNAME_TIMEOUT, EditTimeout.Text);
MainReg.WriteBool(REGNAME_COMPRESSED, CheckBoxCompressed.Checked);
MainReg.WriteString(REGNAME_ONLYDBS, Utf8Encode(EditOnlyDBs.Text));
MainReg.WriteBool(REGNAME_ONLYDBSSORTED, CheckBoxSorted.Checked);
ComboBoxDescriptionClick(self);
Screen.Cursor := crDefault;
end;
@ -233,18 +217,15 @@ var
description : String;
begin
// save new connection!
with TRegistry.Create do
begin
i := 0;
description := 'New Connection';
while KeyExists(REGPATH + REGKEY_SESSIONS + description) do
begin
while MainReg.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 + REGKEY_SESSIONS + description) then
if MainReg.KeyExists(REGPATH + REGKEY_SESSIONS + description) then
begin
MessageDlg('Entry "' + description + '" already exists!', mtError, [mbOK], 0);
exit;
@ -254,20 +235,15 @@ begin
ComboBoxDescription.Items.Add(description);
ComboBoxDescription.ItemIndex := ComboBoxDescription.Items.Count - 1;
if OpenKey(REGPATH + REGKEY_SESSIONS + ComboBoxDescription.Text, true) then
begin
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;
end;
OpenRegistry(ComboBoxDescription.Text);
MainReg.WriteString(REGNAME_HOST, DEFAULT_HOST);
MainReg.WriteString(REGNAME_USER, DEFAULT_USER);
MainReg.WriteString(REGNAME_PASSWORD, encrypt(DEFAULT_PASSWORD));
MainReg.WriteString(REGNAME_PORT, inttostr(DEFAULT_PORT));
MainReg.WriteString(REGNAME_TIMEOUT, inttostr(DEFAULT_TIMEOUT));
MainReg.WriteBool(REGNAME_COMPRESSED, DEFAULT_COMPRESSED);
MainReg.WriteString(REGNAME_ONLYDBS, '');
MainReg.WriteBool(REGNAME_ONLYDBSSORTED, DEFAULT_ONLYDBSSORTED);
EnableDisable(true);
@ -281,12 +257,8 @@ procedure Tconnform.ButtonDeleteClick(Sender: TObject);
begin
if MessageDlg('Delete Entry "' + ComboBoxDescription.Text + '" ?', mtConfirmation, [mbYes, mbCancel], 0) = mrYes then
begin
with TRegistry.Create do
begin
if not DeleteKey(REGPATH + REGKEY_SESSIONS + ComboBoxDescription.Text) then
if not MainReg.DeleteKey(REGPATH + REGKEY_SESSIONS + ComboBoxDescription.Text) then
MessageDlg('Error while deleting Key from Registry!', mtError, [mbOK], 0);
Free;
end;
FormShow(self);
end;
end;
@ -299,14 +271,14 @@ begin
// select one connection!
Screen.Cursor := crHourglass;
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 := Utf8Decode(Mainform.GetRegValue(REGNAME_ONLYDBS, '', sessname));
CheckBoxSorted.Checked := Mainform.GetRegValue(REGNAME_ONLYDBSSORTED, DEFAULT_ONLYDBSSORTED, sessname);
EditHost.Text := GetRegValue(REGNAME_HOST, '', sessname);
EditUsername.Text := GetRegValue(REGNAME_USER, '', sessname);
EditPassword.Text := decrypt(GetRegValue(REGNAME_PASSWORD, '', sessname));
EditPort.Text := GetRegValue(REGNAME_PORT, '', sessname);
EditTimeout.Text := GetRegValue(REGNAME_TIMEOUT, '', sessname);;
CheckBoxCompressed.Checked := GetRegValue(REGNAME_COMPRESSED, DEFAULT_COMPRESSED, sessname);
EditOnlyDBs.Text := Utf8Decode(GetRegValue(REGNAME_ONLYDBS, '', sessname));
CheckBoxSorted.Checked := GetRegValue(REGNAME_ONLYDBSSORTED, DEFAULT_ONLYDBSSORTED, sessname);
btnSave.Enabled := false;
ButtonSaveAndConnect.Enabled := btnSave.Enabled;
btnEditDesc.Enabled := ComboBoxDescription.ItemIndex > -1;
@ -373,18 +345,15 @@ begin
exit;
end;
with TRegistry.Create do begin
idx := ComboBoxDescription.ItemIndex;
try
MoveKey(REGPATH + REGKEY_SESSIONS + olddesc, REGPATH + REGKEY_SESSIONS + newdesc, true);
MainReg.MoveKey(REGPATH + REGKEY_SESSIONS + olddesc, REGPATH + REGKEY_SESSIONS + newdesc, true);
ComboBoxDescription.Items[ComboBoxDescription.ItemIndex] := newdesc;
ComboBoxDescription.ItemIndex := idx;
ComboBoxDescriptionClick(self);
except
MessageDLG('Error on renaming.', mtError, [mbCancel], 0);
end;
Free;
end;
end;

View File

@ -10,7 +10,7 @@ interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, CheckLst, ZDataSet, ComCtrls, Registry, WideStrings,
StdCtrls, Buttons, CheckLst, ZDataSet, ComCtrls, WideStrings,
TntStdCtrls, TntCheckLst;
type
@ -146,15 +146,15 @@ begin
restore last settings
@see feature #1647058
}
struc_data := mainform.GetRegValue( REGNAME_COPYTABLE_STRUCDATA, DEFAULT_COPYTABLE_STRUCDATA );
struc_data := GetRegValue( REGNAME_COPYTABLE_STRUCDATA, DEFAULT_COPYTABLE_STRUCDATA );
case struc_data of
REGVAL_COPYTABLE_STRUCTURE:
radioStructure.Checked := true;
REGVAL_COPYTABLE_STRUCTURE_AND_DATA:
radioStructureAndData.Checked := true;
end;
CheckBoxWithIndexes.Checked := mainform.GetRegValue( REGNAME_COPYTABLE_INDEXES, CheckBoxWithIndexes.Checked );
CheckBoxWithAllFields.Checked := mainform.GetRegValue( REGNAME_COPYTABLE_ALLFIELDS, CheckBoxWithAllFields.Checked );
CheckBoxWithIndexes.Checked := GetRegValue( REGNAME_COPYTABLE_INDEXES, CheckBoxWithIndexes.Checked );
CheckBoxWithAllFields.Checked := GetRegValue( REGNAME_COPYTABLE_ALLFIELDS, CheckBoxWithAllFields.Checked );
// Ensure CheckListBoxFields + chkSelectAll are en/disabled
CheckBoxWithAllFieldsClick(Sender);
// Ensure chkSelectAll shows its correct state
@ -172,7 +172,6 @@ var
zq : TDataSet;
isFulltext : Boolean;
struc_data : Byte;
reg : TRegistry;
begin
// copy table!
@ -180,14 +179,10 @@ begin
if radioStructure.Checked then struc_data := REGVAL_COPYTABLE_STRUCTURE
else struc_data := REGVAL_COPYTABLE_STRUCTURE_AND_DATA;
reg := TRegistry.Create;
if reg.OpenKey(REGPATH, False) then begin
reg.WriteInteger( REGNAME_COPYTABLE_STRUCDATA, struc_data );
reg.WriteBool( REGNAME_COPYTABLE_INDEXES, CheckBoxWithIndexes.Checked );
reg.WriteBool( REGNAME_COPYTABLE_ALLFIELDS, CheckBoxWithAllFields.Checked );
reg.CloseKey;
end;
reg.Free;
OpenRegistry;
MainReg.WriteInteger( REGNAME_COPYTABLE_STRUCDATA, struc_data );
MainReg.WriteBool( REGNAME_COPYTABLE_INDEXES, CheckBoxWithIndexes.Checked );
MainReg.WriteBool( REGNAME_COPYTABLE_ALLFIELDS, CheckBoxWithAllFields.Checked );
strquery := 'CREATE TABLE ' + mainform.mask(ComboSelectDatabase.Text) + '.' + mainform.mask(editNewTablename.Text) + ' ';

View File

@ -4,7 +4,7 @@ interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, db, Registry, SynEdit, SynMemo, TntStdCtrls;
Dialogs, StdCtrls, db, SynEdit, SynMemo, TntStdCtrls;
type
TCreateDatabaseForm = class(TForm)

View File

@ -119,8 +119,8 @@ begin
InheritFont(Font);
Width := Mainform.GetRegValue(REGNAME_CRTABLEWINWIDTH, Width);
Height := Mainform.GetRegValue(REGNAME_CRTABLEWINHEIGHT, Height);
Width := GetRegValue(REGNAME_CRTABLEWINWIDTH, Width);
Height := GetRegValue(REGNAME_CRTABLEWINHEIGHT, Height);
SetWindowSizeGrip(Handle, True);
try
@ -160,9 +160,9 @@ end;
procedure TCreateTableForm.FormDestroy(Sender: TObject);
begin
// Save window layout
Mainform.OpenRegistry;
Mainform.regmain.WriteInteger( REGNAME_CRTABLEWINWIDTH, Width );
Mainform.regmain.WriteInteger( REGNAME_CRTABLEWINHEIGHT, Height );
OpenRegistry;
MainReg.WriteInteger( REGNAME_CRTABLEWINWIDTH, Width );
MainReg.WriteInteger( REGNAME_CRTABLEWINHEIGHT, Height );
end;

View File

@ -4,7 +4,7 @@ interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Buttons, Registry,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Buttons,
WideStrings, TntStdCtrls, helpers;

View File

@ -4,7 +4,7 @@ interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry;
Dialogs, StdCtrls;
type
TFrmDataViewSave = class(TForm)
@ -28,7 +28,7 @@ implementation
{$R *.dfm}
uses main;
uses main, helpers;
procedure TFrmDataViewSave.FormCreate(Sender: TObject);
@ -52,27 +52,23 @@ end;
procedure TFrmDataViewSave.btnOKClick(Sender: TObject);
var
viewName, basekey, Sort: String;
reg: TRegistry;
i: Integer;
begin
// Save current view stuff to registry
Screen.Cursor := crHourglass;
viewName := comboSave.Text;
reg := TRegistry.Create;
basekey := Mainform.GetRegKeyTable + '\' + REGPREFIX_DATAVIEW + viewName;
if reg.OpenKey(basekey, True) then begin
reg.WriteString(REGNAME_DISPLAYEDCOLUMNS, Utf8Encode(Mainform.FDataGridSelect.DelimitedText));
reg.WriteString(REGNAME_FILTER, Utf8Encode(Mainform.SynMemoFilter.Text));
if MainReg.OpenKey(basekey, True) then begin
MainReg.WriteString(REGNAME_DISPLAYEDCOLUMNS, Utf8Encode(Mainform.FDataGridSelect.DelimitedText));
MainReg.WriteString(REGNAME_FILTER, Utf8Encode(Mainform.SynMemoFilter.Text));
for i := 0 to High(Mainform.FDataGridSort) do
Sort := Sort + IntToStr(Mainform.FDataGridSort[i].SortDirection) + '_' + Mainform.FDataGridSort[i].ColumnName + REGDELIM;
reg.WriteString(REGNAME_SORT, Utf8Encode(Sort));
MainReg.WriteString(REGNAME_SORT, Utf8Encode(Sort));
if chkDefault.Checked then begin
reg.OpenKey(Mainform.GetRegKeyTable, False);
reg.WriteString(REGNAME_DEFAULTVIEW, viewName);
MainReg.OpenKey(Mainform.GetRegKeyTable, False);
MainReg.WriteString(REGNAME_DEFAULTVIEW, viewName);
end;
reg.CloseKey;
end;
FreeAndNil(reg);
Screen.Cursor := crDefault;
end;

View File

@ -23,7 +23,6 @@ uses
CheckLst,
Buttons,
comctrls,
Registry,
ToolWin,
DB,
SynEdit,
@ -234,17 +233,17 @@ begin
// Read options
// 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);
cbxStructure.Checked := GetRegValue(REGNAME_EXP_STRUCTURE, cbxStructure.Checked);
cbxDatabase.Checked := GetRegValue(REGNAME_EXP_CREATEDB, cbxDatabase.Checked);
cbxTables.Checked := GetRegValue(REGNAME_EXP_CREATETABLE, cbxTables.Checked);
cbxData.Checked := GetRegValue(REGNAME_EXP_DATA, cbxData.Checked);
comboDatabase.ItemIndex := GetRegValue(REGNAME_EXP_DBHOW, comboDatabase.ItemIndex);
comboTables.ItemIndex := GetRegValue(REGNAME_EXP_TABLESHOW, comboTables.ItemIndex);
comboData.ItemIndex := GetRegValue(REGNAME_EXP_DATAHOW, comboData.ItemIndex);
comboTargetCompat.ItemIndex := GetRegValue(REGNAME_EXP_COMPAT, comboTargetCompat.ItemIndex);
editFileName.Text := GetRegValue(REGNAME_EXP_OUTFILE, '');
editDirectory.Text := GetRegValue(REGNAME_EXP_OUTDIR, '');
OutputTo := GetRegValue(REGNAME_EXP_TARGET, -1);
if OutputTo > -1 then
begin
@ -274,8 +273,8 @@ begin
OUTPUT_HOST : radioOtherHost.Checked := true;
end;
end;
Width := Mainform.GetRegValue(REGNAME_EXP_WINWIDTH, Width);
Height := Mainform.GetRegValue(REGNAME_EXP_WINHEIGHT, Height);
Width := GetRegValue(REGNAME_EXP_WINWIDTH, Width);
Height := GetRegValue(REGNAME_EXP_WINHEIGHT, Height);
if EditFileName.Text = '' then
EditFileName.Text := ExtractFilePath(paramstr(0)) + 'export.sql';
@ -1251,7 +1250,7 @@ begin
comboOtherDatabase.Items := comboSelectDatabase.Items;
comboOtherDatabase.Items.delete(comboSelectDatabase.ItemIndex);
if comboOtherDatabase.ItemIndex = -1 then begin
lastdb := Utf8Decode(Mainform.GetRegValue(REGNAME_EXP_DESTDB, ''));
lastdb := Utf8Decode(GetRegValue(REGNAME_EXP_DESTDB, ''));
comboOtherDatabase.ItemIndex := comboOtherDatabase.Items.IndexOf(lastdb);
end;
if (comboOtherDatabase.ItemIndex = -1) and (comboOtherDatabase.Items.Count > 0) then
@ -1534,9 +1533,8 @@ procedure TExportSQLForm.SaveSettings;
var
OutputTo : Byte;
begin
with TRegistry.Create do
begin
OpenKey(REGPATH, true);
OpenRegistry;
with MainReg do begin
// WithUseDB, UseBackticks, CompleteInserts, WithDropTable: deprecated (currently not automagically removed)
WriteBool(REGNAME_EXP_STRUCTURE, cbxStructure.Checked);
WriteBool(REGNAME_EXP_CREATEDB, cbxDatabase.Checked);
@ -1559,8 +1557,6 @@ begin
WriteString(REGNAME_EXP_DESTDB, Utf8Encode(comboOtherDatabase.Text));
WriteInteger(REGNAME_EXP_WINWIDTH, Width );
WriteInteger(REGNAME_EXP_WINHEIGHT, Height );
CloseKey();
Free;
end;
end;

View File

@ -11,7 +11,7 @@ interface
uses Classes, SysUtils, Graphics, db, clipbrd, dialogs,
forms, controls, ShellApi, checklst, windows, ZDataset, ZAbstractDataset,
shlobj, ActiveX, WideStrUtils, VirtualTrees, SynRegExpr, Messages, WideStrings,
TntCheckLst;
TntCheckLst, Registry;
type
@ -179,9 +179,14 @@ type
procedure FixVT(VT: TVirtualStringTree);
function ColorAdjustBrightness(Col: TColor; ShiftPercent: ShortInt): TColor;
function ComposeOrderClause(Cols: TOrderColArray): WideString;
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;
var
MYSQL_KEYWORDS : TStringList;
MainReg : TRegistry;
implementation
@ -2785,6 +2790,65 @@ begin
end;
{**
Init main registry object and open desired key
Outsoureced from GetRegValue() to avoid redundant code
in these 3 overloaded methods.
}
procedure OpenRegistry(Session: String = '');
var
folder : String;
begin
if MainReg = nil then
MainReg := TRegistry.Create;
folder := REGPATH;
if Session <> '' then
folder := folder + REGKEY_SESSIONS + Session;
if MainReg.CurrentPath <> folder then
MainReg.OpenKey(folder, true);
end;
{**
Read a numeric preference value from registry
}
function GetRegValue( valueName: String; defaultValue: Integer; Session: String = '' ) : Integer;
begin
result := defaultValue;
OpenRegistry(Session);
if MainReg.ValueExists( valueName ) then
result := MainReg.ReadInteger( valueName );
end;
{***
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 GetRegValue( valueName: String; defaultValue: Boolean; Session: String = '' ) : Boolean;
begin
result := defaultValue;
OpenRegistry(Session);
if MainReg.ValueExists( valueName ) then
result := MainReg.ReadBool( valueName );
end;
{***
Read a text preference value from registry
}
function GetRegValue( valueName: String; defaultValue: String; Session: String = '' ) : String;
begin
result := defaultValue;
OpenRegistry(Session);
if MainReg.ValueExists( valueName ) then
result := MainReg.ReadString( valueName );
end;
initialization

View File

@ -10,7 +10,7 @@ interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, comctrls, Buttons, CheckLst, Registry, PngSpeedButton,
StdCtrls, ExtCtrls, comctrls, Buttons, CheckLst, PngSpeedButton,
WideStrings, TntCheckLst, TntStdCtrls, db, SynRegExpr;
type
@ -120,18 +120,18 @@ begin
comboDatabaseChange(self);
// filename
editFilename.Text := Mainform.GetRegValue(REGNAME_CSV_FILENAME, '');
editFilename.Text := 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);
editFieldTerminator.Text := GetRegValue(REGNAME_CSV_SEPARATOR, DEFAULT_CSV_SEPARATOR);
editFieldEncloser.Text := GetRegValue(REGNAME_CSV_ENCLOSER, DEFAULT_CSV_ENCLOSER);
editLineTerminator.Text := 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);
chkFieldsEnclosedOptionally.Checked := GetRegValue(REGNAME_CSV_ENCLOPTION, chkFieldsEnclosedOptionally.Checked);
editFieldEscaper.Text := GetRegValue(REGNAME_CSV_ESCAPER, editFieldEscaper.Text);
updownIgnoreLines.Position := GetRegValue(REGNAME_CSV_IGNORELINES, updownIgnoreLines.Position);
chkLowPriority.Checked := GetRegValue(REGNAME_CSV_LOWPRIO, chkLowPriority.Checked);
chkReplace.Checked := GetRegValue(REGNAME_CSV_REPLACE, chkReplace.Checked);
chkIgnore.Checked := GetRegValue(REGNAME_CSV_IGNORE, chkIgnore.Checked);
end;
@ -226,7 +226,6 @@ var
query : WideString;
col : TWideStringList;
i : Integer;
reg : TRegistry;
// Correctly escape field-terminator, line-terminator or encloser
// and take care of already escaped characters like \t
@ -238,24 +237,20 @@ var
begin
// Save settings
reg := TRegistry.Create;
if reg.OpenKey(REGPATH, true) then
begin
OpenRegistry;
// filename
reg.WriteString( REGNAME_CSV_FILENAME, editFilename.Text );
MainReg.WriteString( REGNAME_CSV_FILENAME, editFilename.Text );
// Use options from CSV export
reg.WriteString( REGNAME_CSV_SEPARATOR, editFieldTerminator.Text );
reg.WriteString( REGNAME_CSV_ENCLOSER, editFieldEncloser.Text );
reg.WriteString( REGNAME_CSV_TERMINATOR, editLineTerminator.Text );
MainReg.WriteString( REGNAME_CSV_SEPARATOR, editFieldTerminator.Text );
MainReg.WriteString( REGNAME_CSV_ENCLOSER, editFieldEncloser.Text );
MainReg.WriteString( REGNAME_CSV_TERMINATOR, editLineTerminator.Text );
// Other options
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);
MainReg.WriteBool( REGNAME_CSV_ENCLOPTION, chkFieldsEnclosedOptionally.Checked );
MainReg.WriteString( REGNAME_CSV_ESCAPER, editFieldEscaper.Text );
MainReg.WriteInteger( REGNAME_CSV_IGNORELINES, updownIgnoreLines.Position );
MainReg.WriteBool( REGNAME_CSV_LOWPRIO, chkLowPriority.Checked );
MainReg.WriteBool( REGNAME_CSV_REPLACE, chkReplace.Checked );
MainReg.WriteBool( REGNAME_CSV_IGNORE, chkIgnore.Checked );
query := 'LOAD DATA ';

View File

@ -14,7 +14,7 @@ uses
Communication,
Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
ActnList, ImgList, Registry, ShellApi, ToolWin, Clipbrd, db,
ActnList, ImgList, ShellApi, ToolWin, Clipbrd, db,
SynMemo, synedit, SynEditTypes, ZDataSet, ZSqlProcessor,
HeidiComp, sqlhelp, MysqlQueryThread, VirtualTrees,
DateUtils, PngImageList, OptimizeTables, View, Usermanager,
@ -780,7 +780,6 @@ type
procedure FocusGridCol(Grid: TBaseVirtualTree; Column: TColumnIndex);
public
virtualDesktopName: string;
regMain : TRegistry;
MaintenanceForm: TOptimize;
ViewForm: TfrmView;
UserManagerForm: TUserManagerForm;
@ -843,16 +842,12 @@ type
DataGridCurrentSort : WideString;
property Delimiter: String read FDelimiter write SetDelimiter;
procedure OpenRegistry(Session: String = '');
procedure CallSQLHelpWithKeyword( keyword: String );
procedure AddOrRemoveFromQueryLoadHistory( filename: String;
AddIt: Boolean = true; CheckIfFileExists: Boolean = true );
procedure popupQueryLoadClick( sender: TObject );
procedure FillPopupQueryLoad;
procedure PopupQueryLoadRemoveAbsentFiles( sender: TObject );
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 InitConnection(parHost, parPort, parUser, parPass, parDatabase, parTimeout, parCompress, parSortDatabases, parDescription: WideString): Boolean;
//procedure HandleQueryNotification(ASender : TMysqlQuery; AEvent : Integer);
function GetVisualDataset: PGridResult;
@ -1057,7 +1052,8 @@ procedure TMainForm.saveWindowConfig;
var
ws: String;
begin
with TRegistry.Create do begin
OpenRegistry;
with MainReg do begin
if OpenKey(REGPATH + virtualDesktopName + '\', True) then begin
// Convert set to string.
if WindowState = wsNormal then ws := 'Normal' else
@ -1073,8 +1069,6 @@ begin
WriteInteger(REGNAME_WINDOWWIDTH, Width);
WriteInteger(REGNAME_WINDOWHEIGHT, Height);
end;
CloseKey;
Free;
end;
end;
@ -1083,7 +1077,8 @@ var
ws: String;
begin
// Called on application start or when monitor configuration has changed.
with TRegistry.Create do begin
OpenRegistry;
with MainReg do begin
if not OpenKey(REGPATH + virtualDesktopName + '\', False) then begin
// Switch to default configuration if nothing was stored.
setDefaultWindowConfig;
@ -1158,7 +1153,6 @@ procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
var
filename : String;
buffer : array[0..MAX_PATH] of char;
reg: TRegistry;
begin
// Post pending UPDATE
if DataGridHasChanges then
@ -1184,26 +1178,24 @@ begin
FreeAndNil(SqlMessages);
LeaveCriticalSection(SqlMessagesLock);
reg := TRegistry.Create();
if reg.OpenKey( REGPATH, true ) then
begin
OpenRegistry;
// Position of Toolbars
reg.WriteInteger(REGNAME_TOOLBAR2LEFT, ToolBarStandard.Left);
reg.WriteInteger(REGNAME_TOOLBAR2TOP, ToolBarStandard.Top);
reg.WriteInteger(REGNAME_TOOLBARDBLEFT, ToolBarDatabase.Left);
reg.WriteInteger(REGNAME_TOOLBARDBTOP, ToolBarDatabase.Top);
reg.WriteInteger(REGNAME_TOOLBARDATALEFT, ToolBarData.Left);
reg.WriteInteger(REGNAME_TOOLBARDATATOP, ToolBarData.Top);
reg.WriteInteger(REGNAME_TOOLBARQUERYLEFT, ToolBarQuery.Left);
reg.WriteInteger(REGNAME_TOOLBARQUERYTOP, ToolBarQuery.Top);
MainReg.WriteInteger(REGNAME_TOOLBAR2LEFT, ToolBarStandard.Left);
MainReg.WriteInteger(REGNAME_TOOLBAR2TOP, ToolBarStandard.Top);
MainReg.WriteInteger(REGNAME_TOOLBARDBLEFT, ToolBarDatabase.Left);
MainReg.WriteInteger(REGNAME_TOOLBARDBTOP, ToolBarDatabase.Top);
MainReg.WriteInteger(REGNAME_TOOLBARDATALEFT, ToolBarData.Left);
MainReg.WriteInteger(REGNAME_TOOLBARDATATOP, ToolBarData.Top);
MainReg.WriteInteger(REGNAME_TOOLBARQUERYLEFT, ToolBarQuery.Left);
MainReg.WriteInteger(REGNAME_TOOLBARQUERYTOP, ToolBarQuery.Top);
// Save delimiter
reg.WriteString( REGNAME_DELIMITER, Delimiter );
MainReg.WriteString( REGNAME_DELIMITER, Delimiter );
reg.WriteInteger( REGNAME_QUERYMEMOHEIGHT, pnlQueryMemo.Height );
reg.WriteInteger( REGNAME_QUERYHELPERSWIDTH, pnlQueryHelpers.Width );
reg.WriteInteger( REGNAME_DBTREEWIDTH, DBtree.width );
reg.WriteInteger( REGNAME_SQLOUTHEIGHT, SynMemoSQLLog.Height );
MainReg.WriteInteger( REGNAME_QUERYMEMOHEIGHT, pnlQueryMemo.Height );
MainReg.WriteInteger( REGNAME_QUERYHELPERSWIDTH, pnlQueryHelpers.Width );
MainReg.WriteInteger( REGNAME_DBTREEWIDTH, DBtree.width );
MainReg.WriteInteger( REGNAME_SQLOUTHEIGHT, SynMemoSQLLog.Height );
// Save width of probably resized columns of all VirtualTrees
SaveListSetup(ListVariables);
@ -1215,10 +1207,8 @@ begin
// Open server-specific registry-folder.
// relative from already opened folder!
reg.OpenKey( REGKEY_SESSIONS + FConn.Description, true );
reg.WriteString( REGNAME_LASTUSEDDB, Utf8Encode(ActiveDatabase) );
end;
FreeAndNil(reg);
OpenRegistry(FConn.Description);
MainReg.WriteString( REGNAME_LASTUSEDDB, Utf8Encode(ActiveDatabase) );
// Clear database and table lists
DBtree.Clear;
@ -1252,9 +1242,9 @@ begin
deletefile(filename+'gif');
if FileExists(filename+'bmp') then
deletefile(filename+'bmp');
if regMain <> nil then begin
regMain.CloseKey;
regMain.Free;
if MainReg <> nil then begin
MainReg.CloseKey;
MainReg.Free;
end;
end;
@ -1365,7 +1355,6 @@ var
sValue,
parHost, parPort, parUser, parPass, parDatabase,
parTimeout, parCompress, parSortDatabases, parDescription : String;
reg : TRegistry;
LastUpdatecheck : TDateTime;
UpdatecheckInterval : Integer;
DefaultLastrunDate : String;
@ -1438,19 +1427,16 @@ begin
parDescription) then
begin
// Save session parameters to registry
reg := TRegistry.Create;
if reg.OpenKey(REGPATH + REGKEY_SESSIONS + parDescription, true) then
if MainReg.OpenKey(REGPATH + REGKEY_SESSIONS + parDescription, true) then
begin
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;
MainReg.WriteString(REGNAME_HOST, parHost);
MainReg.WriteString(REGNAME_USER, parUser);
MainReg.WriteString(REGNAME_PASSWORD, encrypt(parPass));
MainReg.WriteString(REGNAME_PORT, parPort);
MainReg.WriteString(REGNAME_TIMEOUT, parTimeout);
MainReg.WriteBool(REGNAME_COMPRESSED, Boolean(StrToIntDef(parCompress, 0)) );
MainReg.WriteString(REGNAME_ONLYDBS, parDatabase);
MainReg.WriteBool(REGNAME_ONLYDBSSORTED, Boolean(StrToIntDef(parSortDatabases, 0)) );
end;
DataGridHasChanges := False;
@ -1493,15 +1479,8 @@ begin
if DatabasesWanted.Count > 0 then
begin
DatabasesWanted.Add( newdb );
with TRegistry.Create do
begin
if OpenKey(REGPATH + REGKEY_SESSIONS + Conn.Description, false) then
begin
WriteString( 'OnlyDBs', ImplodeStr( ';', DatabasesWanted ) );
CloseKey;
end;
Free;
end;
OpenRegistry(Conn.Description);
MainReg.WriteString( 'OnlyDBs', ImplodeStr( ';', DatabasesWanted ) );
end;
// reload db nodes and switch to new one
RefreshTree(False, newdb);
@ -2056,65 +2035,6 @@ begin
end;
{**
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
folder : String;
begin
if regMain = nil then
regMain := TRegistry.Create;
folder := REGPATH;
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;
{***
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; Session: String = '' ) : Boolean;
begin
result := defaultValue;
OpenRegistry(Session);
if regMain.ValueExists( valueName ) then
result := regMain.ReadBool( valueName );
end;
{***
Read a text preference value from registry
}
function TMainForm.GetRegValue( valueName: String; defaultValue: String; Session: String = '' ) : String;
begin
result := defaultValue;
OpenRegistry(Session);
if regMain.ValueExists( valueName ) then
result := regMain.ReadString( valueName );
end;
{**
Parse commandline for a specific name=value pair
@ -2175,7 +2095,6 @@ var
miFunction,
miFilterFunction : TMenuItem;
functioncats : TStringList;
reg : TRegistry;
begin
// fill structure
ZeroMemory (@FConn,SizeOf(FConn));
@ -2228,11 +2147,8 @@ begin
// in case of unexpected application-termination
AutoReconnect := 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);
OpenRegistry;
MainReg.WriteBool( REGNAME_AUTORECONNECT, False );
end;
ReadWindowOptions();
@ -2262,11 +2178,8 @@ begin
// Re-enable AutoReconnect in Registry!
if AutoReconnect then begin
reg := TRegistry.Create;
reg.OpenKey( REGPATH, true );
reg.WriteBool( REGNAME_AUTORECONNECT, true );
reg.CloseKey;
FreeAndNil(reg);
OpenRegistry;
MainReg.WriteBool( REGNAME_AUTORECONNECT, true );
end;
// Define window properties
@ -2541,13 +2454,8 @@ begin
ClearDbTableList(db);
if DatabasesWanted.IndexOf(db) > -1 then begin
DatabasesWanted.Delete( DatabasesWanted.IndexOf(db) );
with TRegistry.Create do begin
if OpenKey(REGPATH + REGKEY_SESSIONS + Conn.Description, false) then begin
WriteString( 'OnlyDBs', ImplodeStr( ';', DatabasesWanted ) );
CloseKey;
end;
Free;
end;
OpenRegistry(Conn.Description);
MainReg.WriteString( 'OnlyDBs', ImplodeStr( ';', DatabasesWanted ) );
end;
DBtree.Selected[DBtree.GetFirst] := true;
RefreshTree(False);
@ -2887,16 +2795,14 @@ procedure TMainform.AddOrRemoveFromQueryLoadHistory( filename: String; AddIt: Bo
var
i : Integer;
Values, newfilelist : TStringList;
reg : TRegistry;
savedfilename : String;
begin
// Add or remove filename to/from history, avoiding duplicates
reg := TRegistry.Create;
reg.openkey(REGPATH, true);
newfilelist := TStringList.create;
Values := TStringList.create;
reg.GetValueNames( Values );
OpenRegistry;
MainReg.GetValueNames( Values );
// Add new filename
if AddIt then
@ -2907,7 +2813,7 @@ begin
if Pos( 'SQLFile', Values[i] ) <> 1 then
continue;
savedfilename := GetRegValue( Values[i], '' );
reg.DeleteValue( Values[i] );
MainReg.DeleteValue( Values[i] );
if CheckIfFileExists and (not FileExists( savedfilename )) then
continue;
if (savedfilename <> filename) and (newfilelist.IndexOf(savedfilename)=-1) then
@ -2918,10 +2824,8 @@ begin
for i := 0 to newfilelist.Count-1 do begin
if i >= 20 then
break;
reg.WriteString( 'SQLFile'+IntToStr(i), newfilelist[i] );
MainReg.WriteString( 'SQLFile'+IntToStr(i), newfilelist[i] );
end;
reg.Free;
end;
@ -3057,7 +2961,7 @@ begin
if cs.Execute then begin
DBtree.Color := cs.Dialog.Color;
OpenRegistry(SessionName);
regmain.WriteInteger(REGNAME_TREEBACKGROUND, cs.Dialog.Color);
MainReg.WriteInteger(REGNAME_TREEBACKGROUND, cs.Dialog.Color);
end;
end;
@ -3430,7 +3334,6 @@ var
rx : TRegExpr;
ColType : String;
ColExists, ShowIt : Boolean;
reg : TRegistry;
procedure InitColumn(name: WideString; ColType: String; Visible: Boolean);
var
@ -3552,22 +3455,20 @@ begin
SynMemoFilter.Clear;
SetLength(FDataGridSort, 0);
// Load default view settings
reg := TRegistry.Create;
if reg.OpenKey(GetRegKeyTable, False) then begin
if reg.ValueExists(REGNAME_DEFAULTVIEW) then begin
OpenRegistry;
if MainReg.OpenKey(GetRegKeyTable, False) then begin
if MainReg.ValueExists(REGNAME_DEFAULTVIEW) then begin
// Disable default if crash indicator on current table is found
if reg.ValueExists(REGPREFIX_CRASH_IN_DATA) then begin
reg.DeleteValue(REGNAME_DEFAULTVIEW);
if MainReg.ValueExists(REGPREFIX_CRASH_IN_DATA) then begin
MainReg.DeleteValue(REGNAME_DEFAULTVIEW);
LogSQL('A crash in the previous data loading for this table ('+SelectedTable+') was detected. Filtering was automatically reset to avoid the same crash for now.');
// Reset crash indicator.
reg.DeleteValue(REGPREFIX_CRASH_IN_DATA);
MainReg.DeleteValue(REGPREFIX_CRASH_IN_DATA);
end else begin
LoadDataView(reg.ReadString(REGNAME_DEFAULTVIEW));
LoadDataView(MainReg.ReadString(REGNAME_DEFAULTVIEW));
end;
end;
end;
reg.CloseKey;
reg.Free;
end;
FillDataViewPopup;
@ -6701,11 +6602,7 @@ procedure TMainForm.SaveListSetup( List: TVirtualStringTree );
var
i : Byte;
ColWidths, ColsVisible, ColPos : String;
reg : TRegistry;
begin
reg := TRegistry.Create;
reg.OpenKey( REGPATH, true );
ColWidths := '';
ColsVisible := '';
ColPos := '';
@ -6730,10 +6627,10 @@ begin
ColPos := ColPos + IntToStr(List.Header.Columns[i].Position);
end;
reg.WriteString( REGPREFIX_COLWIDTHS + List.Name, ColWidths );
reg.WriteString( REGPREFIX_COLSVISIBLE + List.Name, ColsVisible );
reg.WriteString( REGPREFIX_COLPOS + List.Name, ColPos );
FreeAndNil(reg);
OpenRegistry;
MainReg.WriteString( REGPREFIX_COLWIDTHS + List.Name, ColWidths );
MainReg.WriteString( REGPREFIX_COLSVISIBLE + List.Name, ColsVisible );
MainReg.WriteString( REGPREFIX_COLPOS + List.Name, ColPos );
end;
@ -6900,7 +6797,6 @@ end;
}
procedure TMainForm.menuLogToFileClick(Sender: TObject);
var
reg : TRegistry;
OldprefLogToFile: Boolean;
begin
OldprefLogToFile := prefLogToFile;
@ -6912,10 +6808,8 @@ begin
// Save option
if prefLogToFile <> OldprefLogToFile then
begin
reg := TRegistry.Create;
reg.OpenKey(REGPATH, true);
reg.WriteBool('LogToFile', prefLogToFile);
reg.Free;
OpenRegistry;
MainReg.WriteBool('LogToFile', prefLogToFile);
end;
end;
@ -7734,7 +7628,6 @@ var
query: WideString;
ds: TDataSet;
i, j: LongInt;
reg: TRegistry;
regCrashIndicName: String;
begin
if Sender = DataGrid then res := @FDataGridResult
@ -7749,10 +7642,9 @@ begin
query := query + WideFormat(' LIMIT %d, %d', [start, limit]);
// Set indicator for possibly crashing query
reg := TRegistry.Create;
reg.OpenKey( REGPATH + REGKEY_SESSIONS + FConn.Description, true );
OpenRegistry(FConn.Description);
regCrashIndicName := Utf8Encode(REGPREFIX_CRASH_IN_DATA + ActiveDatabase + '.' + SelectedTable);
reg.WriteBool(regCrashIndicName, True);
MainReg.WriteBool(regCrashIndicName, True);
// start query
ShowStatus('Retrieving data...');
@ -7766,9 +7658,7 @@ begin
debug(Format('mem: loaded data chunk from row %d to %d', [start, limit]));
// Query was completed successfully. Reset crash indicator.
reg.DeleteValue(regCrashIndicName);
reg.CloseKey;
reg.Free;
MainReg.DeleteValue(regCrashIndicName);
// fill in data
ShowStatus('Filling grid with record-data...');
@ -8549,7 +8439,6 @@ end;
procedure TMainForm.menuShowSizeColumnClick(Sender: TObject);
var
reg: TRegistry;
NewVal: Boolean;
begin
NewVal := not TMenuItem(Sender).Checked;
@ -8558,11 +8447,8 @@ begin
DBtree.Header.Columns[1].Options := DBtree.Header.Columns[1].Options + [coVisible]
else
DBtree.Header.Columns[1].Options := DBtree.Header.Columns[1].Options - [coVisible];
reg := TRegistry.Create;
reg.OpenKey(REGPATH, true);
reg.WriteBool(REGNAME_SIZECOL_TREE, NewVal);
reg.CloseKey;
FreeAndNil(reg);
OpenRegistry;
MainReg.WriteBool(REGNAME_SIZECOL_TREE, NewVal);
end;
@ -8666,7 +8552,6 @@ var
i: Integer;
DataViews: TStringList;
mi: TMenuItem;
reg: TRegistry;
begin
// Load all view names into popupmenu
for i := popupDataView.Items.Count-1 downto 0 do begin
@ -8676,15 +8561,13 @@ begin
end;
// Unhide "Load xyz by default" item if default is set
menuViewDefault.Visible := False;
reg := TRegistry.Create;
if reg.OpenKey(GetRegKeyTable, False) then begin
if reg.ValueExists(REGNAME_DEFAULTVIEW) then begin
menuViewDefault.Caption := 'Load view "'+reg.ReadString(REGNAME_DEFAULTVIEW)+'" by default';
OpenRegistry;
if MainReg.OpenKey(GetRegKeyTable, False) then begin
if MainReg.ValueExists(REGNAME_DEFAULTVIEW) then begin
menuViewDefault.Caption := 'Load view "'+MainReg.ReadString(REGNAME_DEFAULTVIEW)+'" by default';
menuViewDefault.Visible := True;
end;
end;
reg.CloseKey;
reg.Free;
// Add views
DataViews := TStringList.Create;
GetDataViews(DataViews);
@ -8712,18 +8595,15 @@ end;
procedure TMainForm.GetDataViews(List: TStrings);
var
reg: TRegistry;
i: Integer;
begin
// Load all view names into popupmenu
reg := TRegistry.Create;
if reg.OpenKey(GetRegKeyTable, False) then begin
reg.GetKeyNames(List);
OpenRegistry;
if MainReg.OpenKey(GetRegKeyTable, False) then begin
MainReg.GetKeyNames(List);
for i := 0 to List.Count - 1 do
List[i] := Copy(List[i], Length(REGPREFIX_DATAVIEW)+1, Length(List[i]));
reg.CloseKey;
end;
FreeAndNil(reg);
end;
@ -8739,17 +8619,13 @@ end;
procedure TMainForm.menuViewDefaultClick(Sender: TObject);
var
reg: TRegistry;
begin
menuViewDefault.Visible := False;
reg := TRegistry.Create;
if reg.OpenKey(GetRegKeyTable, False) then begin
if reg.ValueExists(REGNAME_DEFAULTVIEW) then
reg.DeleteValue(REGNAME_DEFAULTVIEW)
OpenRegistry;
if MainReg.OpenKey(GetRegKeyTable, False) then begin
if MainReg.ValueExists(REGNAME_DEFAULTVIEW) then
MainReg.DeleteValue(REGNAME_DEFAULTVIEW)
end;
reg.CloseKey;
reg.Free;
end;
@ -8762,16 +8638,15 @@ end;
procedure TMainForm.LoadDataView(ViewName: String);
var
reg: TRegistry;
rx: TRegExpr;
idx: Integer;
begin
reg := TRegistry.Create;
if reg.OpenKey(GetRegKeyTable + '\' + REGPREFIX_DATAVIEW + ViewName, False) then begin
OpenRegistry;
if MainReg.OpenKey(GetRegKeyTable + '\' + REGPREFIX_DATAVIEW + ViewName, False) then begin
// Columns
FDataGridSelect.DelimitedText := Utf8Decode(reg.ReadString(REGNAME_DISPLAYEDCOLUMNS));
FDataGridSelect.DelimitedText := Utf8Decode(MainReg.ReadString(REGNAME_DISPLAYEDCOLUMNS));
// Filter
SynMemoFilter.Text := Utf8Decode(reg.ReadString(REGNAME_FILTER));
SynMemoFilter.Text := Utf8Decode(MainReg.ReadString(REGNAME_FILTER));
if SynMemoFilter.GetTextLen > 0 then
ToggleFilterPanel(True);
// Sort
@ -8779,7 +8654,7 @@ begin
rx := TRegExpr.Create;
rx.Expression := '\b(\d)_(.+)\'+REGDELIM;
rx.ModifierG := False;
if rx.Exec(Utf8Decode(reg.ReadString(REGNAME_SORT))) then while true do begin
if rx.Exec(Utf8Decode(MainReg.ReadString(REGNAME_SORT))) then while true do begin
idx := Length(FDataGridSort);
SetLength(FDataGridSort, idx+1);
FDataGridSort[idx] := TOrderCol.Create;

View File

@ -10,7 +10,7 @@ interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, CheckLst, comctrls, Buttons, ToolWin, Db, Registry,
ExtCtrls, StdCtrls, CheckLst, comctrls, Buttons, ToolWin, Db,
WideStrings, TntCheckLst, TntStdCtrls, WideStrUtils;
type
@ -67,8 +67,8 @@ uses helpers, main;
}
procedure Toptimize.FormCreate(Sender: TObject);
begin
Width := Mainform.GetRegValue(REGNAME_MAINTWINWIDTH, Width);
Height := Mainform.GetRegValue(REGNAME_MAINTWINHEIGHT, Height);
Width := GetRegValue(REGNAME_MAINTWINWIDTH, Width);
Height := GetRegValue(REGNAME_MAINTWINHEIGHT, Height);
SetWindowSizeGrip( Self.Handle, True );
InheritFont(Font);
end;
@ -78,16 +78,10 @@ end;
FormDestroy: Save GUI setup
}
procedure Toptimize.FormDestroy(Sender: TObject);
var
reg : TRegistry;
begin
reg := TRegistry.Create;
if reg.OpenKey(REGPATH, False) then begin
reg.WriteInteger( REGNAME_MAINTWINWIDTH, Width );
reg.WriteInteger( REGNAME_MAINTWINHEIGHT, Height );
reg.CloseKey;
end;
reg.Free;
OpenRegistry;
MainReg.WriteInteger( REGNAME_MAINTWINWIDTH, Width );
MainReg.WriteInteger( REGNAME_MAINTWINHEIGHT, Height );
Close;
end;

View File

@ -10,7 +10,7 @@ interface
uses
Windows, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Registry, ExtCtrls, SynEditHighlighter, SynHighlighterSQL,
StdCtrls, ComCtrls, ExtCtrls, SynEditHighlighter, SynHighlighterSQL,
SynEdit, SynMemo;
type
@ -164,63 +164,56 @@ end;
Apply settings to registry and mainform
}
procedure Toptionsform.Apply(Sender: TObject);
var
reg : TRegistry;
begin
Screen.Cursor := crHourGlass;
// Open registry key
reg := TRegistry.Create;
reg.OpenKey(REGPATH, true);
OpenRegistry;
// Save values
reg.WriteBool(REGNAME_AUTORECONNECT, chkAutoReconnect.Checked);
reg.WriteBool(REGNAME_RESTORELASTUSEDDB, chkRestoreLastDB.Checked);
reg.WriteString(REGNAME_FONTNAME, comboSQLFontName.Text);
reg.WriteInteger(REGNAME_FONTSIZE, updownSQLFontSize.Position);
reg.WriteInteger(REGNAME_LOGSQLNUM, updownLogLines.Position);
reg.WriteInteger(REGNAME_LOGSQLWIDTH, updownLogSnip.Position);
reg.WriteString(REGNAME_SQLCOLKEYATTRI, colortostring(SynSQLSynSQLSample.KeyAttri.Foreground));
reg.WriteString(REGNAME_SQLCOLFUNCTIONATTRI, colortostring(SynSQLSynSQLSample.FunctionAttri.Foreground));
reg.WriteString(REGNAME_SQLCOLDATATYPEATTRI, colortostring(SynSQLSynSQLSample.DataTypeAttri.Foreground));
reg.WriteString(REGNAME_SQLCOLNUMBERATTRI, colortostring(SynSQLSynSQLSample.NumberAttri.Foreground));
reg.WriteString(REGNAME_SQLCOLSTRINGATTRI, colortostring(SynSQLSynSQLSample.StringAttri.Foreground));
reg.WriteString(REGNAME_SQLCOLCOMMENTATTRI, colortostring(SynSQLSynSQLSample.CommentAttri.Foreground));
reg.WriteString(REGNAME_SQLCOLCONDCOMMATTRI, colortostring(SynSQLSynSQLSample.ConditionalCommentAttri.Foreground));
reg.WriteString(REGNAME_SQLCOLTABLENAMEATTRI, colortostring(SynSQLSynSQLSample.TableNameAttri.Foreground));
reg.WriteString(REGNAME_SQLCOLSYMBOLATTRI, colortostring(SynSQLSynSQLSample.SymbolAttri.Foreground));
reg.WriteString(REGNAME_SQLCOLIDENTATTRI, colortostring(SynSQLSynSQLSample.IdentifierAttri.Foreground));
reg.WriteString(REGNAME_SQLCOLDELIMIDENTATTRI, colortostring(SynSQLSynSQLSample.DelimitedIdentifierAttri.Foreground));
reg.WriteString(REGNAME_SQLCOLACTIVELINE, ColorToString(SynMemoSQLSample.ActiveLineColor));
reg.WriteString(REGNAME_CSV_SEPARATOR, editCSVSeparator.Text);
reg.WriteString(REGNAME_CSV_ENCLOSER, editCSVEncloser.Text);
reg.WriteString(REGNAME_CSV_TERMINATOR, editCSVTerminator.Text);
reg.WriteInteger(REGNAME_MAXCOLWIDTH, updownMaxColWidth.Position);
reg.WriteString(REGNAME_DATAFONTNAME, comboDataFontName.Text);
reg.WriteInteger(REGNAME_DATAFONTSIZE, updownDataFontSize.Position);
reg.WriteBool(REGNAME_LOGTOFILE, chkLogToFile.Checked);
reg.WriteBool(REGNAME_DO_UPDATECHECK, chkUpdatecheck.Checked);
reg.WriteBool(REGNAME_DO_UPDATECHECK_BUILDS, chkUpdatecheckBuilds.Checked);
reg.WriteInteger(REGNAME_UPDATECHECK_INTERVAL, updownUpdatecheckInterval.Position);
reg.WriteBool(REGNAME_PREFER_SHOWTABLES, chkPreferShowTables.Checked);
MainReg.WriteBool(REGNAME_AUTORECONNECT, chkAutoReconnect.Checked);
MainReg.WriteBool(REGNAME_RESTORELASTUSEDDB, chkRestoreLastDB.Checked);
MainReg.WriteString(REGNAME_FONTNAME, comboSQLFontName.Text);
MainReg.WriteInteger(REGNAME_FONTSIZE, updownSQLFontSize.Position);
MainReg.WriteInteger(REGNAME_LOGSQLNUM, updownLogLines.Position);
MainReg.WriteInteger(REGNAME_LOGSQLWIDTH, updownLogSnip.Position);
MainReg.WriteString(REGNAME_SQLCOLKEYATTRI, colortostring(SynSQLSynSQLSample.KeyAttri.Foreground));
MainReg.WriteString(REGNAME_SQLCOLFUNCTIONATTRI, colortostring(SynSQLSynSQLSample.FunctionAttri.Foreground));
MainReg.WriteString(REGNAME_SQLCOLDATATYPEATTRI, colortostring(SynSQLSynSQLSample.DataTypeAttri.Foreground));
MainReg.WriteString(REGNAME_SQLCOLNUMBERATTRI, colortostring(SynSQLSynSQLSample.NumberAttri.Foreground));
MainReg.WriteString(REGNAME_SQLCOLSTRINGATTRI, colortostring(SynSQLSynSQLSample.StringAttri.Foreground));
MainReg.WriteString(REGNAME_SQLCOLCOMMENTATTRI, colortostring(SynSQLSynSQLSample.CommentAttri.Foreground));
MainReg.WriteString(REGNAME_SQLCOLCONDCOMMATTRI, colortostring(SynSQLSynSQLSample.ConditionalCommentAttri.Foreground));
MainReg.WriteString(REGNAME_SQLCOLTABLENAMEATTRI, colortostring(SynSQLSynSQLSample.TableNameAttri.Foreground));
MainReg.WriteString(REGNAME_SQLCOLSYMBOLATTRI, colortostring(SynSQLSynSQLSample.SymbolAttri.Foreground));
MainReg.WriteString(REGNAME_SQLCOLIDENTATTRI, colortostring(SynSQLSynSQLSample.IdentifierAttri.Foreground));
MainReg.WriteString(REGNAME_SQLCOLDELIMIDENTATTRI, colortostring(SynSQLSynSQLSample.DelimitedIdentifierAttri.Foreground));
MainReg.WriteString(REGNAME_SQLCOLACTIVELINE, ColorToString(SynMemoSQLSample.ActiveLineColor));
MainReg.WriteString(REGNAME_CSV_SEPARATOR, editCSVSeparator.Text);
MainReg.WriteString(REGNAME_CSV_ENCLOSER, editCSVEncloser.Text);
MainReg.WriteString(REGNAME_CSV_TERMINATOR, editCSVTerminator.Text);
MainReg.WriteInteger(REGNAME_MAXCOLWIDTH, updownMaxColWidth.Position);
MainReg.WriteString(REGNAME_DATAFONTNAME, comboDataFontName.Text);
MainReg.WriteInteger(REGNAME_DATAFONTSIZE, updownDataFontSize.Position);
MainReg.WriteBool(REGNAME_LOGTOFILE, chkLogToFile.Checked);
MainReg.WriteBool(REGNAME_DO_UPDATECHECK, chkUpdatecheck.Checked);
MainReg.WriteBool(REGNAME_DO_UPDATECHECK_BUILDS, chkUpdatecheckBuilds.Checked);
MainReg.WriteInteger(REGNAME_UPDATECHECK_INTERVAL, updownUpdatecheckInterval.Position);
MainReg.WriteBool(REGNAME_PREFER_SHOWTABLES, chkPreferShowTables.Checked);
// Save color settings
reg.WriteInteger(REGNAME_FIELDCOLOR_NUMERIC, cboxNumeric.Selected);
reg.WriteInteger(REGNAME_FIELDCOLOR_TEXT, cboxText.Selected);
reg.WriteInteger(REGNAME_FIELDCOLOR_BINARY, cboxBinary.Selected);
reg.WriteInteger(REGNAME_FIELDCOLOR_DATETIME, cboxDatetime.Selected);
reg.WriteInteger(REGNAME_FIELDCOLOR_ENUM, cboxEnum.Selected);
reg.WriteInteger(REGNAME_FIELDCOLOR_SET, cboxSet.Selected);
reg.WriteInteger(REGNAME_BG_NULL, cboxNullBg.Selected);
MainReg.WriteInteger(REGNAME_FIELDCOLOR_NUMERIC, cboxNumeric.Selected);
MainReg.WriteInteger(REGNAME_FIELDCOLOR_TEXT, cboxText.Selected);
MainReg.WriteInteger(REGNAME_FIELDCOLOR_BINARY, cboxBinary.Selected);
MainReg.WriteInteger(REGNAME_FIELDCOLOR_DATETIME, cboxDatetime.Selected);
MainReg.WriteInteger(REGNAME_FIELDCOLOR_ENUM, cboxEnum.Selected);
MainReg.WriteInteger(REGNAME_FIELDCOLOR_SET, cboxSet.Selected);
MainReg.WriteInteger(REGNAME_BG_NULL, cboxNullBg.Selected);
// Editor enablings
reg.WriteBool(REGNAME_FIELDEDITOR_BINARY, chkEditorBinary.Checked);
reg.WriteBool(REGNAME_FIELDEDITOR_DATETIME, chkEditorDatetime.Checked);
reg.WriteBool(REGNAME_FIELDEDITOR_ENUM, chkEditorEnum.Checked);
reg.WriteBool(REGNAME_FIELDEDITOR_SET, chkEditorSet.Checked);
reg.WriteBool(REGNAME_BG_NULL_ENABLED, chkNullBg.Checked);
// Close registry key
reg.CloseKey;
reg.Free;
MainReg.WriteBool(REGNAME_FIELDEDITOR_BINARY, chkEditorBinary.Checked);
MainReg.WriteBool(REGNAME_FIELDEDITOR_DATETIME, chkEditorDatetime.Checked);
MainReg.WriteBool(REGNAME_FIELDEDITOR_ENUM, chkEditorEnum.Checked);
MainReg.WriteBool(REGNAME_FIELDEDITOR_SET, chkEditorSet.Checked);
MainReg.WriteBool(REGNAME_BG_NULL_ENABLED, chkNullBg.Checked);
// Set relevant properties in mainform
Mainform.SynMemoQuery.Font := SynMemoSQLSample.Font;
@ -313,28 +306,28 @@ begin
screen.Cursor := crHourGlass;
// Read and display values
sqlfontname := Mainform.GetRegValue(REGNAME_FONTNAME, DEFAULT_FONTNAME);
sqlfontsize := Mainform.GetRegValue(REGNAME_FONTSIZE, DEFAULT_FONTSIZE);
datafontname := Mainform.GetRegValue(REGNAME_DATAFONTNAME, DEFAULT_DATAFONTNAME);
datafontsize := Mainform.GetRegValue(REGNAME_DATAFONTSIZE, DEFAULT_DATAFONTSIZE);
chkAutoReconnect.Checked := Mainform.GetRegValue(REGNAME_AUTORECONNECT, DEFAULT_AUTORECONNECT);
chkRestoreLastDB.Checked := Mainform.GetRegValue(REGNAME_RESTORELASTUSEDDB, DEFAULT_RESTORELASTUSEDDB);
updownLogLines.Position := Mainform.GetRegValue(REGNAME_LOGSQLNUM, DEFAULT_LOGSQLNUM);
updownLogSnip.Position := Mainform.GetRegValue(REGNAME_LOGSQLWIDTH, DEFAULT_LOGSQLWIDTH);
chkUpdatecheck.Checked := Mainform.GetRegValue(REGNAME_DO_UPDATECHECK, DEFAULT_DO_UPDATECHECK);
chkUpdatecheckBuilds.Checked := Mainform.GetRegValue(REGNAME_DO_UPDATECHECK_BUILDS, DEFAULT_DO_UPDATECHECK_BUILDS);
updownUpdatecheckInterval.Position := Mainform.GetRegValue(REGNAME_UPDATECHECK_INTERVAL, DEFAULT_UPDATECHECK_INTERVAL);
sqlfontname := GetRegValue(REGNAME_FONTNAME, DEFAULT_FONTNAME);
sqlfontsize := GetRegValue(REGNAME_FONTSIZE, DEFAULT_FONTSIZE);
datafontname := GetRegValue(REGNAME_DATAFONTNAME, DEFAULT_DATAFONTNAME);
datafontsize := GetRegValue(REGNAME_DATAFONTSIZE, DEFAULT_DATAFONTSIZE);
chkAutoReconnect.Checked := GetRegValue(REGNAME_AUTORECONNECT, DEFAULT_AUTORECONNECT);
chkRestoreLastDB.Checked := GetRegValue(REGNAME_RESTORELASTUSEDDB, DEFAULT_RESTORELASTUSEDDB);
updownLogLines.Position := GetRegValue(REGNAME_LOGSQLNUM, DEFAULT_LOGSQLNUM);
updownLogSnip.Position := GetRegValue(REGNAME_LOGSQLWIDTH, DEFAULT_LOGSQLWIDTH);
chkUpdatecheck.Checked := GetRegValue(REGNAME_DO_UPDATECHECK, DEFAULT_DO_UPDATECHECK);
chkUpdatecheckBuilds.Checked := GetRegValue(REGNAME_DO_UPDATECHECK_BUILDS, DEFAULT_DO_UPDATECHECK_BUILDS);
updownUpdatecheckInterval.Position := GetRegValue(REGNAME_UPDATECHECK_INTERVAL, DEFAULT_UPDATECHECK_INTERVAL);
chkUpdatecheckClick(Sender);
chkPreferShowTables.Checked := Mainform.GetRegValue(REGNAME_PREFER_SHOWTABLES, DEFAULT_PREFER_SHOWTABLES);
chkPreferShowTables.Checked := GetRegValue(REGNAME_PREFER_SHOWTABLES, DEFAULT_PREFER_SHOWTABLES);
// Default Column-Width in DBGrids:
updownMaxColWidth.Position := Mainform.GetRegValue(REGNAME_MAXCOLWIDTH, DEFAULT_MAXCOLWIDTH);
updownMaxColWidth.Position := GetRegValue(REGNAME_MAXCOLWIDTH, DEFAULT_MAXCOLWIDTH);
// CSV-Options:
editCSVSeparator.Text := Mainform.GetRegValue(REGNAME_CSV_SEPARATOR, DEFAULT_CSV_SEPARATOR);
editCSVEncloser.Text := Mainform.GetRegValue(REGNAME_CSV_ENCLOSER, DEFAULT_CSV_ENCLOSER);
editCSVTerminator.Text := Mainform.GetRegValue(REGNAME_CSV_TERMINATOR, DEFAULT_CSV_TERMINATOR);
editCSVSeparator.Text := GetRegValue(REGNAME_CSV_SEPARATOR, DEFAULT_CSV_SEPARATOR);
editCSVEncloser.Text := GetRegValue(REGNAME_CSV_ENCLOSER, DEFAULT_CSV_ENCLOSER);
editCSVTerminator.Text := GetRegValue(REGNAME_CSV_TERMINATOR, DEFAULT_CSV_TERMINATOR);
// Log to file
chkLogToFile.Checked := Mainform.GetRegValue(REGNAME_LOGTOFILE, DEFAULT_LOGTOFILE);
chkLogToFile.Checked := GetRegValue(REGNAME_LOGTOFILE, DEFAULT_LOGTOFILE);
btnOpenLogFolder.Enabled := DirectoryExists(DirnameSessionLogs);
// SQL-Appearance:
@ -344,18 +337,18 @@ begin
LPARAM(Pointer(comboSQLFontName.Items))); // customized data
// Color-coding:
SynSQLSynSQLSample.KeyAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLKEYATTRI, ColorToString(DEFAULT_SQLCOLKEYATTRI)));
SynSQLSynSQLSample.FunctionAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLFUNCTIONATTRI, ColorToString(DEFAULT_SQLCOLFUNCTIONATTRI)));
SynSQLSynSQLSample.DataTypeAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLDATATYPEATTRI, ColorToString(DEFAULT_SQLCOLDATATYPEATTRI)));
SynSQLSynSQLSample.NumberAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLNUMBERATTRI, ColorToString(DEFAULT_SQLCOLNUMBERATTRI)));
SynSQLSynSQLSample.StringAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLSTRINGATTRI, ColorToString(DEFAULT_SQLCOLSTRINGATTRI)));
SynSQLSynSQLSample.CommentAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLCOMMENTATTRI, ColorToString(DEFAULT_SQLCOLCOMMENTATTRI)));
SynSQLSynSQLSample.ConditionalCommentAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLCONDCOMMATTRI, ColorToString(DEFAULT_SQLCOLCONDCOMMATTRI)));
SynSQLSynSQLSample.TableNameAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLTABLENAMEATTRI, ColorToString(DEFAULT_SQLCOLTABLENAMEATTRI)));
SynSQLSynSQLSample.SymbolAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLSYMBOLATTRI, ColorToString(DEFAULT_SQLCOLSYMBOLATTRI)));
SynSQLSynSQLSample.IdentifierAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLIDENTATTRI, ColorToString(DEFAULT_SQLCOLIDENTATTRI)));
SynSQLSynSQLSample.DelimitedIdentifierAttri.Foreground := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLDELIMIDENTATTRI, ColorToString(DEFAULT_SQLCOLDELIMIDENTATTRI)));
SynMemoSQLSample.ActiveLineColor := StringToColor(Mainform.GetRegValue(REGNAME_SQLCOLACTIVELINE, ColorToString(DEFAULT_SQLCOLACTIVELINE)));
SynSQLSynSQLSample.KeyAttri.Foreground := StringToColor(GetRegValue(REGNAME_SQLCOLKEYATTRI, ColorToString(DEFAULT_SQLCOLKEYATTRI)));
SynSQLSynSQLSample.FunctionAttri.Foreground := StringToColor(GetRegValue(REGNAME_SQLCOLFUNCTIONATTRI, ColorToString(DEFAULT_SQLCOLFUNCTIONATTRI)));
SynSQLSynSQLSample.DataTypeAttri.Foreground := StringToColor(GetRegValue(REGNAME_SQLCOLDATATYPEATTRI, ColorToString(DEFAULT_SQLCOLDATATYPEATTRI)));
SynSQLSynSQLSample.NumberAttri.Foreground := StringToColor(GetRegValue(REGNAME_SQLCOLNUMBERATTRI, ColorToString(DEFAULT_SQLCOLNUMBERATTRI)));
SynSQLSynSQLSample.StringAttri.Foreground := StringToColor(GetRegValue(REGNAME_SQLCOLSTRINGATTRI, ColorToString(DEFAULT_SQLCOLSTRINGATTRI)));
SynSQLSynSQLSample.CommentAttri.Foreground := StringToColor(GetRegValue(REGNAME_SQLCOLCOMMENTATTRI, ColorToString(DEFAULT_SQLCOLCOMMENTATTRI)));
SynSQLSynSQLSample.ConditionalCommentAttri.Foreground := StringToColor(GetRegValue(REGNAME_SQLCOLCONDCOMMATTRI, ColorToString(DEFAULT_SQLCOLCONDCOMMATTRI)));
SynSQLSynSQLSample.TableNameAttri.Foreground := StringToColor(GetRegValue(REGNAME_SQLCOLTABLENAMEATTRI, ColorToString(DEFAULT_SQLCOLTABLENAMEATTRI)));
SynSQLSynSQLSample.SymbolAttri.Foreground := StringToColor(GetRegValue(REGNAME_SQLCOLSYMBOLATTRI, ColorToString(DEFAULT_SQLCOLSYMBOLATTRI)));
SynSQLSynSQLSample.IdentifierAttri.Foreground := StringToColor(GetRegValue(REGNAME_SQLCOLIDENTATTRI, ColorToString(DEFAULT_SQLCOLIDENTATTRI)));
SynSQLSynSQLSample.DelimitedIdentifierAttri.Foreground := StringToColor(GetRegValue(REGNAME_SQLCOLDELIMIDENTATTRI, ColorToString(DEFAULT_SQLCOLDELIMIDENTATTRI)));
SynMemoSQLSample.ActiveLineColor := StringToColor(GetRegValue(REGNAME_SQLCOLACTIVELINE, ColorToString(DEFAULT_SQLCOLACTIVELINE)));
comboSQLFontName.ItemIndex := comboSQLFontName.Items.IndexOf(sqlfontname);
updownSQLFontSize.Position := sqlfontsize;
SynMemoSQLSample.Text := 'SELECT DATE_SUB(NOW(), INTERVAL 1 DAY),' + CRLF +
@ -381,19 +374,19 @@ begin
comboDataFontName.ItemIndex := comboDataFontName.Items.IndexOf(datafontname);
updownDataFontSize.Position := datafontsize;
// Load color settings
cboxNumeric.Selected := Mainform.GetRegValue(REGNAME_FIELDCOLOR_NUMERIC, DEFAULT_FIELDCOLOR_NUMERIC);
cboxText.Selected := Mainform.GetRegValue(REGNAME_FIELDCOLOR_TEXT, DEFAULT_FIELDCOLOR_TEXT);
cboxBinary.Selected := Mainform.GetRegValue(REGNAME_FIELDCOLOR_BINARY, DEFAULT_FIELDCOLOR_BINARY);
cboxDatetime.Selected := Mainform.GetRegValue(REGNAME_FIELDCOLOR_DATETIME, DEFAULT_FIELDCOLOR_DATETIME);
cboxEnum.Selected := Mainform.GetRegValue(REGNAME_FIELDCOLOR_ENUM, DEFAULT_FIELDCOLOR_ENUM);
cboxSet.Selected := Mainform.GetRegValue(REGNAME_FIELDCOLOR_SET, DEFAULT_FIELDCOLOR_SET);
cboxNullBG.Selected := Mainform.GetRegValue(REGNAME_BG_NULL, DEFAULT_BG_NULL);
cboxNumeric.Selected := GetRegValue(REGNAME_FIELDCOLOR_NUMERIC, DEFAULT_FIELDCOLOR_NUMERIC);
cboxText.Selected := GetRegValue(REGNAME_FIELDCOLOR_TEXT, DEFAULT_FIELDCOLOR_TEXT);
cboxBinary.Selected := GetRegValue(REGNAME_FIELDCOLOR_BINARY, DEFAULT_FIELDCOLOR_BINARY);
cboxDatetime.Selected := GetRegValue(REGNAME_FIELDCOLOR_DATETIME, DEFAULT_FIELDCOLOR_DATETIME);
cboxEnum.Selected := GetRegValue(REGNAME_FIELDCOLOR_ENUM, DEFAULT_FIELDCOLOR_ENUM);
cboxSet.Selected := GetRegValue(REGNAME_FIELDCOLOR_SET, DEFAULT_FIELDCOLOR_SET);
cboxNullBG.Selected := GetRegValue(REGNAME_BG_NULL, DEFAULT_BG_NULL);
// Editor enablings
chkEditorBinary.Checked := Mainform.GetRegValue(REGNAME_FIELDEDITOR_BINARY, DEFAULT_FIELDEDITOR_BINARY);
chkEditorDatetime.Checked := Mainform.GetRegValue(REGNAME_FIELDEDITOR_DATETIME, DEFAULT_FIELDEDITOR_DATETIME);
chkEditorEnum.Checked := Mainform.GetRegValue(REGNAME_FIELDEDITOR_ENUM, DEFAULT_FIELDEDITOR_ENUM);
chkEditorSet.Checked := Mainform.GetRegValue(REGNAME_FIELDEDITOR_SET, DEFAULT_FIELDEDITOR_SET);
chkNullBG.Checked := Mainform.GetRegValue(REGNAME_BG_NULL_ENABLED, DEFAULT_BG_NULL_ENABLED);
chkEditorBinary.Checked := GetRegValue(REGNAME_FIELDEDITOR_BINARY, DEFAULT_FIELDEDITOR_BINARY);
chkEditorDatetime.Checked := GetRegValue(REGNAME_FIELDEDITOR_DATETIME, DEFAULT_FIELDEDITOR_DATETIME);
chkEditorEnum.Checked := GetRegValue(REGNAME_FIELDEDITOR_ENUM, DEFAULT_FIELDEDITOR_ENUM);
chkEditorSet.Checked := GetRegValue(REGNAME_FIELDEDITOR_SET, DEFAULT_FIELDEDITOR_SET);
chkNullBG.Checked := GetRegValue(REGNAME_BG_NULL_ENABLED, DEFAULT_BG_NULL_ENABLED);
btnOK.Enabled := False;
btnApply.Enabled := False;

View File

@ -4,7 +4,7 @@ interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, VirtualTrees, DB, Registry, WideStrings,
Dialogs, StdCtrls, VirtualTrees, DB, WideStrings,
TntStdCtrls;
type
@ -67,24 +67,18 @@ end;
procedure TfrmSelectDBObject.FormCreate(Sender: TObject);
begin
Width := Mainform.GetRegValue(REGNAME_SELECTDBO_WINWIDTH, Width);
Height := Mainform.GetRegValue(REGNAME_SELECTDBO_WINHEIGHT, Height);
Width := GetRegValue(REGNAME_SELECTDBO_WINWIDTH, Width);
Height := GetRegValue(REGNAME_SELECTDBO_WINHEIGHT, Height);
SetWindowSizeGrip( Self.Handle, True );
InheritFont(Font);
FixVT(TreeDBO);
end;
procedure TfrmSelectDBObject.FormDestroy(Sender: TObject);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
if reg.OpenKey(REGPATH, False) then begin
reg.WriteInteger( REGNAME_SELECTDBO_WINWIDTH, Width );
reg.WriteInteger( REGNAME_SELECTDBO_WINHEIGHT, Height );
reg.CloseKey;
end;
reg.Free;
OpenRegistry;
MainReg.WriteInteger( REGNAME_SELECTDBO_WINWIDTH, Width );
MainReg.WriteInteger( REGNAME_SELECTDBO_WINHEIGHT, Height );
end;
procedure TfrmSelectDBObject.FormResize(Sender: TObject);

View File

@ -4,7 +4,7 @@ interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, ShellApi, Buttons, Registry,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, ShellApi, Buttons,
PngSpeedButton, SynMemo, SynEditHighlighter, SynHighlighterURI,
SynURIOpener, SynEdit;
@ -81,12 +81,12 @@ end;
procedure TfrmSQLhelp.FormShow(Sender: TObject);
begin
// Set window-layout
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 );
Top := GetRegValue( REGNAME_SQLHELPWINTOP, Top );
Left := GetRegValue( REGNAME_SQLHELPWINLEFT, Left );
Width := GetRegValue( REGNAME_SQLHELPWINWIDTH, Width );
Height := GetRegValue( REGNAME_SQLHELPWINHEIGHT, Height );
pnlLeft.Width := GetRegValue( REGNAME_SQLHELPPLWIDTH, pnlLeft.Width );
pnlRightTop.Height := GetRegValue( REGNAME_SQLHELPPRHEIGHT, pnlRightTop.Height );
Caption := DEFAULT_WINDOW_CAPTION;
MemoDescription.Font.Name := Mainform.SynMemoQuery.Font.Name;
@ -302,20 +302,14 @@ end;
Save layout and close window
}
procedure TfrmSQLhelp.ButtonCloseClick(Sender: TObject);
var
reg : TRegistry;
begin
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;
OpenRegistry;
MainReg.WriteInteger( REGNAME_SQLHELPWINLEFT, Left );
MainReg.WriteInteger( REGNAME_SQLHELPWINTOP, Top );
MainReg.WriteInteger( REGNAME_SQLHELPWINWIDTH, Width );
MainReg.WriteInteger( REGNAME_SQLHELPWINHEIGHT, Height );
MainReg.WriteInteger( REGNAME_SQLHELPPLWIDTH, pnlLeft.Width );
MainReg.WriteInteger( REGNAME_SQLHELPPRHEIGHT, PnlRightTop.Height );
Close;
end;

View File

@ -3,7 +3,7 @@ unit texteditor;
interface
uses
Windows, Classes, Graphics, Forms, Controls, helpers, StdCtrls, TntStdCtrls, Registry, VirtualTrees,
Windows, Classes, Graphics, Forms, Controls, helpers, StdCtrls, TntStdCtrls, VirtualTrees,
ComCtrls, ToolWin, Dialogs, SysUtils;
{$I const.inc}
@ -79,24 +79,18 @@ end;
procedure TfrmTextEditor.FormDestroy(Sender: TObject);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
if reg.OpenKey(REGPATH, False) then begin
reg.WriteInteger( REGNAME_EDITOR_WIDTH, Width );
reg.WriteInteger( REGNAME_EDITOR_HEIGHT, Height );
reg.CloseKey;
end;
reg.Free;
OpenRegistry;
MainReg.WriteInteger( REGNAME_EDITOR_WIDTH, Width );
MainReg.WriteInteger( REGNAME_EDITOR_HEIGHT, Height );
end;
procedure TfrmTextEditor.FormShow(Sender: TObject);
begin
// Restore form dimensions
Width := Mainform.GetRegValue(REGNAME_EDITOR_WIDTH, DEFAULT_EDITOR_WIDTH);
Height := Mainform.GetRegValue(REGNAME_EDITOR_HEIGHT, DEFAULT_EDITOR_HEIGHT);
Width := GetRegValue(REGNAME_EDITOR_WIDTH, DEFAULT_EDITOR_WIDTH);
Height := GetRegValue(REGNAME_EDITOR_HEIGHT, DEFAULT_EDITOR_HEIGHT);
// Fix label position:
lblTextLength.Top := tlbStandard.Top + (tlbStandard.Height-lblTextLength.Height) div 2;
SetWindowSizeGrip(Handle, True);

View File

@ -4,7 +4,7 @@ interface
uses
Windows, Messages, SysUtils, Classes, Forms,
Dialogs, StdCtrls, ExtActns, IniFiles, Controls, Graphics, Registry;
Dialogs, StdCtrls, ExtActns, IniFiles, Controls, Graphics;
type
TUrlMonUrlMkSetSessionOption = function(dwOption: Cardinal; pBuffer: PChar; dwBufferLength: Cardinal; dwReserved: Cardinal): HRESULT; stdcall;
@ -92,8 +92,6 @@ end;
Download check file
}
procedure TfrmUpdateCheck.FormShow(Sender: TObject);
var
reg : TRegistry;
begin
Status('Initiating ... ');
Caption := 'Check for '+APPNAME+' updates ...';
@ -128,11 +126,8 @@ begin
end else
Status('Updates available.');
// Remember when we did the updatecheck to enable the automatic interval
reg := TRegistry.Create;
reg.OpenKey(REGPATH, true);
reg.WriteString(REGNAME_LAST_UPDATECHECK, DateTimeToStr(Now));
reg.CloseKey;
FreeAndNil(reg);
OpenRegistry;
MainReg.WriteString(REGNAME_LAST_UPDATECHECK, DateTimeToStr(Now));
except
// Do not popup errors, just display them in the status label
On E:Exception do

View File

@ -6,7 +6,7 @@ interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, CheckLst, ExtCtrls, Buttons, DB,
Registry, ToolWin, TntCheckLst, WideStrings, WideStrUtils;
ToolWin, TntCheckLst, WideStrings, WideStrUtils;
{$I const.inc}
@ -227,8 +227,8 @@ var
}
procedure TUserManagerForm.FormCreate(Sender: TObject);
begin
Width := Mainform.GetRegValue(REGNAME_USERMNGR_WINWIDTH, Width);
Height := Mainform.GetRegValue(REGNAME_USERMNGR_WINHEIGHT, Height);
Width := GetRegValue(REGNAME_USERMNGR_WINWIDTH, Width);
Height := GetRegValue(REGNAME_USERMNGR_WINHEIGHT, Height);
db := Mainform.Mask(DBNAME_MYSQL);
SetWindowSizeGrip( Self.Handle, True );
InheritFont(Font);
@ -239,16 +239,10 @@ end;
FormDestroy: Save GUI setup
}
procedure TUserManagerForm.FormDestroy(Sender: TObject);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
if reg.OpenKey(REGPATH, False) then begin
reg.WriteInteger( REGNAME_USERMNGR_WINWIDTH, Width );
reg.WriteInteger( REGNAME_USERMNGR_WINHEIGHT, Height );
reg.CloseKey;
end;
reg.Free;
OpenRegistry;
MainReg.WriteInteger( REGNAME_USERMNGR_WINWIDTH, Width );
MainReg.WriteInteger( REGNAME_USERMNGR_WINHEIGHT, Height );
end;

View File

@ -4,7 +4,7 @@ interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, SynEdit, SynMemo, ExtCtrls, Registry, DB, SynRegExpr;
Dialogs, StdCtrls, ComCtrls, SynEdit, SynMemo, ExtCtrls, DB, SynRegExpr;
type
TfrmView = class(TForm)
@ -43,8 +43,8 @@ uses main, helpers;
}
procedure TfrmView.FormCreate(Sender: TObject);
begin
Width := Mainform.GetRegValue(REGNAME_VIEWWINWIDTH, Width);
Height := Mainform.GetRegValue(REGNAME_VIEWWINHEIGHT, Height);
Width := GetRegValue(REGNAME_VIEWWINWIDTH, Width);
Height := GetRegValue(REGNAME_VIEWWINHEIGHT, Height);
SynMemoSelect.Highlighter := Mainform.SynSQLSyn1;
SynMemoSelect.Font := Mainform.SynMemoQuery.Font;
SetWindowSizeGrip( Self.Handle, True );
@ -56,16 +56,10 @@ end;
FormDestroy: Save GUI setup
}
procedure TfrmView.FormDestroy(Sender: TObject);
var
reg : TRegistry;
begin
reg := TRegistry.Create;
if reg.OpenKey(REGPATH, False) then begin
reg.WriteInteger( REGNAME_VIEWWINWIDTH, Width );
reg.WriteInteger( REGNAME_VIEWWINHEIGHT, Height );
reg.CloseKey;
end;
reg.Free;
OpenRegistry;
MainReg.WriteInteger( REGNAME_VIEWWINWIDTH, Width );
MainReg.WriteInteger( REGNAME_VIEWWINHEIGHT, Height );
Close;
end;