现在是这样的。一组数据(大概有10条左右。)要显示出来。还要不停的滚动。用什么控件来实现。结果我计算出来了。但是不知道怎么显示。试过很多控件都不理想。TcxDBMemo能显示结果集吗?是一次性添加进去不是跟memo一样一条一条加进去。GRid这些控件又不理想。

解决方案 »

  1.   

    你用个paintbox来画吧,在里面没画一批(10个名字)间隔一下就画下一批
      

  2.   

    要啥资料啊拖个 paintbox上去
    用paintbox.canvas.textout 来把这些名字画上去啊
    textout(10,10,'柳宗元'); // 就是在 x=10,y=10这个位置画上一个字符串
    画了第一批10个名字后,间隔一下画下一批不就是刷新了么不用paintbox也可以,在主窗体上画也行,form1.canvas.textout
      

  3.   

    最终我只能这么干了。但是那刷的那个迟钝啊。。
       i:=1;
     while  i <=10 do
     begin
       i:=i+1;
        with DataModule3.qry3 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('select top 1 姓名工号 from 抽奖数据 order by Rnd(-编号*' + IntToStr(Random(50)) + ')');
          Open;
        end;
        Form1.Canvas.TextOut(624,160+(i*25),DataModule3.qry3.FieldValues['姓名工号']);
     end;
      

  4.   


     while  i <=10 do
     begin
       i:=i+1;
        with DataModule3.qry3 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('select top 1 姓名工号 from 抽奖数据 order by Rnd(-编号*' + IntToStr(Random(50)) + ')');
          Open;
        end;
       // 保存到这个数组dataArr中,然后在OnPaint中遍历这个dataArr把这10个字符串都画出来
        dataArr[i]:= DataModule3.qry3.FieldValues['姓名工号'];
       // Form1.Canvas.TextOut(624,160+(i*25),DataModule3.qry3.FieldValues['姓名工号']);
     end;
    // 把下面改改, 在一个timer中获取更新的这10条数据,填充dataArr后,OnPaint中画出来
    http://pan.baidu.com/s/1c0h6tuK