我的代码循环执行TBitmap.assign('xxx.gif')操作(xxx每次不同)
在Win98下当循环的文件很多时会出现“Bitmap is not valid”的错误,而WinXP下不会,请问这个问题是由什么引起的?

解决方案 »

  1.   

    明显是操作系统API函数造成的。在windows98下进行图形处理的API函数没有将gif格式加入进去,而在XP里可能有了修正
      

  2.   

    var
      bmp :TBitmap;
      Gif :TGifImage;
    begin
      if ExtractFileExt(CurrentFile)='.gif' then
      begin
        Gif:= TGifImage.Create;
        Gif.LoadFromFile(CurrentFile);
        bmp :=TBitmap.Create;
        bmp.Assign(Gif);//在这里我用的d7版的TGifImage,会报错,但可以在外面忽略掉。
        Image.picture.Bitmap.Assign(bmp);
      end 
    end;
      

  3.   

    winXP下不会???????????????
      

  4.   

    而且文件少时就不会出现这种状况。To jingye(井中叶):
    但可以在外面忽略掉是什么意思?
      

  5.   

    To DWGZ():
    是啊。
    我的程序是在98下编的,98下文件多了会出错,但XP就不会
      

  6.   

    对不起,代码是这样的:
    var BmpSource: TBitmap;
        Gif: TGIFImage;for ......... do
    begin
    //省掉n行
    Gif := TGIFImage.Create;
    Gif.LoadFromFile(ImgFileName);
    BmpSource.Assign(Gif);
    //省掉n行
    end;
      

  7.   

    请问一般什么情况下会出现'Bitmap image is not valid'的错误?