:TStringGrid如何实现分页显示 .急(200分)

  • 主题发起人 ANTIDEAD
  • 开始时间
A

ANTIDEAD

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现用TstringGrid显示数据时可以分页显示(在数据库(*.mdb)中)
按钮“下一页”、“上一页”、“最有一页”、“第一页”相应代码如何实现?
 
你将TstringGrid.rowcount设置成你那表的记录数。
将表的记录逐个显示到StringGird中,它自己会有流动条这不行吗?
 
感觉你的用法有点怪僻。
想知道为什么要这么做。
 
to ybaochuan 使用中,不需要滚动条,只需只读显示,不用用户对此处操作.(另:最好给代码,分不够,可再加:).
 
教你一招最简单的,弄两个StringGrid,StringGrid1.visible:=false;
它用来存储整个数据表.
另外一个用来显示数据.
stringGrid2.rowcount设置成你想要的每页的记录数n.
设一个全局变量来纪录当前纪录指针.
第一页,就用stringgrid2显示前n条纪录(从stringgrid1里面取,简单不过),
下一页,取当前指针的下n条纪录,
.....
这是最好理解的方法.
还有更简单的.
http://go4.163.com/cy8848/delphi_3_7.htm
下载EasyGrid,跟stringgrid差不多,
直接可以分页看,就是预览.
 
想一下代码满足你的要求。
 
对了,为什么要这么用呢?想达到什么效果?
 
:bubble以这个思想!
StringGrid一个也够了!
 
我回来 了。
 
ANTIDEAD
我代码怎么贴不上去,上面那个(我回来了)短的可以
代码也不长啊,怪。
留下MAIL吧。我发给你。先给首页、末页的代码:注意使用过程前要使表active:=true
 
to yhaochuan:
email:antidead@263.net
 
代码发了
 
谢谢,大家!
 
可能是我没有弄明白你的意思。你说的这个也太简单了。
只有把stringgrid的行数设成你认为的一页,然后从数据
库里逐条读出来写在stringgrid中就可以了,而且只读什
么的根本不用考虑,把stringgrid的readonly属性打开就
可以了。

var i:integer;
begin
table1.MoveBy(strtoint(label1.caption));
for i:=1 to stringgrid1.RowCount-1 do begin
table1.Next;
stringgrid1.Cells[1,i]:= table1.Fields.Fields[0].AsString;
stringgrid1.Cells[2,i]:= table1.Fields.Fields[1].AsString;
end;
label1.caption := inttostr(table1.RecNo);
 
顶部