[AccessD] need ideas

John W. Colby jcolby at colbyconsulting.com
Wed Feb 19 11:08:01 CST 2003


John,

I forgot to mention that you will also need to add a collection in the form
where you will store the pointer to the classes so that they don't
immediately unload again.  Using the method I showed previously, you had a
physical variable dimensioned for each class.  Now you want to automate the
thing so that as many classes load as are needed.  This works but the
pointer to the class has to be stored somewhere.  That somewhere would be
the collection.  You also need to build a function specifically for
instantiating the class.  The new form code would look like:


'dim a collection to hold the class pointers
Private colClsPtrs As Collection

'set constants to the colors
Const clngGreen = 65280
Const clngRed = 255
'
'This function instantiates one instance of the class and stores it into the
'collection, with the key being the frame name
'
Function InstantiateClass(fra As Access.OptionGroup, _
                            OptYes As OptionButton, _
                            OptNo As OptionButton, _
                            lngColorYes As Long, _
                            lngColorNo As Long)
Dim ldclsYesNoGrp As dclsYesNoGrp

    'instantiate the class instance
    Set ldclsYesNoGrp = New dclsYesNoGrp
    
    'Initialize the instance with the data passed in
    ldclsYesNoGrp.Init fra, OptYes, OptNo, lngColorYes, lngColorNo
    
    'Add this instance to the collection
    colClsPtrs.Add ldclsYesNoGrp, fra.Name
End Function

Private Sub Form_Open(Cancel As Integer)
    
    Set colClsPtrs = New Collection
    
    'Initialize the class variables, passing in a pointer to the frame,
    'the check boxes, and the color constants
    InstantiateClass Frame0, Option3, Option5, clngGreen, clngRed
    InstantiateClass Frame7, Option9, Option11, clngGreen, clngRed
    
    'the old way of referencing the class instance for a group
    'ldclsYesNoGrp2.SetGrpVal 2
    
    'The new way of referencing the class instance for a group
    colClsPtrs("Frame7").SetGrpVal 2
End Sub

I have modified  my demo to add another form that adds the classes into a
collection and it is available to anyone who wants it.

John W. Colby
Colby Consulting
www.ColbyConsulting.com

 -----Original Message-----
From: 	accessd-admin at databaseadvisors.com
[mailto:accessd-admin at databaseadvisors.com] 
Sent:	Wednesday, February 19, 2003 10:16 AM
To:	accessd at databaseadvisors.com
Subject:	RE: [AccessD] need ideas

John,
Is it acceptable to reference the collection of the OptionGroup which was
passed by ref to the class?

I was thinking that if it was then I could traverse the collection to find
the OptionButton which has the same value as the OptionGroup and the based
on the value color the label.

My goal being that I could traverse the Form's control collection on the
OnOpen event and instantiate all of the OptionGroups in one statement rather
than having to organically know and type in the names of all the frames and
option buttons.

JB


----------------------------------------------------
Is email taking over your day?  Manage your time with eMailBoss.  
Try it free!  http://www.eMailBoss.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/ms-tnef
Size: 3000 bytes
Desc: not available
URL: <http://databaseadvisors.com/pipermail/accessd/attachments/20030219/e1426a20/attachment-0002.bin>


More information about the AccessD mailing list