我在窗体上放了一个dbedit控件,想让它随着时间随机显示数据库的内容,但我只会随着时间逐条向下显示数据,请大家帮忙!(30分)

  • 主题发起人 主题发起人 wanglong6
  • 开始时间 开始时间
W

wanglong6

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm2.Timer1Timer(Sender: TObject);
begin
table1.next;
while table1.Eof do
table1.First;
end;

procedure TForm2.FormActivate(Sender: TObject);
begin
timer1.Enabled:=true;
end;
惭愧,水平太低,请您帮忙!
 
procedure TForm2.Timer1Timer(Sender: TObjectr);
begin
table1.MoveBy(Random(table1.RecordCount)
end;
 
你使用Table作为数据源,那么尝试使用
Table1.MoveBy(随机数)
注意判断是否到了Eof和Bof,不过这样做速度不好呀。
 
to leechange:
可是到了库底,它就不动了。
 
注意正负号。但存的Random(RecordCount)不行。
 
to yzhshi:
你说的很对,怎么办啊?
 
实验一下这个。没测试。
table1.MoveBy(table1.RecordCount-2*Random(table1.RecordCount)
 
procedure TForm2.Timer1Timer(Sender: TObjectr);
const
D: Integer =1;
begin
D:=D*-1;
table1.MoveBy(Random(table1.RecordCount)*D)
end;
 
to yzhshi:
真是高手,能告诉我table1.RecordCount-2*Random(table1.RecordCount))为什么
不是负数吗?
 
table1.RecordCount-2*Random(table1.RecordCount))不是负数?
不会吧?Random(table1.RecordCount)的范围为0~table1.RecordCount。
当随机数大于table1.RecordCount/2时,就可以为负数呀[?]
 
to yzhshi:
不好意思,知道了,但为什么dbedit1在显示表中最后数据的停留时间要长于别的数据呢?
 
应该是随机数产生的问题Random的问题。
MoveBy是一定个数,也许随机数的范围有些问题,这个就需要自己研究了。。。
 
to yzhshi:
不好意思,知道了,但为什么dbedit1在显示表中第一条数据和最后一条数据的停留时间要长于别的数据呢?
我想编一个抽奖的程序,这样就太不公平了!
 
根据Table1.RecNo来定位吧。
Random(Table1.RecordCount),然后着RecNo,这样慢。
 
to yzhshi:
能详细一点吗?
 
在Table1.MoveBy()的参数用一个函数返回数值,在函数中判断是否到Table1.Eof或Bof,
做出相应的解决方法。不可以吗?
 
看Random 的help
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
636
import
I
S
回复
0
查看
951
SUNSTONE的Delphi笔记
S
后退
顶部