Cryogen2003
![](http://forum.ru-board.com/board/avatars/hobo.gif)
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Добрый день. Еще раз про поиск с 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; | Но ведь хочется искать и не по полному соответствию, и не только по начальным буквам ![](http://forum.ru-board.com/board/s/sad.gif)
---------- Холодильники мы |
|