I have a TAdvStringGrid (version 18.104.22.168) set up as follows in a Delphi 2006 app:
grdData.FixedCols := 3; grdData.FixedRows := 2; grdData.FilterEdit.Row := 1; grdData.FilterEdit.Enabled := true; grdData.FilterEdit.CaseSensitive := false; grdData.FilterEdit.Columns := fdAll; grdData.FilterDropDownAuto := true; grdData.FilterDropDownCheck := true; grdData.Options := grdData.Options - [goRowSelect] + [goColSizing, goColMoving]; grdData.ControlLook.NoDisabledCheckRadioLook := true; grdData.MouseActions.SizeFixedCol := true; grdData.SortSettings.FixedCols := true;
Filtering and column moving both work just fine - until you select an option from the FilterEdit dropdown list
This action initiates a ColumnMove operation which is impossible to complete or cancel.
I assume this is not behaving as intended.
Is there a workaround I can use until a fix is made?
I have been working in the OnColumnMove event. I'd like to disallow the move if the selected row is anything other than the header. Something like this:
if grdData.Row >= 2 then // attempt to stop col move if clicking on Filter row condition dropdown allow := false;
Obviously clicking on a Filter Edit dropdown item does not set the Row property.
I'd like to set a boolean when the FilterEdit dropdown shows and use it in the OnColumnMove event to determine if the move should be allowed. Set the boolean back when the dropdown closes.
I've looked at a number of OnFilterXxx events but they don't seem to fire.