记得以前用过,好像叫 topvisable 之类的,类似ado的book,在刷新数据前在取得行号id,刷新完后再赋值回去。这样数据刷新了,行并没滚动
解决方案 »
- 请教几个insert into 语句,迷糊了。
- 请问如何把这样的时间格式转换一下
- Delphi COM 如何在 type Library editor 中插入自己的接口?
- 一个端口是不是可以产生多个socket?
- 向各位大侠求一个树形操作界面的数据库通用查询控件
- 复杂SQL问题,求救!!!
- 问一个简单的问题,如何才能使工具栏上的按钮靠右排列.
- 如何修改注册表,还加一个很难的注册表问题!
- 记事本用什么函数输出文字?比如:exttextout,textout等。(1000分,不够再加)
- 如何读取参数文件?
- 求助,条件查找SQL数据,哪里错了
- sqlplus什么的可以运行sql语句,delphi一运行就报错!
Query.EnableControls;
p:Pointer;
begin
p:=ADOQuery1.GetBookMark;
...
ADOQuery1.GoToBookMark(p);
end;
先记录下cxgrid的当前行号,刷新数据后,再重新定位cgrid的行号
和用什么样的Grid没关系的,普通的DBGrid或者CxGrid一样处理
var Curr_recn:integer; //定义一个记录当前数据集的Recno
begin
Curr_recn:=adoquery1.recno;
adoquery1.close;
adoquery1.open; //刷新了
adoquery1.recno:=Curr_recn;
end;
程序对对数据集的定位会不会自动反映到grid上呢?对DBGridEh.datasource.dataset中的记录定位是可以反映在DBGridEh上的
刷新前记录这个值,刷新后再设置这个属性值,cxtreelist可以实现你说的,实际用过
procedure TFlow.S1Click(Sender: TObject);
var i:integer;
begin
i:=cxGrid1DBTableView1.Controller.FocusedRowIndex;
**********.Active:=False;
**********.Active:=True;
try
cxGrid1DBTableView1.Controller.FocusedRowIndex:=i;
except
end;end;
var i,ti:integer;
begin
i:=cxGrid1DBTableView1.Controller.FocusedRowIndex; //记录焦点行号
ti:=cxGrid1DBTableView1.Controller.TopRowIndex; //记录顶行号
数据集.Active:=False;
数据集.Active:=True;
try
cxGrid1DBTableView1.Controller.FocusedRowIndex:=i; //焦点行定位到记录值
cxGrid1DBTableView1.Controller.TopRowIndex:=ti; //顶行 定位到记录值
except
end;
end;