gpt4 book ai didi

delphi - 如何将 TDBGrid 记录 View 恢复到刷新之前的状态?

转载 作者:行者123 更新时间:2023-12-03 15:10:35 25 4
gpt4 key购买 nike

Possible Duplicate:
How to avoid TDbgrid scrolling when returning to a previous location

我正在寻找一种方法来保存和恢复Delphi的垂直滚动位置TDBGrid刷新发生后。目前,网格会自行重置,以便所选记录出现在记录列表的中间。

首先,属性 LeftColTopRow似乎是解决方案,但只有 LeftCol作品。 TopRow值始终为 1 并且永不改变。它似乎是网格内部记录缓冲区中的一个位置,该位置设置为网格中显示的行数。即看起来FBuffers是上下滑动的,但是TopRow始终保持为 1。

我所看到的详细示例是:

  • 网格显示 TClientDataSet 的 11 条记录,从记录 5 开始,依次显示到记录 15。
  • 所选记录光标位于记录 15( View 中的最后一条记录)上。
  • 数据集通过TDataSetProvider刷新链接到 TADODataSet 。 (.Open 或.Refresh 调用)。
  • dataset.Locate 方法用于在插入/删除时保留实际选定的记录。
  • 网格发生变化,记录 15 位于中心,并显示记录 10 到 20。

是否可以保存/恢复/执行任何操作,以便网格可以恢复到其原始查看配置,显示记录 5-15,并且光标位于同一选定记录上,无论它出现在何处?

在我的多次搜索尝试中,我能找到的最接近的东西是在 Delphi 3.0 中通过 TopRow、LeftCol 解决的问题,此处:http://www.delphigroups.info/2/79/314206.html

通过 DBGrids.pas 进行探索也没有为我提供一种相对于底层数据集记录定位缓冲区指针的方法。

最佳答案

关于delphi - 如何将 TDBGrid 记录 View 恢复到刷新之前的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8793857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com