亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? opcbrowserclass.cls

?? vb6.0與OPCSERVER的完整例子
?? CLS
?? 第 1 頁 / 共 2 頁
字號:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "OPCBrowserClass"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
' The OPCBrowserClass object houses all of the functionallity used
' to interact with an OPC server's tag browser.  This OPCBrowserClass
' is used here largely to wrap the functions supplied by the Automation
' interface with error handlers.  Unlike the OPCServerClass,
' OPCGroupClass, and OPCItemClass, the OPCBrowserClass simply provides
' consistancy in the of the error handling and rounds out the classes
' supplied by this example.  As is the case with any object based
' design using this class module will allow you to modify the browser
' interface if needed.  I have not wrapped all of the function supplied
' by the OPCBrowser object but adding others if needed is easy.
'
' In this example the frmAddItem form contains all of the real meat
' for actually browsing the tag space of an OPC Server.  The main code
' is housed there due largely to the fact that most of what needs to be
' be done when browsing is the management of the Treeview and Listview
' controls used to display the tags.

Option Explicit
Option Base 1

' This is the actuial Automation Interface browser object this is
' wrapped by this class.
'
Dim OPCBrowserObject As OPCBrowser


' This function simply sets the OPCBrowse object that will be used by
' this instance of the OPCBrowserClass object.  This is normally done
' by using the OPCServerClass function GetServerBrowseObject that
' should be used to nromally get this object class.  You can however
' create an OPCBrowserClass object yourself if you have an OPCServer
' object upon which you can use the .CreateBrowser method and pass the.
' resulting OPCBrower object to this function.
'
Function SetBrowserObject(ByVal OPCBrowseObj As OPCBrowser)
    Set OPCBrowserObject = OPCBrowseObj
End Function

' This function allows you to determine the format of the browse space
' available from the connected OPC Server.  There are two possible
' types of browse space your application may encounter.  There
' is Flat(OPCFlat = 2) and Hierarchial(OPCHierarchical = 1}. Most
' OPC Servers you will emcounter by default support a Hierarchial
' browse space.  Hierarchial means that the tags or items available
' in the server will be organized into a tree like structure with
' branches and leafs.  This organiztion is the same as what you
' see in your Window's Explorer where you have directories and files.
' In Hierarchial mode the your code must be able to move up and down
' the branches of the tree inorder to access the various tags found at
' each level in the tree.
'
' In a Flat browse space the server returns all of the items/tags
' at a single level.  Just because the server returns all of the items
' at a single level doesn't mean the the item IDs for all of item will
' be simple references.  The item IDs may still contain complex grouping
' information that your application may find useful.
'
' In this example the frmAddItem form contains all of the actual
' code that does the real work of moving around in the browse space
' of of the OPC Server.
'
Function GetBrowserOrganization(ByRef Organization As Long)
'Set error handling for OPC Function
    On Error GoTo ShowOPCGetBrowserOrganizationError
    
    Organization = OPCBrowserObject.Organization
    GetBrowserOrganization = True
    GoTo SkipOPCGetBrowserOrganizationError
    
ShowOPCGetBrowserOrganizationError:
    Call DisplayOPC_COM_ErrorValue("GetBrowserOrganization", Err.Number)
    GetBrowserOrganization = False
SkipOPCGetBrowserOrganizationError:
    
End Function

' The next two functions are used to move around in the browser space
' of the OPC Server.  When browsing an OPC server you must tell the
' server where to go on it's browse tree.  This is down using the
' following functions.  By default you start at the root of the
' OPC Server's browse space.  You then use the function ShowBranches
' and GetItemCount to determine if there are any other branches
' available from this point in the tree.  If there are more branches
' available you can use the MoveDown function and specify a branch
' to move down to.  Once you move down a level you will need to call the
' ShowBranches function again to see if there are branches at this new
' level of the OPC server browse space.  These steps are repeated until
' you reach the end of a paticular brance.  Additionally as you move to
' each branch including the root you will also be calling ShowLeafs
' to determine of there are any tags available at a given branch.
'
' In this exmaple I use only the MoveToRoot and MoveDown functions
' to browse the server.  In the frmAddItem form you will see that
' I keep track of the branch structure as you navigate the browse
' space.  This allows me to simply move to root and then do a series
' of MoveDown operations to get to the desired branch.  The OPCBrowser
' object also supports a MoveUp and MoveTo operation.  I don't use
' either in this example.

' The MoveToRoot function will return the OPC Server's browse position
' to the root of the browse space.  This makes staying in sync with the
' the OPC Server's position in the browse space easy. See the
' frmAddItem form for more on the use of this function.
'
Function MoveToRoot()
'Set error handling for OPC Function
    On Error GoTo ShowOPCMoveToRootError
    
    OPCBrowserObject.MoveToRoot
    MoveToRoot = True
    GoTo SkipOPCMoveToRootError
    
