Gmoney
asked on
How to make call Class Function (Code supplied)
Could someone please show me the syntax to make the functions work in the code below. The code draws a circle on a picture box but I don't know how to execute it. Help!
Gmoney
Private Sub picCanvas_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim gobj as Object
Dim cdrawingobjects as Collection
With Picture1
.DrawMode = vbInvert
.FillStyle = vbFSTransparent
.DrawWidth = 1
End With
siFirstX = X
siFirstY = Y
siLastX = X
siLastY = Y
Set gobj = New cls_draw_Circle
With gobj
.X0 = (siFirstX + siLastX) / 2
.X0 = (siFirstX + siLastX) / 2
.Radius = 80
End With
cDrawingObjects.Add gobj
Set gobj.Picture1 = Form1.Picture1
gobj.Draw
End Sub
The following is the code for DrawCircle Class :
Option Explicit
' The PictureBox we draw on.
Public picCanvas As PictureBox
' The rectangle's drawing attributes.
Public X0 As Single
Public Y0 As Single
Public Radius As Single
Public DrawWidth As Integer
Public ForeColor As OLE_COLOR
Public FillColor As OLE_COLOR
Public FillStyle As FillStyleConstants
Public DrawStyle As DrawStyleConstants
' Default property values.
Private Const m_def_X0 = 0
Private Const m_def_Y0 = 0
Private Const m_def_Radius = 80
Private Const m_def_DrawWidth = 1
Private Const m_def_ForeColor = vbBlack
Private Const m_def_FillColor = vbBlack
Private Const m_def_FillStyle = vbBlack
Private Const m_def_DrawStyle = vbSolid
' Draw on picCanvas.
Public Sub Draw()
Form1.Picture1.ForeColor = ForeColor
' Set other drawing attributes.
With fmyform(iCurrentProcId).pi cCanvas
.FillStyle = FillStyle
.FillColor = FillColor
.DrawWidth = DrawWidth
.DrawStyle = DrawStyle
End With
' Draw the object.
Form1.Picture1.Circle (X0, Y0), Radius, Form1.Picture1.ForeColor
End Sub
' Set default property values.
Private Sub SetDefaultProperties()
X0 = m_def_Y0
Y0 = m_def_X0
Radius = m_def_Radius
DrawWidth = m_def_DrawWidth
ForeColor = m_def_ForeColor
FillColor = m_def_FillColor
FillStyle = m_def_FillStyle
DrawStyle = m_def_DrawStyle
End Sub
' Set some defaults.
Private Sub Class_Initialize()
SetDefaultProperties
End Sub
Gmoney
Private Sub picCanvas_MouseDown(Button
Dim gobj as Object
Dim cdrawingobjects as Collection
With Picture1
.DrawMode = vbInvert
.FillStyle = vbFSTransparent
.DrawWidth = 1
End With
siFirstX = X
siFirstY = Y
siLastX = X
siLastY = Y
Set gobj = New cls_draw_Circle
With gobj
.X0 = (siFirstX + siLastX) / 2
.X0 = (siFirstX + siLastX) / 2
.Radius = 80
End With
cDrawingObjects.Add gobj
Set gobj.Picture1 = Form1.Picture1
gobj.Draw
End Sub
The following is the code for DrawCircle Class :
Option Explicit
' The PictureBox we draw on.
Public picCanvas As PictureBox
' The rectangle's drawing attributes.
Public X0 As Single
Public Y0 As Single
Public Radius As Single
Public DrawWidth As Integer
Public ForeColor As OLE_COLOR
Public FillColor As OLE_COLOR
Public FillStyle As FillStyleConstants
Public DrawStyle As DrawStyleConstants
' Default property values.
Private Const m_def_X0 = 0
Private Const m_def_Y0 = 0
Private Const m_def_Radius = 80
Private Const m_def_DrawWidth = 1
Private Const m_def_ForeColor = vbBlack
Private Const m_def_FillColor = vbBlack
Private Const m_def_FillStyle = vbBlack
Private Const m_def_DrawStyle = vbSolid
' Draw on picCanvas.
Public Sub Draw()
Form1.Picture1.ForeColor = ForeColor
' Set other drawing attributes.
With fmyform(iCurrentProcId).pi
.FillStyle = FillStyle
.FillColor = FillColor
.DrawWidth = DrawWidth
.DrawStyle = DrawStyle
End With
' Draw the object.
Form1.Picture1.Circle (X0, Y0), Radius, Form1.Picture1.ForeColor
End Sub
' Set default property values.
Private Sub SetDefaultProperties()
X0 = m_def_Y0
Y0 = m_def_X0
Radius = m_def_Radius
DrawWidth = m_def_DrawWidth
ForeColor = m_def_ForeColor
FillColor = m_def_FillColor
FillStyle = m_def_FillStyle
DrawStyle = m_def_DrawStyle
End Sub
' Set some defaults.
Private Sub Class_Initialize()
SetDefaultProperties
End Sub
Picture targer has AutoRedraw property to true?
i meant:
picture target
picture target
Create a project add everything up until the line:
The following is the code for DrawCircle Class :
To a form containing two pic boxes, picCanvas and Picture1
Everything below this line add to a Class module. You will need to rename the Class or the name of the class in the code. Also, it does not appear to me that this code is going to run as is. I was getting errors trying to run it. You are probably going to have to modify the code, but this is the way to get it to run.
Hope this helps
The following is the code for DrawCircle Class :
To a form containing two pic boxes, picCanvas and Picture1
Everything below this line add to a Class module. You will need to rename the Class or the name of the class in the code. Also, it does not appear to me that this code is going to run as is. I was getting errors trying to run it. You are probably going to have to modify the code, but this is the way to get it to run.
Hope this helps
After more looking...
It appears that you only need one pic box on the form, but you need to do some renaming in the code. I still cannot get it to run properly...
It appears that you only need one pic box on the form, but you need to do some renaming in the code. I still cannot get it to run properly...
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
gencross can you make your code work by using a Class?