Имитировать щелчок на DBGrid

Я сделал некоторые поиски, и ничего не работает.

Использование D5, Zeos и SQLite.

У меня есть DBGrid и набор данных (tblBricks), который отфильтрован.

В событии DBGrid1.OnCellClick у меня есть

tblBricks.Refresh;

Во время выполнения я могу установить фокус на соответствующую строку в DBGrid с помощью

tblBricks.Locate('Color','Red',[loCaseInsensitive]);
frmMain.DBGridCellClick(Columns[0]);

и он фокусирует правильную строку и столбец.

Проблема в том, что при первом запуске этого приложения, когда DataSet открыт, для него установлено значение Filtered:=True; но дисплей еще не отображается как отфильтрованный.

Если я щелкну ячейку уже в фокусе в DBGrid, она внезапно отфильтрует и правильно отобразит результаты.

Как я могу имитировать щелчок по ячейке, чтобы при первом прохождении принудительно фильтровать или, может быть, просто заставить набор данных фильтровать?

Не уверен, является ли это идиосинкразией D5, Zeos, SQLite или их комбинацией.

Спасибо


person user2220358    schedule 03.04.2013    source источник
comment
Как теперь определить фильтр? Когда вы устанавливаете для свойства Filtered значение True?   -  person jachguate    schedule 03.04.2013
comment
Мой ответ здесь может помочь: stackoverflow.com/a/15736647/62576   -  person Ken White    schedule 03.04.2013
comment
Ха! РЖУ НЕ МОГУ. Очень забавно, @Ken, он уже установлен, и после первого раза все работает нормально. Я могу перейти в другую форму и изменить там курсор набора данных, а затем сбросить его в OnClose, и фильтрация правильно отображается в основной форме. Это только в первый раз, когда я запускаю приложение.   -  person user2220358    schedule 03.04.2013
comment
@Jach, определение фильтра в порядке, так как в остальное время оно работает. Я пытался установить True как до, так и после tblBricks.Active:=True и то же самое. Как я сказал Кену, это только в первый раз, когда я запускаю приложение. В остальном все работает как положено. Я просто хотел попробовать принудительно нажать на сфокусированную ячейку и посмотреть, решило ли это проблему. Я доволен грубой силой, если она работает. :)   -  person user2220358    schedule 03.04.2013
comment
Если это так, вы должны поместить его в событие AfterOpen вашего набора данных.   -  person jachguate    schedule 03.04.2013