大侠们好!
假如我用query查询出很多记录(只有一个字段,行数很多),现在想将这些记录显示在一个EDIT内,或DBEDIT内,就是说第一条记录一显示出来,马上又被第二个记录刷新,就是象平常看到的身份证抽奖一样,记录不断的在刷新。当按‘停止’键时,选定唯一号码。
怎么做呢?谢谢!
假如我用query查询出很多记录(只有一个字段,行数很多),现在想将这些记录显示在一个EDIT内,或DBEDIT内,就是说第一条记录一显示出来,马上又被第二个记录刷新,就是象平常看到的身份证抽奖一样,记录不断的在刷新。当按‘停止’键时,选定唯一号码。
怎么做呢?谢谢!
begin
edit1.text := QUERY_TEMP.Fieldbyname('youfield').asstring;
QUERY_TEMP.next
end
这样做的话,EDIT内的记录可能是刷新得太快了,感觉EDIT内无闪动,直接将最后一条记录显示出来了。
如何加个延时控制呢?
谢谢啦!
while not adoquery.eof do
begin
edit1.text := adoquery1.Fieldbyname('fielname').asstring;
time1.enable:=true;
qdoquery1.next
end
with ADOQuery1 do
begin
Close;
sql.Clear;
sql.Add('select productname from products');
open;
First;
while not Eof do
begin
edit1.Text := fieldbyname('productname').AsString;
sleep(500);
Application.ProcessMessages;
next;
end; { while }
end; { with }
procedure TForm1.Timer1Timer(Sender: TObject);
begin
while not QUERY_TEMP.eof do
begin
edit1.text := QUERY_TEMP.Fieldbyname('youfield').asstring;
QUERY_TEMP.next
endend;
可以设置timer控件的interval属性来控制速度
开始的时候可以将timer控件的enabled属性设为false在
haerbin982大侠啊,TIMER的ONTIMER加入什么语句呢?
每人44分怎么样,多谢啦!
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if not QUERY_TEMP.eof then
begin
edit1.text := QUERY_TEMP.Fieldbyname('youfield').asstring;
QUERY_TEMP.next
end
begin
edit1.text := QUERY_TEMP.Fieldbyname('youfield').asstring;
edit1.Refresh;
QUERY_TEMP.next
end
begin
APPLICATION.PROCESSMESSAGE;
edit1.text := QUERY_TEMP.Fieldbyname('youfield').asstring;
QUERY_TEMP.next;
SLEEP(STRTOINT(EDIT.TEXT));
end