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>