Как сохранить позицию в таблице после обновления (Delphi) ?
Дата публикации:

Как сохранить позицию в таблице после обновления (Delphi) ?


Шли годы и я нашел как можно сделать Requery без потери позиции и без создания дурацих циклов. Собственно в Delphi даже 7 все уже давно есть. Разработка программ для Водоканала Код очень простой:
position2:=GetScrollPos(Form1.DBGridEh1.Handle, SB_VERT); //поза таблицы position:=Form1.ADODataSet1.GetBookmark; //поза указателя Form1.ADODataSet1.Requery(); //запрос Form1.ADODataSet1.GotoBookmark(position); //вернем позу указателя SetScrollPos(Form1.DBGridEh1.Handle, WM_VSCROLL, position2, True); // вернем позу таблицы
Тут есть важный момент, положение таблицы и указателя – это разные вещщи. С каждой работать в отдельности. Вообще этот код очень некрасив нет что не проверяет разного рода исключений, а надо бы, тем более если мы меняем сортировки, удаляем или фильтруем БД. А если просто апдейтим то можно и так.

Telegram канал о биржах ссылок
Видеочат рулетка