TAdvStringGrid - Selecting Filter Edit dropdown item initiates a ColumnMove event


I have a TAdvStringGrid (version 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 :frowning:

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.


I have discovered this issue has been fixed in a much more recent version of the TAdvStringGrid running in Delphi XE10.4

Is there a workaround I can use until we move our app to XE10.4?

TAdvStringGrid v3.1.4.2 is really very old. You should be able to use the newest version also with Delphi 2006.

Thanks Bruno. Much appreciated!