一个问题问了三次,可是一直没有处理,在数据库的一个表中,我存放了image类型的数据,现在我想做一浏览界面,在界面上能够依据表中记录的多少,自动创建相应数量的image(或其它的东东)排列显示表中所有的图片。请问各位大侠如何实现该功能!最好有源码作参考,谢谢各位大侠!

解决方案 »

  1.   

    要用一个TScrollBox类,来放置要创建的TImage对像.根据表中Image数据的个数创建以TSrolllBox为Parent的Image来显示数据库的图片.创建的Image要放到一个TList中保存.以便在窗体释放所以创建的的Image.
      最好设计两个类: 1: TPhoto = class; //单个的图片类
                      2: TPhotosMangers = classs ;//图片类管理器,负表对数据库的操作,产生相应的TPhoto,以及负责所以TPhoto对像的释放等功能.
      

  2.   

    to:DelphiBoy2003
       就是把数据库中一个image字段中的所有图形排列出来,数量等于记录数,显示用滚动浏览的方式
      

  3.   

    TO:BlueDreaming(蓝色海岸) :
       能给详细一点的说明吗,或者可以给我写出关键部分的代码吗?
    谢谢!
      (我实在是只菜鸟!)
      

  4.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
      i : Integer;
      spd : TImage;
    begin
      for i := 0 to 200 do    //此处循环你可以用记录循环来代替
      begin
        spd := TSpeedButton.Create(Form1.scl);  //scl 是SrolllBox
        spd.Parent := scl;
        spd.Picture.LoadFromFile(你的路径);
        spd.Visible := True;
        spd.Height := 60;
        spd.Name := 'Image'+ IntToStr(i);  // 可有可无
        spd.Width := 70;
        if i div 11 > 0 then             // 这里的计算是为了排列整齐
          spd.Top := (i div 11)*60
        else
          spd.Top := 0;
        spd.Left := 70 * (i mod 11);
    end;
    end;
      

  5.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
      i : Integer;
      spd : TImage;
    begin
      for i := 0 to 200 do    //此处循环你可以用记录循环来代替
      begin
        spd := TImage.Create(Form1.scl);  //scl 是SrolllBox
        spd.Parent := scl;
        spd.Picture.LoadFromFile(你的路径);
        spd.Visible := True;
        spd.Height := 60;
        spd.Name := 'Image'+ IntToStr(i);  // 可有可无
        spd.Width := 70;
        if i div 11 > 0 then             // 这里的计算是为了排列整齐
          spd.Top := (i div 11)*60
        else
          spd.Top := 0;
        spd.Left := 70 * (i mod 11);
      end;
    end;
      

  6.   

    用imagelist(好像叫这个),然后根据需要选取index,就可以显示了。
      

  7.   

    这是我做的对红外相机的热图的处理的两年对类的声明和你说的情况相似.代码较多---所以只贴了声明!看合适不!
     
      TPhotosManager = class;
        
      TThearmalPhoto = class
      private
        ID: Integer;
        FImage: TImage;
        FPanel: TPanel;
        FPnl: TPanel;
        FIsiName: string;
        FPhotosManager: TPhotosManager;
      protected
        destructor destroy;override;
        procedure LoadThearmalPhoto(ms: TStream);
        procedure SetPhotoName;
        procedure GetMax2MinTemp(ABuf: array of word);
        procedure GetRelaParams(AStream: TStream); //得到发射率、背景温度、最大温度和最小温度等.
        procedure ImageOnClick(Sender: TObject);
        procedure SetColor(Sender: TObject);
        procedure SendRelaParams;
      public
        constructor create(AParent:TComponent; APM: TPhotosManager;IsiName: string; ms: TStream);
        //得到一个点的温度值.
        function  GetPointTemp(P: TPoint): Real;
        procedure PicViewRepaint;
        function  GetPointTempEx(P: TPoint): Word;
        procedure CreateMax2MinShape;
        procedure FreeMax2MinShape;
        property  Container: TPanel Read FPanel;
        property  Image: TImage Read FImage;
      end;
      TPhotosManager = class
      private
        FRow,
        FCol: Integer;
        FPhotos: TList; //TThearmalPhoto类的容器,用于保存TThearmalPhoto对象.
        FParent: TComponent; //用于放置显示TThearmalPhoto对象的容器
        FCurPhoto: TThearmalPhoto;
      protected
        destructor destroy; override;
    //ISIName图片名称; ms从数据库读到的图片流.
        function AddPhotoItem(ISIName: string; ms: TStream): TThearmalPhoto;
    //当窗体Resize时调整图片在Parent(为TScrollBox类)时的位置等.
        procedure  AdjustOnePosition(APhoto: TThearmalPhoto);
        //产生一个ID.
        function   PersistBeltaId: Integer;
      public
        constructor create(AParent: TComponent);
        procedure  FreePhotos;
        procedure  AddAllPhotos(Qry: TAdoQuery); //传递打开的Query 
        procedure  AdjustPosition;
        //由ID得到一个TThearmalPhoto对像.
        function   GetBeltaById(Id: Integer): TThearmalPhoto;
        procedure  SetPnlColor(APhoto: TThearmalPhoto);
        //设置图形的Palette.
        Procedure  SetDIBColorTableEx(Index: Integer);
        property  CurPhoto: TThearmalPhoto Read FCurPhoto;
      end;
      

  8.   

    TO :DelUser(探索者) 
        我是从数据库中取数据!