200 分求助 在win98下显示Gif 文件 ( 积分: 200 )

  • 主题发起人 主题发起人 4502349
  • 开始时间 开始时间
4

4502349

Unregistered / Unconfirmed
GUEST, unregistred user!
以下代码在2000,xp 显示GIF正常,但是在Win98 下切换窗体就会出现 Kernel32.dll 无效页错误 的致命错误。
GIF := TGIFImage.Create;
try
GIF.ThreadPriority := tpLowest;
case PageNode of
tipStatusShuff : GIF.LoadFromFile(NewVodAppPath + StatusShuffTipName);
tipStatusAudio : GIF.LoadFromFile(NewVodAppPath + StatusAllAudioName);
end;
imgCurrNode.Picture.Assign(GIF);
finally
GIF.Free;
end;

然后其他的窗体有:
ImageA.Picture.Assign(imgCurrNode);
补充:GIFImage 是 2.2 版本的。
 
以下代码在2000,xp 显示GIF正常,但是在Win98 下切换窗体就会出现 Kernel32.dll 无效页错误 的致命错误。
GIF := TGIFImage.Create;
try
GIF.ThreadPriority := tpLowest;
case PageNode of
tipStatusShuff : GIF.LoadFromFile(NewVodAppPath + StatusShuffTipName);
tipStatusAudio : GIF.LoadFromFile(NewVodAppPath + StatusAllAudioName);
end;
imgCurrNode.Picture.Assign(GIF);
finally
GIF.Free;
end;

然后其他的窗体有:
ImageA.Picture.Assign(imgCurrNode);
补充:GIFImage 是 2.2 版本的。
 
换一台电脑看一下,可能是你的电脑有问题
 
2 台98 错误都是一样。
 
这个问题我遇到过。。。。。。最后找到的原因是GIF图片太大了,你去点几帧,或者换个小点的GIF图片试试

注意不是图片的尺寸大小,而是文件大小。。。。
 
我这里没有问题哦
 
问题已经差出, 是下面的代码有问题。
form1.ImgStatusTipShuff.Picture.Assign(imgCurrNode);
form2.ImgStatusTipShuff.Picture.Assign(imgCurrNode);
form3.ImgStatusTipShuff.Picture.Assign(imgCurrNode);
form4.ImgStatusTipShuff.Picture.Assign(imgCurrNode);
当我只有一个窗体Assign 时,不会出错,就象下面。但是有两个 Assign 时就出错了。
form1.ImgStatusTipShuff.Picture.Assign(imgCurrNode);

所以我现在糊涂了 Assign 不是 Copy 吗,怎么引起的错误是内存指针方面的(Kernel32.dll 错误)?
 
那就这样试试
form1.ImgStatusTipShuff.Picture.Assign(imgCurrNode);
form2.ImgStatusTipShuff.Picture := form1.ImgStatusTipShuff.Picture;
form3.ImgStatusTipShuff.Picture := form1.ImgStatusTipShuff.Picture;
form4.ImgStatusTipShuff.Picture := form1.ImgStatusTipShuff.Picture;
 
to czcn :
现在家没98 ,明天到公司再试。
你能给我说说是为什么吗?
 
在补充一下,窗体每次FormShow 的时候都要执行一次
form1.ImgStatusTipShuff.Picture.Assign(imgCurrNode);
form2.ImgStatusTipShuff.Picture.Assign(imgCurrNode);
form3.ImgStatusTipShuff.Picture.Assign(imgCurrNode);
form4.ImgStatusTipShuff.Picture.Assign(imgCurrNode);
 
to czcn ;
不行啊。
 
to hs-kill :
问题就象你说的那样,文件太大了,原来win98 有64k 的资源限制,我减少gif 文件的祯就解决了,分数给你,另外有个问题,在win98 下
GIF := TGIFImage.Create;
try
GIF.ThreadPriority := tpLowest;
case PageNode of
tipStatusShuff : GIF.LoadFromFile(NewVodAppPath + StatusShuffTipName);
tipStatusAudio : GIF.LoadFromFile(NewVodAppPath + StatusAllAudioName);
end;
imgCurrNode.Picture.Assign(GIF);
finally
GIF.Free;
end;
有着段代码程序一Run就死机,但是从vwin 2000 编译好放到98 运行就没问题,不知道什么原因,你有碰过吗?
能加我的msn 吗? wujun_lyx@hotmail.com
 
抱歉,前几天笔记本坏了,没看到邮件,在执行哪步的时候死机的?是调试环境死机还是编译好后运行才死?
我这也没98,没办法测试。。。。

98的怪毛病多多,能不使用GIFimage就不要用,我现在开发的98版本一般都是静态图,必须用动态的就拿flash代替
 
是在编译完后死机的,但是跟踪代码,上面那段代码安全通过,准备编译完就死机了。98 真是烦哦:(
 
..........晕
把那几行代码注销掉就没事了?我只遇到出错的情况。。。还没遇到过死机的

你确定是GIFimage的问题? 换个版本的试试?

实在不行就转成flash吧。。。我现在觉得flash确实是个好东西,就是CPU占用的高了点
 
:) 其实我也不敢确定是GIFimage 的问题,只是我把那几行代码注销掉就没事了,换了其他版本还是一样。你说的对,考虑到 flash 太耗资源了,不能用,客户电脑cpu 400m的都有啊
 
后退
顶部