sharksun 发表于 2004-7-10 10:35:00

从帮助里拷贝的代码出问题了,大家帮忙看一下。

错误提示在WithEvents上,提示:仅在模块中有效。不过变量声明是在模块中啊。 以下是从帮助里拷贝的代码:
Option Explicit
Public WithEvents PLine As AcadLWPolyline
Sub Example_Modified()
                               ' This example creates a lightweight polyline in model space and
                               ' references the PolyLine using the public variable (PLine) which
                               ' is set up to intercept Modified events.
                               '
                               ' This example then modifies the new object, triggering the code
                               ' in the Modified event.
                       
                       Dim points(0 To 9) As Double
                       
                       ' Define the 2D polyline points
                       points(0) = 1: points(1) = 1
                       points(2) = 1: points(3) = 2
                       points(4) = 2: points(5) = 2
                       points(6) = 3: points(7) = 2
                       points(8) = 4: points(9) = 4
                                                       
                       ' Create a lightweight Polyline object in model space
                       '
                       ' * Note: We are returning the new PolyLine object into a Module
                       ' level variable.       This allows us to intercept events associated
                       ' with that particular object.
                       Set PLine = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
                       
                       ThisDrawing.Application.ZoomAll
                       
                       ' Modify object to trigger event.
                       '
                       ' * Note: The event code for the PolyLine modification will be triggered
                       ' before we move forward and refresh the view, so the line will not
                       ' appear blue when the event message box is displayed.
                       Dim color As AcadAcCmColor
                       Set color = AcadApplication.GetInterfaceObject(".AcCmColor.16")
                       Call color.SetRGB(80, 100, 244)
                       PLine.TrueColor = color
                       ThisDrawing.Regen acAllViewports
                       
End Sub
Private Sub PLine_Modified(ByVal pObject As AutoCAD.IAcadObject)
                       ' This example intercepts an object's Modified event.
                       '
                       ' This event is triggered when an object supporting this event is modified.
                       '
                       ' To trigger this code: Modify an object connected to this event
                       ' * Note: By connected, we mean the object set up to intercept events using
                       ' the VBA WithEvents statement
                       ' Use the "pObject" variable to determine which object was modified
                       MsgBox "You just modified an object with an ID of: " & pObject.ObjectID
                       
End Sub

雪山飞狐_lzh 发表于 2004-7-10 14:12:00

放在ThisDrawing模块里

sharksun 发表于 2004-7-10 18:49:00

放在类模块里可以。
不知道在VB里放在一般模块、类模块里可不可以。
页: [1]
查看完整版本: 从帮助里拷贝的代码出问题了,大家帮忙看一下。