Sherlock GUI开发:Ipe控件详解与引擎管理

5星 · 超过95%的资源 需积分: 50 70 下载量 97 浏览量 更新于2024-07-22 3 收藏 466KB PDF 举报
"本文档详细介绍了Sherlock GUI 开发,特别是针对CCD视觉的二次开发。主要内容涉及Sherlock Engine(IpeEngCtrl模块)和Sherlock Image Control(IpeDspCtrl)这两个关键控件的使用。开发者可以学习到如何初始化和终止Sherlock Engine,以便于在应用程序中有效地集成和管理。 首先,Sherlock Engine是整个开发的核心组件,通过`IpeEngCtrlLib.Engine`接口实现。开发人员需要创建一个对象`objIpeEngCtrl`,并调用`EngInitialize()`方法来加载引擎,例如: ```vbnet Private WithEvents objIpeEngCtrl As IpeEngCtrlLib.Engine Dim nReturn As IpeEngCtrlLib.I_ENG_ERROR Private Sub CreateSherlockEngine() Dim IpeEngCtrlType As Type IpeEngCtrlType = Type.GetTypeFromProgID("IpeEngCtrl.Engine") objIpeEngCtrl = Activator.CreateInstance(IpeEngCtrlType) nReturn = objIpeEngCtrl.EngInitialize() End Sub ``` 在开发过程中,适时地调用`HaltSherlockEngine`方法是必要的,它用于停止引擎执行。有两种方式:一种是使用Do...While循环确保引擎真正进入halt模式,另一种是直接设置邀请模式(`InvModeSet`)。例如: ```vbnet Private Sub HaltSherlockEngine(ByRef objIpeEngCtrl As IpeEngCtrlLib.Engine) nReturn = objIpeEngCtrl.InvModeSet(IpeEngCtrlLib.I_MODE.I_EXE_MODE_HALT_AFTER_ITERATION) ' 使用Do...While循环 Dim mode As IpeEngCtrlLib.I_MODE Do nReturn = objIpeEngCtrl.InvModeGet(mode) Application.DoEvents() Loop While (mode <> IpeEngCtrlLib.I_MODE.I_EXE_MODE_HALT) ' 或者使用直接设置 ' nReturn = objIpeEngCtrl.InvMode = IpeEngCtrlLib.I_MODE.I_EXE_MODE_HALT End Sub ``` 本文档不仅提供了基础的实例代码,还强调了对Sherlock GUI开发中这两个核心控件的理解和操作,这对于希望在CCD视觉应用中使用Sherlock技术的开发者来说,具有很高的实用价值。通过深入理解和实践这些代码片段,开发者可以更好地定制和扩展自己的图形用户界面,实现高效、稳定的视觉处理流程。"