运行时,一下量具出现问题,都是“实时错误 380 无效的属性值”。
Slider.Max = Int(Val(MPlayer.currentMedia.duration))
lblTimeEnd.Caption = Str(MPlayer.currentMedia.durationString)但是,在调试时却一点问题都没有问题(包括直接按F8调试)。
这让小虾米俺束手无策了

解决方案 »

  1.   

    我试过
    原句为Slider.Max = MPlayer.currentMedia.duration
    后来改成Slider.Max = Val(MPlayer.currentMedia.duration)
            Slider.Max = Int(MPlayer.currentMedia.duration)
            Slider.Max = Int(Val(MPlayer.currentMedia.duration))
    问题无法解决,用容错语句条过后,Slider.Max无法获得MPlayer.currentMedia.duration中的值。
    但是,用F8和Shift+F8调试时,却没有任何问题,实在是太郁闷了。
      

  2.   

    请检查Slider控件属性页属性MAX值的设置是否符合MPlayer.currentMedia.duration的要求.将Slider控件属性页属性MAX值调大到MPlayer.currentMedia.duration输出的最大值.
    以下见MSDN的说明:
    属性值无效(错误 380)
    给属性赋予了一个不适当的值。此错误产生的原因及解决方法如下: 
    试图为对象或控件的属性设置允许范围之外的值。 
    把属性的值改为有效的设置值。例如,MousePointer 属性必须被设为一个从 0 到 15 或 99 的整数。
      

  3.   

    Slider控件属性页属性MAX值的设置值必须是>0,否则报错"实时错误 380 无效的属性值",你需用代码判断:
    If Val(MPlayer.currentMedia.duration) > 0 Then
        Slider.Max = Val(MPlayer.currentMedia.duration)
    Else
        Slider.Max = 1
    End If
      

  4.   

    先谢谢您们的帮助,我在调试时得到以下值:
    MPlayer.currentMedia.duration=246.264设断点后,只要是手动F8一步一步走那几行代码,就没有任何问题。
    Slider.Max也被正确赋值了,得到246.但去掉断点后,F5运行后,仍有问题。
    我曾怀疑过Slider.Max属性的类型是Integer,试过用任何我知道的办法把MPlayer.currentMedia.duration的值转换成整型,都无济于事。而且我已经排除是MPlayer.currentMedia.duration的值的问题了。
      

  5.   

    可以确定的是,MPlayer.currentMedia.duration虽然被读出来了,但是却没有被赋到Slider.Max当中去,既Slider.Max把MPlayer.currentMedia.duration的值当成0了所以才出现这个问题。
    是不是我的这句代码写错了?
    MPlayer.currentMedia.getItemInfo (duration)
      

  6.   

    现在,这个问题,已经被我自己解决了。
    错误并不在这几行代码上
    而是我在用MPlayer.URL读取文件地址后直接获得文件的总时长
    但这时控件还没有把文件读完,还没有得到MPlayer.currentMedia.duration的值
    而且MPlayer.currentMedia.duration的值要在文件播放时才能获得
    所以MPlayer.currentMedia.duration的值一直是0当我手动调试的时候,虽然程序被我断下来了,但是控件并没有停止运行
    控件读取文件的速度比我按F8的速度要快,所以当我运行到
    Slider.Max = MPlayer.currentMedia.duration时,文件已经读取完毕,
    MPlayer.currentMedia.duration的值自然就得到了246.264
    所以在调试时没有出现任何问题,而正常运行却总是报错。后来我用一个Timer监视MPlayer.playState的状态,再根据状态决定是否读取
    MPlayer.currentMedia.duration的值,至此问题不再出现。在这里我谢谢各位的帮助,这也是你们的回答启发的我,谢过,谢过。
    猪春假期间大家都快快乐乐!