вот мой код класса cArrow (рисует стрелку):
- Код: Выделить всё
Option Explicit
Public linMain As Line ' главная линия стрелки
Public linFirst As Line ' перо стрелки
Public linSecond As Line ' перо стрелки
Public intLineLenght As Integer 'длина стрелки
Public sngAngle As Single 'угол между стрелкой и пером
'зануление координат линий при создании объекта
Private Sub Class_Initialize()
linMain.x1 = 0
linMain.y1 = 0
linMain.x2 = 0
linMain.y2 = 0
linFirst.x1 = 0
linFirst.y1 = 0
linFirst.x2 = 0
linFirst.y2 = 0
linSecond.x1 = 0
linSecond.y1 = 0
linSecond.x2 = 0
linSecond.y2 = 0
intLineLength = 0
sngAngle = 0 * PI
End Sub
'устанавливаем
Public Sub SetArrowParams(intX1 As Integer, intY1 As Integer, intX2 As Integer, intY2 As Integer, angle As Single, length As Integer)
sngAngle = angle / 180 * PI 'перводим угол из градусов
intLineLength = length
linMain.x1 = intX1
linMain.y1 = intY1
linMain.x2 = intX2
linMain.y2 = intY2
linFirst.x2 = intX1
linFirst.y2 = intY1
GetSubLinesCoords 1, linFirst.x2, linFirst.y2
linSecond.x2 = intX1
linSecond.y2 = intY1
GetSubLinesCoords 2, linSecond.x2, linSecond.y2
SetArrowParams = 0
End Sub
'получаем координаты конца пера стрелки взависимости от ее номера bytLineNum
Public Sub GetSubLinesCoords(bytLineNum As Byte, ByRef intX2 As Integer, ByRef intY2 As Integer) As Integer
Dim i As Integer
Dim sngAlfa As Single
Dim sngBetta As Single
sngAlfa = Atn(CSng((linMain.y2 - linMain.y1) / (linMain.x2 - linMain.x1)))
sngBetta = sngAlfa + IIf(bytLineNum = 1, sngAngle, -sngAngle)
intX2 = CInt(linMain.x2 - Cos(sngBetta) * CSng(intLineLength))
intY2 = CInt(linMain.y2 - Sin(sngBetta) * CSng(intLineLength))
GetSubLinesCoords = 0
End Sub
Далее я на форме сделал кнопку1 вот код:
- Код: Выделить всё
Dim myArr As cArrow
Private Sub Command1_Click()
myArr.SetArrowParams 10, 10, 200, 200, 30.0, 30
End Sub
запускаю проект1 му кнопку1 ругается1 "run-time error 91. Object variable or With block variable not set."
подскажите пожалуйста в чем дело? правильно ли я создаю объект (обычным Dim'ом) или надо как то по другому?