怎样实现在DBGRID中滚动滚动条时而保持当前记录不随移动?多谢! (50分)

  • 主题发起人 主题发起人 stucxm
  • 开始时间 开始时间
S

stucxm

Unregistered / Unconfirmed
GUEST, unregistred user!
我要在DBGRID中滚动滚动条时而保持当前记录不随移动,也就是当立前焦点不会改变,请问怎么
实现?谢谢!
 
好像DBGrid实现不了
换控件
 
TO: TWOS:
请问换什么控件才可以实现?
 
有什么dxDBGrid之类的],网上可以下载到的
这里讨论的也比较多,你可以看一下
 
换stringgrid,嘻嘻
只要先把dataset中所有纪录都读入stringgrid就行了

dbaware的控件要实现这个功能很复杂的。 因为dbaware的grid控件每次只缓存能显示的
那一页的数据, 不移动当前纪录不可能获得超过当前显示出来的数据之外的纪录。 要实现
你说的功能, 只有移动前保存当前纪录, 并且保存所有移动当前纪录时会触发的事件并清空
所有相关事件, 如果是edit状态则保存所有做过的修改,然后cancel掉当前纪录的修改,
移动纪录, 获取新的显示内容,再将纪录移回原来的位置,并恢复所有相关的事件,如果原来
是edit状态则将保存下来的修改内容填回去。

从上面所作的工作来看, 估计没有一种dbgrid控件会提供这种功能,因为效率太低,
没有一种控件会为了显示上好看而作这么复杂而低效的事。
 
多谢Pearl大侠的指教,难道这个问题就没有解决的办法了吗?
 
有啊, 不是说了嘛
如果数据量小的话就把数据全部读入stringgrid(或者其它什么grid)里。 估计dbaware的grid控件都不行。只有用不是db相关的grid控件然后自己处理纪录移动的事件。
 
问题是我的数据记录很多,而且要显示的窗口又多,如果按pearl所说的方法做的话我怕是很麻烦
的,不知道还有没有简单一点的方法?
 
这个问题到底有解吗? 呵呵
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部