大家好!
  我想实现以下的功能。
  一张表中有十条记录。我想每隔10秒钟就将一条记录以字符串的形式放到panel caption 属性中。当到最后一笔记录的时候,程序又要从第一条开始显示!谢谢!

解决方案 »

  1.   

    新建工程、将定时器Timer1、Panel1、ADOQuery1放入窗体,将Timer1.Enabled设为false、Timer1.Interval设为10000,设置好 ADOQuery1 与数据库的连接,摆放好Panel1后,双击定时器Timer1并输入如下代码:procedure TForm1.Timer1Timer(Sender: TObject);
    var i:integer;
        s:string;
    begin
      for i:=0 to ADOQuery1.FieldCount-1 do
        s:=s+ADOQuery1.Fields.Fields[i].AsString+' ';
      Panel1.Caption:=s;
      if ADOQuery1.Eof then
        ADOQuery1.First
      else
        ADOQuery1.Next;
    end;在窗体的FormShow事件输入如下代码:procedure TForm1.FormShow(Sender: TObject);
    begin
      ADOQuery1.Open;
      Timer1.Enabled:=true;
    end;
    编译运行,即可达到你的目的。
      

  2.   

    定时器事件代码改为:procedure TForm1.Timer1Timer(Sender: TObject);
    var i:integer;
        s:string;
    begin
      for i:=0 to ADOQuery1.FieldCount-1 do
        s:=s+ADOQuery1.Fields.Fields[i].AsString+' ';
      Panel1.Caption:=s;
      ADOQuery1.Next;
      if ADOQuery1.Eof then ADOQuery1.First
    end;
      

  3.   

    两种方法:
    一种是表中有一关键字段,ID,取值1~10,然后定时INC(ID),从表中取字段ID=ID的记录显示
    第二种:
    1.建立字符数组ArrayText[1..10],分别存放10条记录
    2.建立全局变量RecordIndex,用于指明当前显示的是第几条记录
    3.在10秒定时器中,Inc(RecordIndex),如果RecordIndex>10,则RecordIndex:=0;然后在PANEL中显示ArrayText[RecordIndex]
    4.适时从数据库获取最新记录存放至ArrayText
      

  4.   

    其实表内的数据不一定就是只有10条,用Timer可以搞定,但是可以考虑如果用户点了这个Panel后是否还要做什么处理?建议做出右下角的那种弹屏!网上有弹屏控件的!