mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2025-08-06 18:24:26 +08:00
91 lines
2.5 KiB
ObjectPascal
91 lines
2.5 KiB
ObjectPascal
unit dataviewsave;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, StdCtrls, WideStrings;
|
|
|
|
type
|
|
TFrmDataViewSave = class(TForm)
|
|
comboSave: TComboBox;
|
|
lblSave: TLabel;
|
|
btnOK: TButton;
|
|
btnCancel: TButton;
|
|
chkDefault: TCheckBox;
|
|
procedure btnOKClick(Sender: TObject);
|
|
procedure comboSaveChange(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
{$I const.inc}
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses main, helpers;
|
|
|
|
|
|
procedure TFrmDataViewSave.FormCreate(Sender: TObject);
|
|
begin
|
|
Screen.Cursor := crHourglass;
|
|
InheritFont(Font);
|
|
// Load all view names into combobox
|
|
Mainform.GetDataViews(comboSave.Items);
|
|
comboSaveChange(comboSave);
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
|
|
|
|
procedure TFrmDataViewSave.comboSaveChange(Sender: TObject);
|
|
begin
|
|
// OK button is only enabled if name is not empty
|
|
btnOK.Enabled := (Sender as TComboBox).Text <> '';
|
|
end;
|
|
|
|
|
|
procedure TFrmDataViewSave.btnOKClick(Sender: TObject);
|
|
var
|
|
viewName, basekey: String;
|
|
Sort: WideString;
|
|
i: Integer;
|
|
Col: WideString;
|
|
HiddenCols: TWideStringList;
|
|
begin
|
|
// Save current view stuff to registry
|
|
Screen.Cursor := crHourglass;
|
|
viewName := comboSave.Text;
|
|
basekey := Mainform.GetRegKeyTable + '\' + REGPREFIX_DATAVIEW + viewName;
|
|
if MainReg.OpenKey(basekey, True) then begin
|
|
HiddenCols := TWideStringlist.Create;
|
|
HiddenCols.Delimiter := REGDELIM;
|
|
HiddenCols.StrictDelimiter := True;
|
|
Mainform.SelectedTableColumns.First;
|
|
for i := 0 to Mainform.SelectedTableColumns.RecordCount - 1 do begin
|
|
Col := Mainform.SelectedTableColumns.Fields[0].AsWideString;
|
|
if Mainform.FDataGridSelect.IndexOf(Col) = -1 then
|
|
HiddenCols.Add(Col);
|
|
Mainform.SelectedTableColumns.Next;
|
|
end;
|
|
MainReg.WriteString(REGNAME_HIDDENCOLUMNS, Utf8Encode(HiddenCols.DelimitedText));
|
|
FreeAndNil(HiddenCols);
|
|
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;
|
|
MainReg.WriteString(REGNAME_SORT, Utf8Encode(Sort));
|
|
if chkDefault.Checked then begin
|
|
MainReg.OpenKey(Mainform.GetRegKeyTable, False);
|
|
MainReg.WriteString(REGNAME_DEFAULTVIEW, viewName);
|
|
end;
|
|
end;
|
|
Screen.Cursor := crDefault;
|
|
end;
|
|
|
|
|
|
end.
|