diff --git a/components/rx/trunk/Demos/RxDBGrid_Filter/project1.lps b/components/rx/trunk/Demos/RxDBGrid_Filter/project1.lps index 14e2ffd88..b247d5e49 100644 --- a/components/rx/trunk/Demos/RxDBGrid_Filter/project1.lps +++ b/components/rx/trunk/Demos/RxDBGrid_Filter/project1.lps @@ -3,7 +3,7 @@ - + @@ -11,7 +11,7 @@ - + @@ -20,10 +20,9 @@ - - + @@ -35,9 +34,9 @@ - - - + + + @@ -51,15 +50,16 @@ + - - + + - - - - + + + + @@ -145,99 +145,145 @@ + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/rx/trunk/rxdb/rxdbgrid.pas b/components/rx/trunk/rxdb/rxdbgrid.pas index d65b5ceed..7ad3dc1d5 100644 --- a/components/rx/trunk/rxdb/rxdbgrid.pas +++ b/components/rx/trunk/rxdb/rxdbgrid.pas @@ -612,7 +612,7 @@ type TRxDBGrid = class(TCustomDBGrid) private FColumnDefValues: TRxDBGridColumnDefValues; - //FrxDSState:TRxDSState; + FFooterOptions: TRxDBGridFooterOptions; FSearchOptions: TRxDBGridSearchOptions; FSortColumns: TRxDbGridColumnsSortList; @@ -622,7 +622,6 @@ type FKeyStrokes: TRxDBGridKeyStrokes; FOnGetCellProps: TGetCellPropsEvent; FOptionsRx: TOptionsRx; - // FTitleLines: Integer; FOnGetBtnParams: TGetBtnParamsEvent; FOnFiltred: TNotifyEvent; @@ -4810,36 +4809,25 @@ begin if (FFilterListEditor.Text = EmptyValue) then begin CurrentValues.Clear; -{ Value := ''; - IsNull:=true; - IsAll:=false;} State:=rxfsEmpty; end else if (FFilterListEditor.Text = AllValue) then begin CurrentValues.Clear; -{ Value := ''; - IsNull:=false; - IsAll:=true;} State:=rxfsAll; end else begin CurrentValues.Clear; CurrentValues.Add(FFilterListEditor.Text); -{ Value := FFilterListEditor.Text; - IsNull:=false; - IsAll:=false;} State:=rxfsFilter; end; end; -// DataSource.DataSet.Refresh; DataSource.DataSet.DisableControls; DataSource.DataSet.Filtered:=false; DataSource.DataSet.Filtered:=true; -// DataSource.DataSet.First; CalcStatTotals; DataSource.DataSet.EnableControls; @@ -4857,12 +4845,27 @@ end; procedure TRxDBGrid.FFilterColDlgButtonOnClick(Sender: TObject); var RxDBGrid_PopUpFilterForm: TRxDBGrid_PopUpFilterForm; - R: TPoint; + R, P: TPoint; FRxCol: TRxColumn; + FRect: TRect; begin FRxCol:=TRxColumn(Columns[Columns.RealIndex(FFilterColDlgButton.Col)]); + RxDBGrid_PopUpFilterForm:=TRxDBGrid_PopUpFilterForm.CreatePopUpFilterForm(FRxCol); - R:=ClientToScreen(Point(FFilterColDlgButton.Left, FFilterColDlgButton.Top + FFilterColDlgButton.Width)); + + + P:=Point(FFilterColDlgButton.Left, FFilterColDlgButton.Top + FFilterColDlgButton.Width); + + + if RxDBGrid_PopUpFilterForm.Width < FRxCol.Width then + P.X:=FFilterColDlgButton.Left + FFilterColDlgButton.Width - RxDBGrid_PopUpFilterForm.Width + else + P.X:=FFilterColDlgButton.Left + FFilterColDlgButton.Width - FRxCol.Width; + + R:=ClientToScreen(P); + if R.X + RxDBGrid_PopUpFilterForm.Width > Screen.Width then + R.X:=Screen.Width - RxDBGrid_PopUpFilterForm.Width; + RxDBGrid_PopUpFilterForm.Left:=R.X; RxDBGrid_PopUpFilterForm.Top:=R.Y; RxDBGrid_PopUpFilterForm.ShowModal;