我用ado连的SQL数据库!我想把图标存到数据库里,因为不知道怎么做,所以把图标的图片截下来,存到数据库里(JPEG格式的),再在那条记录上写上相对应的图标名称!然后在程序里一个一个读取,这样做在很多地方有问题,不是很方便,但这几天看了一些关于listview的贴子,知道了用listview可以像windows一样显示图标文件,所以想请教一下用listview怎么样才能读取数据库里的数据!可以的话,给点源代码!谢谢!

解决方案 »

  1.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      tempstream: TStringStream;
      tempIcon: TIcon;
      IconIndex: integer;
      item: TListItem;
    begin
      try
        //创建一个流,以便读取数据库中 的ICON
        tempstream := TStringStream.Create(' ');
        TBlobField(Query1.FieldByName('Icon')).SaveToStream(tempstream);
        tempstream.Position := 0;    //创建一个ICON对象,然后以流的方式加载进一个ICON数据
        tempIcon := TIcon.Create;
        tempIcon.LoadFromStream(tempstream);    //添加到ImageList1中
        IconIndex := ImageList1.AddIcon(tempIcon);    item := ListView1.Items.Add;
        item.Caption := 'sdfa';
        //显示ICON
        item.ImageIndex := IconIndex;
      finally
        tempstream.Free;
        tempIcon.Free;
      end;
    end;//保存ICON到数据库
    procedure TForm1.Button2Click(Sender: TObject);
    var
      tempIcon: TIcon;
      MS: TMemoryStream;
    begin
      tempIcon:= TIcon.Create;
      try
        with tempIcon do
        begin
          Handle:=Image1.Picture.Icon.Handle ;
          MS := TMemoryStream.create;
          SaveToStream(MS);
          MS.Position := 0;
          Query1.Edit;
          TBlobField(Query1.FieldbyName('Icon')).LoadFromStream(MS);
          Query1.Post;
        end;
      finally
        tempIcon.Free;
      end;
    end;
      

  2.   

    那图标在数据库里是怎么存储的!图标不是有图片和标题吗?我现在是把图片和标题分开存储的,而且图片是JPEG格式存的。这样通过 fei19790920(饭桶的马甲(抵制日货)) 大哥的方法是不是也能把图标的标题读取出来啊!
      

  3.   

    为什么要用JPEG格式存,ICON有ICON的格式!!
    保存的方法不是已经列出来了吗!!
      

  4.   

    *%*&#@!^$*&)(*)(*)_@!#!_)(#_)!_
      

  5.   

    fei19790920(饭桶的马甲(抵制日货)) 大哥,你说的代码是对数据库里的icon文件的存取吧我的意思是  像桌面上的"我的电脑"一样  它有"我的电脑"的icon,还有"我的电脑"这几个字啊,一个文件夹不是有它的icon和相对应的文件名吗?这个文件名在数据库里是不是应该和icon存在同一条记录里,读取的时候该怎么读取呢?
      

  6.   

    fei19790920(饭桶的马甲(抵制日货)) 好贴啊
      

  7.   

    fei19790920(饭桶的马甲(抵制日货))  好贴啊!你也照顾一下新手吧!呵呵,别晕了