ShowOPCMoveToRootError:
    Call DisplayOPC_COM_ErrorValue("MoveToRoot", Err.Number)
    MoveToRoot = False
SkipOPCMoveToRootError:

End Function

' The MoveDown function moves the OPC Server's browse position down
' to the branch specified by the string "Branch".  When passing a
' branch name to this function you should try to use the branch name
' exactly as it was given to you by the ShwoBranches function.  This
' will insure that you don't give the server an improper name and get
' the OPC Server's browse space out of sync with you own.  See the
' frmAddItem form for more on the use of this function.
'
Function MoveDown(ByVal Branch As String)
'Set error handling for OPC Function
    On Error GoTo ShowOPCMoveDownError
    
    OPCBrowserObject.MoveDown (Branch)
    MoveDown = True
    GoTo SkipOPCMoveDownError
    
ShowOPCMoveDownError:
    Call DisplayOPC_COM_ErrorValue("MoveDown", Err.Number)
    MoveDown = False
SkipOPCMoveDownError:

End Function

' The MoveUp function move the OPC Server's browse position up
' one level from the current position.  While you can use this
' function in conjunction with the MoveDown to navigate the
' browse space of teh OPC server.  I suggest that you only use
' the MoveDown and MoveToRoot functions to traverse the browse
' space.  You will see more in the frmAddItem form code.
'
Function MoveUp()
'Set error handling for OPC Function
    On Error GoTo ShowOPCMoveUpError
    
    OPCBrowserObject.MoveUp
    MoveUp = True
    GoTo SkipOPCMoveUpError
    
ShowOPCMoveUpError:
    Call DisplayOPC_COM_ErrorValue("MoveUp", Err.Number)
    MoveUp = False
SkipOPCMoveUpError:

End Function

' The GetItemCount function servers two purposes depending the
' function calls that proceed it.  If the ShowBranches function
' is called prior to GetItemCount, the value returned here will
' be the number of branches available under the current browse
' position of the OPC server.
' If the ShowLeafs function is called prior to GetItemCount,
' the value returned here will be the number of leafs(Items/Tags)
' available at the current browse position of the OPC server.
'
Function GetItemCount()
'Set error handling for OPC Function
    On Error GoTo ShowOPCGetItemCountError
    
    GetItemCount = OPCBrowserObject.Count
    GoTo SkipOPCGetItemCountError
    
ShowOPCGetItemCountError:
    Call DisplayOPC_COM_ErrorValue("GetItemCount", Err.Number)
    GetItemCount = 0
SkipOPCGetItemCountError:

End Function

