Arthur Fuller
artful at rogers.com
Sat Mar 13 14:44:13 CST 2004
First of all, why on earth would you want to pass a class? I'm a little dim but can't imagine a circumstance where that would prove useful. Even in the factory design pattern, you don't pass an actual class. While pondering this, I thought for a moment that one approach might be to create a collection. One cool thing about collections is that the members need have almost nothing in common. I was thinking about this as a way around the tight coupling of the dependent objects class that JC was proposing. I didn't try it, JC, but could that approach work? You could have a collection of dependent objects, with one "parent" and as many "children" as depend on that parent. None of the controls would need to know the name of any other. Just a thought.... Arthur -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John W. Colby Sent: Thursday, March 11, 2004 5:14 AM To: Access Developers discussion and problem solving Subject: RE: [AccessD] ParamArray problem Sorry, meant to say: >Indeed you CAN'T dim the array as specific class types AFAICT. If you look up ParamArrays in help it says that you can type the array as any of the built-in types including objects, but not custom types such as classes. John W. Colby www.ColbyConsulting.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of John W. Colby Sent: Thursday, March 11, 2004 7:17 AM To: Access Developers discussion and problem solving Subject: RE: [AccessD] ParamArray problem >Haven't looked into the Paramarray question as I've always passed >arrays of strong types or of variants. In this case the array will be passing in objects, i.e. classes, but the class instances can be a combo class, a text class, a list class etc. Since each is a different class, I pass them as objects. Indeed you dim the array as specific class types AFAICT. John W. Colby www.ColbyConsulting.com -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Jürgen Welz Sent: Thursday, March 11, 2004 1:05 AM To: accessd at databaseadvisors.com Subject: RE: [AccessD] ParamArray problem In .NET, if you pass an object ByVal, it is still passed ByRef. No error or notification. It just changes it. Haven't looked into the Paramarray question as I've always passed arrays of strong types or of variants. Ciao Jürgen Welz Edmonton, Alberta jwelz at hotmail.com >From: bruce_bruen at mlc.com.au > > > > > > >"for each next" to iterate the array and found something >in an "empty" array." > >Now that does sound strange. > >The VB help for .NET certainly says that FOREACH should not execute on >a paramarray with .length=0 However, prior to .NET all paramarrays were >passed as byrefs (hence my comment on them being heap pointers) in >.NET they are always byvals. > >Looks like there may be a situation in the VBA where the pointer is >initialised to a "random" heap pointer under some circumstances - that >would be bloody great hole! > >have fun >B > > > > "John W. Colby" > > > > > > >I also seem to remember that passing objects in paramarrays is a nono > >you >can only pass value items (???) > >Help says objects can be passed, or at least the array can be declared >as type object. > >And I was using a "for each next" to iterate the array and found >something in an "empty" array. > >John W. Colby >www.ColbyConsulting.com > >-----Original Message----- >From: accessd-bounces at databaseadvisors.com >[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of >bruce_bruen at mlc.com.au >Sent: Wednesday, March 10, 2004 11:58 PM >To: Access Developers discussion and problem solving >Subject: Re: [AccessD] ParamArray problem > > > > > > >John, > >What you've written it looks right, bu I must ask how do you know there >is "something" in the ParamArray? I would not expect it to be equal to >a null, it is (I can remember which) actually a stack or heap pointer. >I also seem to remember that passing objects in paramarrays is a nono >you can only pass value items (???) , but its been months since I've >VBA'd so to speak so I could be wrong on that. > > >...meanwhile back to the C# > >hth >Bruce > > > > "John W. Colby" > <jwcolby at colbyconsulting. To: "AccessD" ><AccessD at databaseadvisors.com> > com> cc: > Sent by: Subject: [AccessD] >ParamArray problem > accessd-bounces at databasea > dvisors.com > > > 11/03/2004 15:43 > Please respond to Access > Developers discussion and > problem solving > > > > > > >I am doing an init() method of a class that looks like: > >Public Sub Init(ByRef robjParent As Object, ParamArray lDepObjsArr() As >Variant) > >where robjParent = a pointer to the parent class (ME) > >and ParamArray lDepObjsArr() As Variant MAY BE an array of dependent >object classes but specifically at the moment isn't being passed >anything. I.e. the calling function looks like > >MyClass.Init me > >I am passing in a pointer to self in the first parameter and nothing at >all for the array. > >Since it is an array that can contain variable number of objects I >expected it to allow this. However when I get inside the init() the >lDepObjsArr has something in it. That something is NOT a class, and I >can't debug.print the value... > >What the heck is going on here? Can I not do this (not pass anything >to a paramarray? > >John W. Colby >www.ColbyConsulting.com _________________________________________________________________ STOP MORE SPAM with the MSN Premium and get 2 months FREE* http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI=1034&SU =htt p://hotmail.com/enca&HL=Market_MSNIS_Taglines -- _______________________________________________ AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- _______________________________________________ AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -- _______________________________________________ AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com