TlsReactor.cls
上传用户:yayuwl
上传日期:2022-03-18
资源大小:8952k
文件大小:3k
源码类别:

CAD

开发平台:

VBA

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "TlsReactor"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = False
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = True
  14. Private m_oApp As AcadApplication
  15. Attribute m_oApp.VB_VarHelpID = -1
  16. Private m_Entitys As New Collection
  17. Private m_sName As String
  18. Private m_nSelCount As Integer
  19. Private m_Owner As TlsReactors
  20. Public Event Modified(ByVal pObject As AcadObject, ByVal Value)
  21. Public Event DoubleClick(ByVal pObject As AcadObject, ByVal Value)
  22. Public Event Erased(ByVal Value)
  23. Public Property Get Owner() As TlsReactors
  24. On Error Resume Next
  25.     Set Owner = m_Owner
  26. End Property
  27. Public Property Let Owner(ByVal vNewValue As TlsReactors)
  28. On Error Resume Next
  29.     Set m_Owner = vNewValue
  30. End Property
  31. Public Property Let Application(ByVal vNewValue As AcadApplication)
  32. On Error Resume Next
  33.     Set m_oApp = vNewValue
  34. End Property
  35. Public Property Get ActiveDocument() As AcadDocument
  36.     Set ActiveDocument = m_oApp.ActiveDocument
  37. End Property
  38. Public Property Get SelCount() As Integer
  39.     SelCount = m_nSelCount
  40. End Property
  41. Public Property Let SelCount(ByVal vNewValue As Integer)
  42.     m_nSelCount = vNewValue
  43. End Property
  44. Public Sub InitDoc()
  45. On Error Resume Next
  46.     ThisDrawing
  47. End Sub
  48. Public Property Let Name(ByVal vNewValue As String)
  49.     m_sName = vNewValue
  50. End Property
  51. Public Sub Add(ByVal Entity As AcadObject, Optional ByVal Value As Variant)
  52. On Error Resume Next
  53.     ThisDrawing.Add Entity, Value
  54.     ThisDrawing.SaveData
  55.     Change 0, Entity, Value
  56. End Sub
  57. Public Sub RemoveDoc(ByVal hWndStr As String)
  58.     m_Entitys.Remove "TlsReactor_" & hWndStr
  59. End Sub
  60. Public Sub Change(ByVal TypeNumber As Integer, Optional ByVal Entity As AcadObject, Optional ByVal Value As Variant)
  61.     Select Case TypeNumber
  62.     Case 0
  63.         RaiseEvent Modified(Entity, Value)
  64.     Case 1
  65.         RaiseEvent DoubleClick(Entity, Value)
  66.     Case 2
  67.         RaiseEvent Erased(Value)
  68.     End Select
  69. End Sub
  70. Private Function ThisDrawing() As CDocument
  71. On Error Resume Next
  72.     Dim sName As String
  73.     sName = "TlsReactor_" & Document.hwnd
  74.     Set ThisDrawing = m_Entitys(sName)
  75.     If Err Then
  76.         Set ThisDrawing = New CDocument
  77.         ThisDrawing.Name = m_sName
  78.         ThisDrawing.Owner = Me
  79.         ThisDrawing.Application = m_oApp
  80.         ThisDrawing.LoadData
  81.         m_Entitys.Add ThisDrawing, sName
  82.     End If
  83. End Function
  84. Private Sub Class_Initialize()
  85.     m_nSelCount = 1
  86. End Sub