' The ShowBranches function will cause the OPC server to load the
' the OPCBrowse object's item collection with any branches available

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨porny丨国产入口| 国产99久久久久久免费看农村| 久久视频一区二区| 51精品久久久久久久蜜臀| 色先锋资源久久综合| 一本到不卡精品视频在线观看| 91麻豆精品国产91久久久久久久久 | 91电影在线观看| 91麻豆国产香蕉久久精品| 99久久99久久免费精品蜜臀| 99久久国产综合精品女不卡| 91老师片黄在线观看| 国产成人精品午夜视频免费| 懂色av中文字幕一区二区三区 | 国产精品国产自产拍高清av | 日韩久久一区二区| 亚洲精品乱码久久久久久日本蜜臀| 日韩一区中文字幕| 亚洲韩国精品一区| 日本在线播放一区二区三区| 久久99精品国产麻豆不卡| 国产麻豆视频一区二区| 99re66热这里只有精品3直播| 在线亚洲高清视频| 日韩一级黄色大片| 日本一区二区三区电影| 一区二区三区日韩精品| 日韩高清不卡一区二区| 国产精品一级片| 日本精品视频一区二区| 欧美电视剧在线看免费| 亚洲国产精品ⅴa在线观看| 亚洲精品国产高清久久伦理二区| 日韩国产精品91| 国产精品一区二区三区99| 欧亚洲嫩模精品一区三区| 欧美一区二区三区影视| 亚洲色图欧美在线| 久久99国产精品麻豆| 欧美伦理电影网| 国产精品美女久久久久久2018| 亚洲一二三四久久| 国产成人综合在线观看| 欧美亚洲国产一区二区三区| 久久先锋影音av鲁色资源网| 亚洲免费av观看| 国产毛片一区二区| 欧美精品xxxxbbbb| 亚洲人成小说网站色在线 | 国产精品888| 欧美福利一区二区| 亚洲少妇最新在线视频| 国产又黄又大久久| 欧美日本乱大交xxxxx| 成人欧美一区二区三区1314| 韩国av一区二区| 91精品国产91久久久久久最新毛片| 中文字幕中文字幕在线一区 | 欧美r级电影在线观看| 一区二区成人在线视频 | 一本色道久久综合精品竹菊| 久久午夜电影网| 久久国产精品露脸对白| 这里只有精品视频在线观看| 亚洲最大成人网4388xx| 91免费国产视频网站| 欧美激情综合五月色丁香小说| 精品在线视频一区| 91精品国产色综合久久久蜜香臀| 亚洲综合999| 91福利视频在线| 伊人婷婷欧美激情| 色哟哟国产精品| 亚洲欧美电影一区二区| 91老司机福利 在线| 一区二区三区精品在线观看| 91免费观看国产| 樱桃视频在线观看一区| 91亚洲大成网污www| 亚洲欧洲综合另类在线| 91成人免费电影| 亚洲丰满少妇videoshd| 在线观看91精品国产麻豆| 日韩精品1区2区3区| 欧美一区二区国产| 国产原创一区二区三区| 国产婷婷色一区二区三区四区| 懂色av一区二区三区免费看| 国产精品不卡一区| 欧美日韩精品免费观看视频| 日韩国产高清在线| 精品国产1区2区3区| 国产福利一区二区三区视频在线| 国产亚洲综合在线| 色婷婷亚洲一区二区三区| 亚洲第一电影网| 久久久蜜桃精品| 91精品国产91热久久久做人人| 久久精品国产免费| 日本一区二区三区久久久久久久久不| 不卡的电视剧免费网站有什么| 亚洲日韩欧美一区二区在线| 777亚洲妇女| 国产精品1024| 亚洲午夜精品网| 日韩一级片网站| 91网站在线播放| 日本中文字幕一区| 国产精品美女久久久久久久久久久| 91污片在线观看| 久久精品国产99| 亚洲精选在线视频| 欧美成人a在线| 在线观看免费视频综合| 久久电影网电视剧免费观看| 中文字幕一区在线观看视频| 欧美本精品男人aⅴ天堂| 99精品视频一区二区| 久久疯狂做爰流白浆xx| 亚洲精品免费在线播放| 国产亚洲精品bt天堂精选| 欧美三区在线观看| 成人午夜碰碰视频| 蜜桃av一区二区三区电影| 亚洲乱码日产精品bd| 久久综合狠狠综合久久激情| 欧美日韩视频在线第一区| 国产精品18久久久久久久久久久久| 亚洲h精品动漫在线观看| 国产精品护士白丝一区av| 久久综合给合久久狠狠狠97色69| 欧美日韩免费视频| 99国产精品国产精品毛片| 国产精品亚洲专一区二区三区| 婷婷久久综合九色综合绿巨人| 亚洲色图在线播放| 国产精品色哟哟网站| 久久在线观看免费| 欧美大片在线观看一区| 91精品婷婷国产综合久久性色 | 午夜精品久久久| 免费观看久久久4p| 亚洲最色的网站| 一区二区三区中文在线| 国产精品伦一区| 国产欧美日韩精品一区| 26uuu国产电影一区二区| 91精品国产91综合久久蜜臀| 在线成人小视频| 欧美卡1卡2卡| 678五月天丁香亚洲综合网| 欧美在线看片a免费观看| 欧美在线一区二区三区| 91丨porny丨户外露出| 色综合久久88色综合天天| 99精品久久免费看蜜臀剧情介绍| 高清不卡在线观看av| 成人福利视频在线| 99精品热视频| 欧美日韩中文一区| 欧美久久久久免费| 日韩精品专区在线| 国产三级久久久| 自拍偷拍亚洲激情| 亚洲福中文字幕伊人影院| 天天爽夜夜爽夜夜爽精品视频| 婷婷中文字幕综合| 精品在线观看免费| 国产suv精品一区二区6| 成人动漫精品一区二区| 91官网在线免费观看| 91精品国产91久久久久久最新毛片 | 欧美在线视频全部完| 欧美高清www午色夜在线视频| 欧美一区二区视频在线观看2022| 日韩欧美中文一区| 国产欧美视频在线观看| 亚洲美女视频在线| 麻豆国产欧美一区二区三区| 国产盗摄视频一区二区三区| 91国偷自产一区二区三区观看| 久久蜜桃av一区二区天堂| 国产精品短视频| 美国十次综合导航| 不卡一区在线观看| 在线不卡欧美精品一区二区三区| 久久综合中文字幕| 亚洲成人在线网站| 国产激情一区二区三区四区| 欧美性videosxxxxx| 国产三级精品三级在线专区| 亚洲成人三级小说| 国产**成人网毛片九色 | 懂色av噜噜一区二区三区av| 91官网在线免费观看| 精品sm在线观看| 午夜国产精品一区| 99免费精品在线观看| 精品国产一区二区三区不卡| 亚洲色图色小说|