TDBAdvGrid & search footer

I miss an event, that will be called, when the user click on "Next" or presses an ENTER key. In this event user should have the option to overwrite default database scanning with fast searching using indexes (using function TDataSet::Locate). If fast index search would fail then standard slow search would be called. If fast index search will find record, than nothing else would be done. This is sort of optimization for large databases. Please note that index search can be used only if record value starts with search substring. So for example record value is "Bratislava". If I use search string "Brat", I can locate this record quickly (provided that particular column is indexed). Its no problem for me to do this optimization but currently I dont have the option to overwrite default search method and in case that my search method fails, call default search method.
P.S. I need to have SearchFooter.AutoSearch property disabled because its annoying to work with freezing GUI after the search string is lenghtened by another character. Freezing GUI is problem only for big databases > 10 000 records.

Have you considered using OnSearchEditChange?

This event is not called after I press ENTER key or click "Find next occurrence" button. Also it would be not intuitive for user. Most users would think that search is instantaneous and they would not know, that if they press ENTER key, more thoroughly search will start, where string will be searched also in the middle of column values.

You can assign an event handler to the search edit control via:

grid.SearchPanel.EditControl.OnKeyPress or grid.SearchPanel.EditControl.OnExit.
A click on the "find next" button results in grid.OnSearchFooterAction event triggered with SearchAction parameter equal to saFindNext