📄 workflow.ctl
字号:
MidPoint.X = mGoalPt.X - mSourcePt.X + mActiveObject.EndPoint.X
MidPoint.Y = mGoalPt.Y - mSourcePt.Y + mActiveObject.EndPoint.Y
X1 = MidPoint.X - 300
X2 = MidPoint.X + 300
Y1 = MidPoint.Y - 400
Y2 = MidPoint.Y + 400
picCanvas.Line (X2, Y2)-(X2, Y1)
picCanvas.Line (X2, Y2)-(X1, Y2)
picCanvas.Line (X1, Y1)-(X1, Y2)
picCanvas.Line (X1, Y1)-(X2, Y1)
'================================
With frmNode
Set .DrawNode = mActiveObject
UserControl.Enabled = False
Load frmNode
.Show 1
UserControl.Enabled = True
'SetParent .hwnd, picCanvas.hwnd
'.Move (UserControl.Width - .Width) / 2, (UserControl.Height - .Height) / 2
End With
End If
End If
Exit Sub
End If
End Sub
Private Sub picCanvas_KeyDown(KeyCode As Integer, Shift As Integer)
Dim i, j, k As Integer
If KeyCode = 46 And mDrawFlag = False And mActiveFlag = True Then '删除
If mOperState = 1 Or mOperState = 2 Then
If mActiveObject.ClsName = "LINE" Then
mLineCount = mLineCount - 1
j = mActiveObject.LineNo
mActiveFlag = False
Set mActiveObject = Nothing
For i = j To mLineCount
Set mvarLine(i) = mvarLine(i + 1)
mvarLine(i).LineNo = i
Next i
ReDim Preserve mvarLine(mLineCount)
ElseIf mActiveObject.ClsName = "RECT" Then
mRectCount = mRectCount - 1
j = mActiveObject.RectNo
mActiveFlag = False
Set mActiveObject = Nothing
For i = j To mRectCount
Set mvarRect(i) = mvarRect(i + 1)
mvarRect(i).RectNo = i
Next i
ReDim Preserve mvarRect(mRectCount)
End If
picCanvas_Paint
End If
End If
End Sub
Private Sub picCanvas_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim BeginPoint As POINTAPI
BeginPoint.X = X
BeginPoint.Y = Y
mGoalPt = BeginPoint
mSourcePt = BeginPoint
mMouseDownFlag = True
If mDrawFlag = False Then '处理选择的图形
If mActiveFlag = True Then
If mActiveObject.ClsName = "LINE" Then
mMoveLineInPointID = mActiveObject.ExistState(X, Y)
If mMoveLineInPointID > 0 Then
If mActiveObject.MidPointCount = mMoveLineInPointID Then
mLastPointFlag = True
Else
mLastPointFlag = False
End If
If mMoveLineInPointID = 1 Or mMoveLineInPointID = mActiveObject.MidPointCount Then
Else
mActiveObject.MoveLine 100, mMoveLineInPointID, 0, 0
End If
Else '选择整条线
'mActiveObject.MouseMove 100, Shift, 0, 0
End If
ElseIf mActiveObject.ClsName = "RECT" Then
BeginPoint = mActiveObject.EndPoint
picCanvas.DrawMode = 2
picCanvas.DrawWidth = 1
picCanvas.DrawStyle = 1
X1 = BeginPoint.X - 300
X2 = BeginPoint.X + 300
Y1 = BeginPoint.Y - 400
Y2 = BeginPoint.Y + 400
picCanvas.Line (X2, Y2)-(X2, Y1)
picCanvas.Line (X2, Y2)-(X1, Y2)
picCanvas.Line (X1, Y1)-(X1, Y2)
picCanvas.Line (X1, Y1)-(X2, Y1)
End If
End If
Exit Sub
End If
'画图形并设置图形属性
If mSelectFlag = 2 Then '处理节点图形
picCanvas.DrawMode = 2
picCanvas.DrawWidth = 1
picCanvas.DrawStyle = 1
X1 = BeginPoint.X - 300
X2 = BeginPoint.X + 300
Y1 = BeginPoint.Y - 400
Y2 = BeginPoint.Y + 400
picCanvas.Line (X2, Y2)-(X2, Y1)
picCanvas.Line (X2, Y2)-(X1, Y2)
picCanvas.Line (X1, Y1)-(X1, Y2)
picCanvas.Line (X1, Y1)-(X2, Y1)
mRectCount = mRectCount + 1
ReDim Preserve mvarRect(mRectCount)
Set mvarRect(mRectCount).DrawFrm = UserControl.picCanvas
mvarRect(mRectCount).RectNo = mRectCount
Set mvarRect(mRectCount).Cache = pic
Set mvarRect(mRectCount).SetImageList = imgbk
ElseIf mSelectFlag = 1 Then '画分流前进线
k = 0
For i = 1 To mRectCount
j = mvarRect(i).LinkPointState(X, Y)
If j = 0 Then
ElseIf j = 1 Then '上中点
BeginPoint.X = mvarRect(i).EndPoint.X
BeginPoint.Y = mvarRect(i).EndPoint.Y - 400
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
ElseIf j = 2 Then '下中点
BeginPoint.X = mvarRect(i).EndPoint.X
BeginPoint.Y = mvarRect(i).EndPoint.Y + 400
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
ElseIf j = 3 Then '左中点
BeginPoint.X = mvarRect(i).EndPoint.X - 300
BeginPoint.Y = mvarRect(i).EndPoint.Y
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
ElseIf j = 4 Then '右中点
BeginPoint.X = mvarRect(i).EndPoint.X + 300
BeginPoint.Y = mvarRect(i).EndPoint.Y
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
End If
Next i
If j = 0 Then
mMouseDownFlag = True
mDrawFlag = False
Else
mLineBegin = j
picCanvas.MousePointer = 2
mLineCount = mLineCount + 1
ReDim Preserve mvarLine(mLineCount)
mvarLine(mLineCount).BeginPoint = BeginPoint
Set mvarLine(mLineCount).DrawFrm = UserControl.picCanvas
mvarLine(mLineCount).LineNo = mLineCount
mvarLine(mLineCount).LineType = 1
mvarLine(mLineCount).BeginRect = k
mvarLine(mLineCount).LineName = "分流线"
If j = 0 Then
mvarLine(mLineCount).BeginRectPlace = ""
ElseIf j = 1 Then
mvarLine(mLineCount).BeginRectPlace = "上"
ElseIf j = 2 Then
mvarLine(mLineCount).BeginRectPlace = "下"
ElseIf j = 4 Then
mvarLine(mLineCount).BeginRectPlace = "左"
ElseIf j = 3 Then
mvarLine(mLineCount).BeginRectPlace = "右"
End If
End If
ElseIf mSelectFlag = 3 Then '画直流前进线
For i = 1 To mRectCount
j = mvarRect(i).LinkPointState(X, Y)
If j = 0 Then
ElseIf j = 1 Then '上中点
BeginPoint.X = mvarRect(i).EndPoint.X
BeginPoint.Y = mvarRect(i).EndPoint.Y - 400
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
ElseIf j = 2 Then '下中点
BeginPoint.X = mvarRect(i).EndPoint.X
BeginPoint.Y = mvarRect(i).EndPoint.Y + 400
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
ElseIf j = 3 Then '左中点
BeginPoint.X = mvarRect(i).EndPoint.X - 300
BeginPoint.Y = mvarRect(i).EndPoint.Y
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
ElseIf j = 4 Then '右中点
BeginPoint.X = mvarRect(i).EndPoint.X + 300
BeginPoint.Y = mvarRect(i).EndPoint.Y
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
End If
Next i
If j = 0 Then
mMouseDownFlag = True
mDrawFlag = False
Else
mLineBegin = j
picCanvas.MousePointer = 2
mLineCount = mLineCount + 1
ReDim Preserve mvarLine(mLineCount)
mvarLine(mLineCount).BeginPoint = BeginPoint
Set mvarLine(mLineCount).DrawFrm = UserControl.picCanvas
mvarLine(mLineCount).LineNo = mLineCount
mvarLine(mLineCount).LineType = 3
mvarLine(mLineCount).BeginRect = k
mvarLine(mLineCount).LineName = "直流线"
If j = 0 Then
mvarLine(mLineCount).BeginRectPlace = ""
ElseIf j = 1 Then
mvarLine(mLineCount).BeginRectPlace = "上"
ElseIf j = 2 Then
mvarLine(mLineCount).BeginRectPlace = "下"
ElseIf j = 4 Then
mvarLine(mLineCount).BeginRectPlace = "左"
ElseIf j = 3 Then
mvarLine(mLineCount).BeginRectPlace = "右"
End If
End If
ElseIf mSelectFlag = 4 Then '画直流后退线
For i = 1 To mRectCount
j = mvarRect(i).LinkPointState(X, Y)
If j = 0 Then
ElseIf j = 1 Then '上中点
BeginPoint.X = mvarRect(i).EndPoint.X
BeginPoint.Y = mvarRect(i).EndPoint.Y - 400
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
ElseIf j = 2 Then '下中点
BeginPoint.X = mvarRect(i).EndPoint.X
BeginPoint.Y = mvarRect(i).EndPoint.Y + 400
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
ElseIf j = 3 Then '左中点
BeginPoint.X = mvarRect(i).EndPoint.X - 300
BeginPoint.Y = mvarRect(i).EndPoint.Y
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
ElseIf j = 4 Then '右中点
BeginPoint.X = mvarRect(i).EndPoint.X + 300
BeginPoint.Y = mvarRect(i).EndPoint.Y
mGoalPt = BeginPoint
mSourcePt = BeginPoint
k = i
Exit For
End If
Next i
If j = 0 Then
mMouseDownFlag = True
mDrawFlag = False
Else
mLineBegin = j
picCanvas.MousePointer = 2
mLineCount = mLineCount + 1
ReDim Preserve mvarLine(mLineCount)
mvarLine(mLineCount).BeginPoint = BeginPoint
Set mvarLine(mLineCount).DrawFrm = UserControl.picCanvas
mvarLine(mLineCount).LineNo = mLineCount
mvarLine(mLineCount).LineType = 4
mvarLine(mLineCount).BeginRect = k
mvarLine(mLineCount).LineName = "后退线"
If j = 0 Then
mvarLine(mLineCount).BeginRectPlace = ""
ElseIf j = 1 Then
mvarLine(mLineCount).BeginRectPlace = "上"
ElseIf j = 2 Then
mvarLine(mLineCount).BeginRectPlace = "下"
ElseIf j = 4 Then
mvarLine(mLineCount).BeginRectPlace = "左"
ElseIf j = 3 Then
mvarLine(mLineCount).BeginRectPlace = "右"
End If
End If
End If
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -