Well, the weird thing was that these were forms that have been in existence
for a long time and worked fine and recently stopped working (in the sense
that the combobox or listbox was not being properly populated).  I still
have not determined why it worked before but won't now, however I just moved
the creation of the array from Init to Load (which is really my std. MO
these days) and that fixed it. 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Ken Dibble
Sent: Thursday, September 28, 2006 9:39 PM
To: [EMAIL PROTECTED]
Subject: RE: oop data entry form


>Ken (or anyone) -
>
>Why did you ask that question about the combobox and using arrays to
>populate them?  I suggested loading the array in the Load method, which
>works fine.  The reason I ask/mention this is that I've suddenly been
>getting odd behavior from my listboxes and comboboxes that are populated
>with arrays.  I have, at times, also loaded the array in the Init method
and
>it worked fine.  But the other day I had a customer report that a listbox
>that previously had multiple entries (field names from a table to use when
>sending data to Excel), now only had one entry.  I had not changed that
code
>in quite awhile.  Similar behavior was witnessed on another form in that
>same app and today I've noticed it in another app (two entries in a
combobox
>that previously had 12).  All of these arrays were defined in the Init.
>Moving them to the Load will fix the problem, I know, but I'm trying to
>figure out how this got broken and why is it partially broken (why do one
or
>two entries get recognized instead of none).  It would seem I made some
>change to my framework and unknowingly broke this, but I can't imagine what
>and I'm only making occasional changes to the framework and base classes
>these days.  Certainly none in recent memory to the combobox and listbox.
>It's curious that you had trouble when you loaded the arrays in the Init,
>yet some of my code that worked fine in the past is now broken.
>Coincidence?  My fault?  I don't know, but it's rather odd.


It wasn't me who posed the original question. I think it was Andy.

I just described some of my process in learning how array RowSources work 
and why I found that confusing initially. I don't think I'm confused any
more.

I typically define array form properties at design time and populate them 
from methods either called from the form's Init() or from the Init() of the 
RowSource-bearing controls. And I set the RowSources for the controls in 
the Property sheet. I never have a problem with this.

I was somewhat surprised to find, in testing just now, that I can even drop 
a combobox on a form, set its RowSourceType to 5 and its Rowsource to 
"THISFORM.aFoo" in the Property sheet, and then add the aFoo[1] property, 
and populate it, programmatically in the form Init() and everything works 
fine. I realize that the form event firing order is just that--the order in 
which the underlying C++ code calls the event/methods--and that from the 
beginning and through it all, the form object, and its contained controls 
and properties, all must reside in memory. but we're sometimes given the 
impression that the controls "come into existence" before the form does, 
which was one reason why this used to confuse me.

So, all things being equal, it shouldn't matter whether array properties 
are created and populated in Load() or Init(). What may matter is whether 
the data you're pulling into those arrays is present when you need it.

However, what your problem brings to mind is the possibility that you've 
got two listboxes or comboboxes hitting the same RowSource array and 
changing its contents. Or, less likely, you've got two RowSource arrays 
defined with the same name somewhere.

Ken Dibble
www.stic-cil.org





[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to