From b43b44ee5a277bc7c731723b38abea0e52ae03d4 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Tue, 19 Jan 2010 22:49:18 +0000 Subject: [PATCH] Columns of selected datagrid object can also come from a view, so ParseTableStructure is not sufficient in both data sorting and column selection forms. Instead, just use mainform's lists which are exactly what we need. Fixes issue #1611. --- source/column_selection.pas | 15 ++++----------- source/data_sorting.pas | 11 ++--------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/source/column_selection.pas b/source/column_selection.pas index ed10624a..cf9634ab 100644 --- a/source/column_selection.pas +++ b/source/column_selection.pas @@ -25,7 +25,6 @@ type procedure FormCreate(Sender: TObject); private { Private declarations } - FColumns: TTableColumnList; public { Public declarations } end; @@ -45,7 +44,6 @@ uses main; procedure TColumnSelectionForm.FormCreate(Sender: TObject); begin InheritFont(Font); - FColumns := TTableColumnList.Create; end; @@ -55,14 +53,9 @@ end; procedure TColumnSelectionForm.FormShow(Sender: TObject); var i: Integer; - KeysDummy: TTableKeyList; - ForeignKeysDummy: TForeignKeyList; begin - KeysDummy := nil; - ForeignKeysDummy := nil; - ParseTableStructure(Mainform.SelectedTableCreateStatement, FColumns, KeysDummy, ForeignKeysDummy); - for i:=0 to FColumns.Count-1 do - chklistColumns.Items.Add(FColumns[i].Name); + for i:=0 to Mainform.SelectedTableColumns.Count-1 do + chklistColumns.Items.Add(Mainform.SelectedTableColumns[i].Name); // Check items! if Mainform.FDataGridSelect.Count = 0 then // Simply check all items @@ -172,8 +165,8 @@ begin // Add all fieldnames again chklistColumns.Items.BeginUpdate; chklistColumns.Clear; - for i:=0 to FColumns.Count-1 do - chklistColumns.Items.Add(FColumns[i].Name); + for i:=0 to Mainform.SelectedTableColumns.Count-1 do + chklistColumns.Items.Add(Mainform.SelectedTableColumns[i].Name); chklistColumns.Items.EndUpdate; end; diff --git a/source/data_sorting.pas b/source/data_sorting.pas index 49a5e725..e0ce5742 100644 --- a/source/data_sorting.pas +++ b/source/data_sorting.pas @@ -35,7 +35,6 @@ type procedure Modified; public { Public declarations } - FColumns: TTableColumnList; end; @@ -55,7 +54,6 @@ procedure TDataSortingForm.FormCreate(Sender: TObject); begin InheritFont(Font); ColumnNames := TStringList.Create; - FColumns := TTableColumnList.Create; end; @@ -65,16 +63,11 @@ end; procedure TDataSortingForm.FormShow(Sender: TObject); var i: Integer; - KeysDummy: TTableKeyList; - ForeignKeysDummy: TForeignKeyList; begin // Take column names from listColumns and add here - KeysDummy := nil; - ForeignKeysDummy := nil; - ParseTableStructure(Mainform.SelectedTableCreateStatement, FColumns, KeysDummy, ForeignKeysDummy); ColumnNames.Clear; - for i:=0 to FColumns.Count-1 do - ColumnNames.Add(FColumns[i].Name); + for i:=0 to Mainform.SelectedTableColumns.Count-1 do + ColumnNames.Add(Mainform.SelectedTableColumns[i].Name); OrderColumns := Mainform.FDataGridSort; OldOrderClause := ComposeOrderClause(OrderColumns);