Добрый день. Еще раз про поиск с cxGrid.  
 Что-то я не могу понять, почему при обычном Locate в датасете запускаются внутренние методы для полного обновления датасета внутри грида. При 10-20 записях locate отрабатывает доли секунды, а когда в выборке 1000 записей, то при каждом locate приложение замирает секунд на 5 
 
    Смотрел исходники девок на эту тему, есть мини непонятка. 
 В настройках у меня стоит DataController.DataModeController.SmartRefresh = true, но для обновления только части, а не всех данных, она не использовалась. 
 Но для того, чтобы обновлялось только нужная часть, нужно чтоб в DataController private переменная SmartRefresh была установлена в true, но она всегда установлена в False.  
 Как сделать, чтобы при locate тупо все данные не обновлял cxGrid? Ну или как сделать так, чтобы эта private переменная была установленна в true. Где она меняется я по их исходникам не нашел.   
 в принципе часть кода я переписал, для полного соответствия можно использовать что-то типа:  
Код:     Temp1 := Grid.DataController.KeyFieldNames; 
   Try 
     Grid.DataController.KeyFieldNames := FieldName; 
     Grid.DataController.BeginLocate; 
     Try 
       Grid.DataController.LocateByKey(Temp); 
     Finally 
       Grid.DataController.EndLocate; 
     End; 
   Finally 
     Grid.DataController.KeyFieldNames := Temp1; 
   End;