imageList里面有多个ico文件,如何把动态把imageList里面的ico资源保存成一个独立的文件,另外下次怎么把这个资源load回imageList里面去,给2个代码段,一个是保存文件的代码,一个是读取这个资源文件到imageList的代码小弟。

解决方案 »

  1.   

    保存
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:ticon;
    begin
    i:=ticon.Create;
    ImageList1.GetIcon(0,i);
    i.SaveToFile('e:\temp\t.ico');
    i.Free;
    end;
    读回
    procedure TForm1.Button2Click(Sender: TObject);
    var
      i:ticon;
    begin
    i:=ticon.Create;
    i.LoadFromFile('e:\temp\t.ico');
    ImageList1.InsertIcon(3,i);
    i.free;
    end;
      

  2.   

    楼上的方法并没有将所有的多个ICO资源保存成一个独立的文件啊procedure TForm1.SavetoFileClick(Sender: TObject);//保存
    var
      b: TbitMap;
    begin
      b := TbitMap.Create;
      try
        b.Handle := ImageList1.GetImageBitmap;
        b.SaveToFile('图标集合.bmp');
      finally
        b.Free;
      end;
    end;procedure TForm1.LoadFromFileClick(Sender: TObject);//读取
    var
      b: TbitMap;
    begin
      b := TBitMap.Create;
      try
        b.LoadFromFile('图标集合.bmp');
        ImageList1.Add(b,nil)
      finally
        b.Free;
      end;
    end;这是我刚刚写的。是将ImageList中的所有Ico全部保存到一个bmp文件中,该文件可用来加载全部的Ico资源。不知道是否达到你的要求:)