TAdvStringGrid - ComboList Double Dropdown

I am having a very specific issue with several string grids in my application. I have been able to reproduce the issue in a very simple application also. When the user clicks on a grid cell, if the cell is formatted as a edComboList or edComboEdit, the combo does a double dropdown. I can make this behavior stop if I set the myGrid.MouseActions.DirectEdit to False, but then it is necessary to click twice on cells that are formatted as SpinEdit. I can also make it stop if I set myGrid.ControlLook.DropDownAlwaysVisible to False, but then the user doesn't see the combo dropdown arrow in the cell.

I am using Delphi 10.4.1 and TMS VCL UI Pack

I have made a short video that demonstrates the behavior in my example project. The link is https://youtu.be/t6zTJLiswIQ

One interesting thing is that the behavior does not happen if you click on the combo cell when the current cell focus is on a cell that is formatted either as edNormal or edCheckBox. Also it does not happen when you use arrow keys or Enter to move from cell to cell. It only seems to happen when you click on the cell coming from another Combo or from a SpinEdit.

Thank you for any advice on preventing the double dropdown issue in my grids. I have a small project that I would be happy to provide that demonstrates the issue. It only implements a method for OnGetEditorType for the grid.

Jeff Hartman

The most likely reason for the issue here is an option in Windows to shows the combobox dropdown with animation. When programmatically opening the dropdown (which is needed when you want to start the editor directly from a cell click), this Windows animation seems to cause this. So far we have unfortunately not found a workaround to control this at single combobox control level.

Thank you. I tried the DirectComboDrop and DirectComboClose properties but they don't seem to have an effect on this issue. Do you recommend using one of the two properties that I mentioned previously - either DirectEdit or DropDownAlwaysVisible?

The problem is this. When you click the grid cell, the combobox is not there. You do not click on a combobox to open it, you click a cell and the only thing the grid can do is show the combobox upon click and when you set DirectComboDrop = true, it needs to programmatically show the dropdown after this click. It is the Windows setting for having an animated dropdown that behaves odd when triggering the dropdown programmatically.

Thank you for the explanation. I have tested this with the animation turned off, and verified that this resolves the issue in my application.