Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Scripting Dictionary in a class instance
Hi,
I'm having a weird problem -- maybe it's me. I've set up a class. Each instance will be stored in a scripting dictionary. Each instance will also contain 3 other scirpting dictionaries for various purposes. The class is called Parent In the Initialize statement I have: Set mAvailableAccounts = CreateObject("Scripting.Dictionary") mAvailableAccounts.RemoveAll Set mReceivedAccounts = CreateObject("Scripting.Dictionary") mReceivedAccounts.RemoveAll Set mChildren = CreateObject("Scripting.Dictionary") mChildren.RemoveAll In the main routine I create a new Parent. Put in the fields needed to create a key. Check the dictionary that stores these Parents, looking for the key. If I find one, I set Parent=nothing, and then set Parent = Dictionary(Key). When I do this, it appears that the 3 dictionaries within that "retrieved" instance are being reset to contain no elements. Am I doing something wrong -- that you can tell from the info I've listed? Are scripting dictionaries within classes somehow static and not specific to an instance? Any help would be appreciated. |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Scripting Dictionary in a class instance
OOPS! Never mind -- I'm stupid.
What I was doing, and I didn't put enough in my post to let anyone see it was: I had some of the code in a "with block", specifically "with Parent". When I recalled an old Parent from the scripting dictionary, I was still in the with block. So the "dotted" fields still referred to the previous Parent, not the one I just retrieved. I can't believe how long it took me to find that! I appreciate the time any of you took in reading through my, unfortunately incomplete, question. "Art" wrote: Hi, I'm having a weird problem -- maybe it's me. I've set up a class. Each instance will be stored in a scripting dictionary. Each instance will also contain 3 other scirpting dictionaries for various purposes. The class is called Parent In the Initialize statement I have: Set mAvailableAccounts = CreateObject("Scripting.Dictionary") mAvailableAccounts.RemoveAll Set mReceivedAccounts = CreateObject("Scripting.Dictionary") mReceivedAccounts.RemoveAll Set mChildren = CreateObject("Scripting.Dictionary") mChildren.RemoveAll In the main routine I create a new Parent. Put in the fields needed to create a key. Check the dictionary that stores these Parents, looking for the key. If I find one, I set Parent=nothing, and then set Parent = Dictionary(Key). When I do this, it appears that the 3 dictionaries within that "retrieved" instance are being reset to contain no elements. Am I doing something wrong -- that you can tell from the info I've listed? Are scripting dictionaries within classes somehow static and not specific to an instance? Any help would be appreciated. |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Scripting Dictionary in a class instance
Art,
Whilst your code seems to be working, it may not be a good idea to use "Parent" as the class name, as that exists already. Maybe "cParent" to avoid confusion for you, other developers and the compiler. NickHK "Art" wrote in message ... Hi, I'm having a weird problem -- maybe it's me. I've set up a class. Each instance will be stored in a scripting dictionary. Each instance will also contain 3 other scirpting dictionaries for various purposes. The class is called Parent In the Initialize statement I have: Set mAvailableAccounts = CreateObject("Scripting.Dictionary") mAvailableAccounts.RemoveAll Set mReceivedAccounts = CreateObject("Scripting.Dictionary") mReceivedAccounts.RemoveAll Set mChildren = CreateObject("Scripting.Dictionary") mChildren.RemoveAll In the main routine I create a new Parent. Put in the fields needed to create a key. Check the dictionary that stores these Parents, looking for the key. If I find one, I set Parent=nothing, and then set Parent = Dictionary(Key). When I do this, it appears that the 3 dictionaries within that "retrieved" instance are being reset to contain no elements. Am I doing something wrong -- that you can tell from the info I've listed? Are scripting dictionaries within classes somehow static and not specific to an instance? Any help would be appreciated. |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Scripting Dictionary in a class instance
NickHK
Thanks for the advice -- that seems like a good practice. "NickHK" wrote: Art, Whilst your code seems to be working, it may not be a good idea to use "Parent" as the class name, as that exists already. Maybe "cParent" to avoid confusion for you, other developers and the compiler. NickHK "Art" wrote in message ... Hi, I'm having a weird problem -- maybe it's me. I've set up a class. Each instance will be stored in a scripting dictionary. Each instance will also contain 3 other scirpting dictionaries for various purposes. The class is called Parent In the Initialize statement I have: Set mAvailableAccounts = CreateObject("Scripting.Dictionary") mAvailableAccounts.RemoveAll Set mReceivedAccounts = CreateObject("Scripting.Dictionary") mReceivedAccounts.RemoveAll Set mChildren = CreateObject("Scripting.Dictionary") mChildren.RemoveAll In the main routine I create a new Parent. Put in the fields needed to create a key. Check the dictionary that stores these Parents, looking for the key. If I find one, I set Parent=nothing, and then set Parent = Dictionary(Key). When I do this, it appears that the 3 dictionaries within that "retrieved" instance are being reset to contain no elements. Am I doing something wrong -- that you can tell from the info I've listed? Are scripting dictionaries within classes somehow static and not specific to an instance? Any help would be appreciated. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Unique Listbox Scripting Dictionary | Excel Programming | |||
Collection VS Scripting.Dictionary | Excel Programming | |||
Scripting.Dictionary question | Excel Programming | |||
Scripting.Dictionary | Excel Programming | |||
VBA question - Set reference to run Scripting.Dictionary | Excel Programming |