RxFPC:realign filter form

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5843 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2017-04-27 07:57:02 +00:00
parent eab4f335ba
commit a11167faac
2 changed files with 122 additions and 73 deletions

View File

@ -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;