请问
用DBIMAGE显示数据库里的图片。一张一张显示的我会怎样一次显示10张?
比如,窗体上,一次显示10张,然后按“下一页”按纽
就显示第11到第20张
这样循环下去最后那不足10张的就有几张显示几张请问怎么实现?????????????????????????????

解决方案 »

  1.   

    加个循环,把它一张一张读出来再放到DBIMAGE里,不知道对不对
    我是菜鸟
      

  2.   

    好象不行吧,除非用10个ADOQUERY
    因为,你游标到下一张的时候,图片就到下一张了啊
      

  3.   

    放一个DBNavigator1,连接一下datasource就OK了,可以左右方向的看图片,好好啊!!~
      

  4.   

    创建一个临时表,表结构如下:
    ID  INT  
    P1  IMAGE
    P2   ..
    P3
    P4
    ....P10
    一次循环读取10个记录到临时表,而DBIMAGE绑定到P1,P2,P3字段上.就可以了.
      

  5.   

    lionlsl(林) 你说的肯定不行,这个我当然会 longtusoft(神灯之主)你说的好象可以
    不过我不太会用临时表,能否说详细一点
    给个例子行吗?
      

  6.   

    不用DBImage 
    行不行?
    用Image 就不会随着游标跑,
        --不知道对不对
      

  7.   

    tengxiang05(腾翔) 
    说得有点道理
    我会考虑谢谢各位还有什么方案吗?
      

  8.   

    是简单的方法:
    procedure TForm1.Button1Click(Sender: TObject);
    Var
      I:Integer;
    Begin
      I:=0;
      Query1.SQL.Text:='Select * from ImageTable';
      Query1.Open;
      While (not Query1.Eof)and(I<=9) do
        Begin
        Query1.Next;(可设置BookMark以便下次在此继续)
        ...
        Image1.Picture:=DBImage1.Picture;
        I:=I+1;
        End; 
    End;当然完全可以用游标实现
      

  9.   

    procedure TForm1.NextButton1Click(Sender: TObject);
    Var
      I:Integer;
    Begin
      I:=0;
      While (not Query1.Eof)and(I<=9) do
        Begin
        Query1.Next
        ...
        Image[i].Picture.Bitmap.Assign(Query1.FieldByName('图片'));
        I:=I+1;
        End; 
    End;
    procedure TForm1.PreviousButton1Click(Sender: TObject);
    Var
      I:Integer;
    Begin
      I:=0;
      if Query1.RecNo>10 then Query1.MoveBy(-10) else Query1.First;
      While (not Query1.Eof)and(I<=9) do
        Begin
        Query1.Next;(可设置BookMark以便下次在此继续)
        ...
        Image[i].Picture.Bitmap.Assign(Query1.FieldByName('图片'));
        I:=I+1;
        End; 
    End;