以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  “UserCode”的类型初始值设定项引发异常  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=125358)

--  作者:nxdx112
--  发布时间:2018/9/27 7:51:00
--  “UserCode”的类型初始值设定项引发异常
借用狐友的拍照制作的此拍照程序,当有摄像头时没有问题,但当程序无法检测到摄像头设备或如无设备就会报错,能有办法解决吗?请老师帮助。
“UserCode”的类型初始值设定项引发异常。详细信息-.NET Framework 版本:2.0.50727.8793
Foxtable 版本:2018.9.9.1
错误所在事件:窗口,拍照,AfterLoad
详细错误信息:
“UserCode”的类型初始值设定项引发异常。
No devices of the category

摄像头代码如何加入判断,当没有摄像头时候就不拍照,当有摄像头时候才拍照

try
    Dim cmr As New DCap.Filters()
catch ex As exception
    msgbox("没有设备")
End try
不起作用,也不知道放到哪里,请老师帮忙!


[此贴子已经被作者于2018/9/27 14:10:39编辑过]

--  作者:有点甜
--  发布时间:2018/9/27 9:27:00
--  

1、全局代码

 

Public _Cams As DCap.Filters = New DCap.Filters()

 

改成

 

Public _Cams As DCap.Filters

 

2、afterLoad事件

 

try
    Dim cmr As New DCap.Filters()
catch ex As exception
    msgbox("没有设备")
    \'Return
    e.Form.close
End try

Dim camList As WinForm.ComboBox = e.Form.Controls("CamList")
\'设置控件大小
Functions.Execute("SetCamBoxSize",e.Form,True)
\'设置移动条
e.Form.Controls("BarX").Value = e.Form.Controls("LineBox").Left - e.Form.Controls("CamViewBox").Left
e.Form.Controls("BarY").Value = e.Form.Controls("CamViewBox").Height - (e.Form.Controls("LineBox").Top - e.Form.Controls("CamViewBox").Top)
e.Form.Controls("BarW").Value = e.Form.Controls("LineBox").Width
e.Form.Controls("BarH").Value = e.Form.Controls("CamViewBox").Height - e.Form.Controls("LineBox").Height
\'显示拍照框尺寸
e.Form.Controls("BoxW").Value = e.Form.Controls("LineBox").Width
e.Form.Controls("BoxH").Value = e.Form.Controls("LineBox").Height
_lVars(0) = e.Form.Controls("AutoTake").Checked
\'设置保存路径
If _sVars(0) <> ""
    e.Form.Controls("FileName").Value = _sVars(0)
End If
\'获取摄像头列表
Functions.Execute("GetCams")
\'显示摄像头列表
Dim i As Integer
camList.Items.Clear
For i=0 To _CamList.Count - 1
    camList.Items.Add(_CamList(i))
Next
\'默认选中第一个摄像头
If _CamList.Count > 1 And _CamIndex < 1
    _CamIndex = 1
End If
camList.SelectedIndex = _CamIndex
\'激活预览
If _CamList.Count > 0
    Functions.Execute("SetCamView",_CamIndex,e.Form.Controls("CamView"))
Else
    MessageBox.Show("未检测摄像头,请先连接摄像头!","警告")
    e.Form.Close()
End If
\'启动定时器
_iVars(0) = 0
e.Form.TimerEnabled = True


--  作者:zhouhai39
--  发布时间:2019/1/9 1:01:00
--  
谢谢!

这样改过后旧问题解决了,但又提示了新问题:引用了未指定对象
[此贴子已经被作者于2019/1/13 23:53:19编辑过]