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

23rd Декабрь 2009 ;)
Твитнуть

Шли годы и я нашел как можно сделать 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); // вернем позу таблицы

Тут есть важный момент, положение таблицы и указателя – это разные вещщи. С каждой работать в отдельности. Вообще этот код очень некрасив нет что не проверяет разного рода исключений, а надо бы, тем более если мы меняем сортировки, удаляем или фильтруем БД. А если просто апдейтим то можно и так.

Еще:

  • Куча демок на JavaScript размером в 1кб
  • Какими программами я стал пользоваться сегодня ? Thunderburd ClamAv Chromium
  • Grabr VS BobrDobr
  • Поменял я Титул
  • Delphi 7 под Windows 7

Подписаться на обновления блога

Вам понравился наш блог, хотите следить за обновлениями? Подпишитесь на RSS рассылку или рассылку по электронной почте. Так же вы можете следить за нами в Twitter.
Введите Ваш E-mail:

Твитнуть

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

GoGetLinks - Я зарабатываю тут
Онлайн Антивирус - Моя разработка
Онлайн Желания - Мой микросервис
Иногда проще Купить сайт
Лучшие материалы
Top WebMoney

КОД

Рубрики

  • Личное (927)
  • Новости (409)

Сайт делает jkeks Яндекс.Метрика