📄 clsline.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "clsLine"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
Option Explicit
'用户类型定义区域
Public Type POINTAPI
X As Long
Y As Long
End Type
Public Type ConditionStruct
CDS_SubCondId As Integer
CDS_CondName As String
CDS_AppName As String
CDS_AppField As String
CDS_OperSignal As String
CDS_CondValue As String
CDS_LogicSignal As String
End Type
Private mvarSetActiveFlag As Boolean
Private mvarCond() As ConditionStruct
'保持属性值的局部变量
Private mvarBeginPoint As POINTAPI '局部复制
Private mvarEndPoint As POINTAPI '局部复制
Private mvarDrawFrm As Object '局部复制
Private mvarMidPointCount As Integer '局部复制
Private mvarMidPoint() As POINTAPI '局部复制
Private mvarLineNo As Integer '局部复制
Private mvarClsName As String '局部复制
Private mvarLineType As Integer '局部复制
Private mvarLineMidPoint As POINTAPI '局部复制
'=====================================
'绘制三次参数样条插值曲线
Private X(10) As Single, Y(10) As Single, u1(400000) As Single, v1(400000) As Single
Private num As Integer
'保持属性值的局部变量
Private mvarBeginRect As Integer '局部复制
Private mvarEndRect As Integer '局部复制
'保持属性值的局部变量
Private mvarBeginRectPlace As String '局部复制
Private mvarEndPointPlace As String '局部复制
'保持属性值的局部变量
Private mvarLineName As String '局部复制
Public Property Let LineName(ByVal vData As String)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.LineName = 5
mvarLineName = vData
End Property
Public Property Get LineName() As String
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.LineName
LineName = mvarLineName
End Property
Public Property Let EndPointPlace(ByVal vData As String)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.EndPointPlace = 5
mvarEndPointPlace = vData
End Property
Public Property Get EndPointPlace() As String
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.EndPointPlace
EndPointPlace = mvarEndPointPlace
End Property
Public Property Let BeginRectPlace(ByVal vData As String)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.BeginRectPlace = 5
mvarBeginRectPlace = vData
End Property
Public Property Get BeginRectPlace() As String
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.BeginRectPlace
BeginRectPlace = mvarBeginRectPlace
End Property
Public Property Let EndRect(ByVal vData As Integer)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.EndRect = 5
mvarEndRect = vData
End Property
Public Property Get EndRect() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.EndRect
EndRect = mvarEndRect
End Property
Public Property Let BeginRect(ByVal vData As Integer)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.BeginRect = 5
mvarBeginRect = vData
End Property
Public Property Get BeginRect() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.BeginRect
BeginRect = mvarBeginRect
End Property
'*******************************************************
'*******************************************************
'类的所有应用属性定义
'*******************************************************
'*******************************************************
Public Property Let LineMidPoint(vData As POINTAPI)
'Syntax: Set x.LineMidPoint = Form1
mvarLineMidPoint = vData
End Property
Public Property Get LineMidPoint() As POINTAPI
'Syntax: Debug.Print X.LineMidPoint
LineMidPoint = mvarLineMidPoint
End Property
'=======================================================
'获得、设置类的线型
'=======================================================
Public Property Let LineType(ByVal vData As Integer)
'Syntax: X.LineType = 5
mvarLineType = vData
End Property
Public Property Get LineType() As Integer
'Syntax: Debug.Print X.LineType
LineType = mvarLineType
End Property
'=======================================================
'获得、设置类的名称
'=======================================================
Public Property Let ClsName(ByVal vData As String)
'Syntax: X.LineName = 5
mvarClsName = vData
End Property
Public Property Get ClsName() As String
'Syntax: Debug.Print X.LineName
ClsName = mvarClsName
End Property
'=======================================================
'获得、设置线的序号
'=======================================================
Public Property Let LineNo(ByVal vData As Integer)
'Syntax: X.LineNo = 5
mvarLineNo = vData
End Property
Public Property Get LineNo() As Integer
'Syntax: Debug.Print X.LineNo
LineNo = mvarLineNo
End Property
'=======================================================
'获得、设置线的中间点个数
'=======================================================
Public Property Let MidPointCount(ByVal vData As Integer)
'Syntax: Set x.MidPointCount = Form1
mvarMidPointCount = vData
End Property
Public Property Get MidPointCount() As Integer
'Syntax: Debug.Print X.MidPointCount
MidPointCount = mvarMidPointCount
End Property
'=======================================================
'获得、设置画线载体
'=======================================================
Public Property Set DrawFrm(ByVal vData As Object)
'Syntax: Set x.DrawFrm = Form1
Set mvarDrawFrm = vData
End Property
Public Property Get DrawFrm() As Object
Attribute DrawFrm.VB_Description = "获得、设置画线的载体"
'Syntax: Debug.Print X.DrawFrm
Set DrawFrm = mvarDrawFrm
End Property
'=======================================================
'获得、设置线的终点
'=======================================================
Public Property Let EndPoint(vData As POINTAPI)
Attribute EndPoint.VB_Description = "获得、设置线的结束点"
'Syntax: Set x.EndPoint = Form1
mvarEndPoint = vData
End Property
Public Property Get EndPoint() As POINTAPI
'Syntax: Debug.Print X.EndPoint
EndPoint = mvarEndPoint
End Property
'=======================================================
'获得、设置线起点
'=======================================================
Public Property Let BeginPoint(vData As POINTAPI)
Attribute BeginPoint.VB_Description = "获得、设置线的开始点"
'Syntax: Set x.BeginPoint = Form1
mvarBeginPoint = vData
End Property
Public Property Get BeginPoint() As POINTAPI
'Syntax: Debug.Print X.BeginPoint
BeginPoint = mvarBeginPoint
End Property
'********************************************************
'********************************************************
'类的应用方法定义
'*********************************************************
'*********************************************************
Public Function ReturnCondition(ByVal vData As Integer) As ConditionStruct
Dim j As Integer
j = UBound(mvarCond)
If j >= vData Then
ReturnCondition = mvarCond(vData)
Else
MsgBox "超出范围。"
End If
End Function
Public Sub SetCondition(vData As ConditionStruct, i As Integer)
Dim j As Integer
j = UBound(mvarCond)
If j > i Then
mvarCond(i) = vData
Else
ReDim Preserve mvarCond(i)
mvarCond(i) = vData
End If
End Sub
Public Function GetCondNum() As Integer
Dim i As Integer
If IsNull(mvarCond) Then
GetCondNum = -1
Else
GetCondNum = UBound(mvarCond)
End If
End Function
Public Function SetCondNum(vData As Integer)
ReDim Preserve mvarCond(vData)
End Function
Public Function ReturnPoint(ByVal vData As Integer) As POINTAPI
If vData < 1 Then
ReturnPoint.X = 0
ReturnPoint.Y = 0
ElseIf vData > mvarMidPointCount Then
ReturnPoint.X = 0
ReturnPoint.Y = 0
Else
ReturnPoint = mvarMidPoint(vData)
End If
End Function
Public Function SetPoint(vData As POINTAPI, ByVal vNum As Integer)
Dim i As Integer
If IsNull(mvarMidPoint) Then
i = -1
Else
i = UBound(mvarMidPoint)
End If
If vNum > i Then
ReDim Preserve mvarMidPoint(vNum)
End If
mvarMidPoint(vNum) = vData
End Function
Public Sub Paint() '
Dim i, j, k, strLong As Long
On Error Resume Next
'==========================
mvarDrawFrm.DrawMode = 13
mvarDrawFrm.DrawWidth = 1
mvarDrawFrm.DrawStyle = 0
mvarDrawFrm.FillStyle = 0
'============================
If mvarLineType = 4 Then '回退线
'drawcir
MergePoint
For i = 2 To mvarMidPointCount
mvarDrawFrm.Line (mvarMidPoint(i).X, mvarMidPoint(i).Y)-(mvarMidPoint(i - 1).X, mvarMidPoint(i - 1).Y), RGB(255, 0, 0)
Next i
mvarBeginPoint = mvarMidPoint(1)
mvarEndPoint = mvarMidPoint(mvarMidPointCount)
DrawArrow
ElseIf mvarLineType = 3 Then '直流线
MergePoint
For i = 2 To mvarMidPointCount
mvarDrawFrm.Line (mvarMidPoint(i).X, mvarMidPoint(i).Y)-(mvarMidPoint(i - 1).X, mvarMidPoint(i - 1).Y), RGB(0, 255, 0)
Next i
mvarBeginPoint = mvarMidPoint(1)
mvarEndPoint = mvarMidPoint(mvarMidPointCount)
DrawArrow
Else '分流线
MergePoint
For i = 2 To mvarMidPointCount
mvarDrawFrm.Line (mvarMidPoint(i).X, mvarMidPoint(i).Y)-(mvarMidPoint(i - 1).X, mvarMidPoint(i - 1).Y), RGB(0, 0, 255)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -