我用的是ADO对ACCESS数据库进行存储
  Self.ADOQuery.Close;
  Self.ADOQuery.SQL.Clear;
  Self.ADOQuery.SQL.Add('Select * From MClass');
  Self.ADOQuery.Open;
  Ico:=TIcon.Create;
for i := 0 to Self.ADOQuery.Recordset.RecordCount-1 do begin
    Try
      Ico.Assign(ADOQuery.FieldByName('Ico'));
      Ico.SaveToFile('c:\icoo\'+IntToStr(i)+'.ico');
    except end;
   j:=IntToStr(ImgList.AddIcon(Ico))
   ImgList.GetIcon(j,GameIco);
   Ico.SaveToFile('c:\ico\'+IntToStr(j)+'.ico');
   Self.ADOQuery.Next;
end;在2003系统下正常 在XP系统32位色下会出现部分图标是黑块
我试图用ico.savetofile来测试 在ImgList.AddIcon之前保存出来的图标正常
从ImgList.AddIcon里导出来的图标有部分就是黑块在把xp下的色位改成16位色图标都正常了
我不知道到底哪里出问题了

解决方案 »

  1.   

    的确有些奇怪,难道调到32色就不行?跟色彩有个关?
    刷新一下,看看会不会出来,refresh
      

  2.   

    图标没问题的吖
     我在2003系统下是完全正常
       而XP下也测试       Ico.SaveToFile( 'c:\icoo\ '+IntToStr(i)+ '.ico '); 
         
          ImgList.AddIcon(Ico);      ImgList.GetIcon(j,Ico);
     
          Ico.SaveToFile( 'c:\ico\ '+IntToStr(j)+ '.ico '); 在添加进imglist前和都导出到C盘查看的
     添加前导出来的都正常  添加后导出来的部分图标是黑块
      

  3.   

    不是像素大小的问题,是你用的色值,大于256色的就不行,icon文件显示不了
      

  4.   

    那怎么在2003系统下32色完全正常 在XP16色下也完全正常呢 却只在XP32色下部分图标出现这中问题
      

  5.   

    我也遇到此问题,不知怎么回事,只能动态加载ICO,可以解决,但要带图标文件到程序目录中