loading packages dynamically which have duplicate classnames

How can I load packages dynamically which may have duplicate classnames?

For example

I have two packages

Package 1 contains, say 500 forms

Package 2 contains another 1000 forms

Most of the forms in each package depend or relate to each other in some degree.

Also a number of forms in each package (say 50) refer to a form(s ) in the other package.

For example, we have a contact management package. One of the forms in this allows the user to perform a sales order inquiry - but this is in the Sales Package. The Sales order inquiry pulls in say, Stock Inquiry. This is in the Stock Module.

What we now have in the Contact Manager module, when it is built, the Sales Order inquiry screen is compiled (together with all it's dependencies) and also the Stock Inquiry screen (together with all it's requirements).

Loading the Stock Module is fine.

Loading the Contact Manager results in EFilerError " A Class named xxxx already exists..".

Now, these classes are going to be the same.

Is there anyway of suppressing/ignoring this error and loading the complete Contact Manager module.

If not, can you suggest a way to overcome the above situation.

Thanks

Steve






steve-westAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

2266180Commented:
I am guessing you are having the same class name used in 2 different units. is that so? (you can check by searching for the class name in all files (using total commander for example or some other file manager). if that is tha case, you need to either merge the 2 units or at least class definition, or rename one of them.
there is no way of having 2 different class definition with the same name loaded at design time. you will have to somehow make it one.
if what I say is not what you have, maybe an exact example will help better understand your situation and fix it.
0
steve-westAuthor Commented:
Hi Ciuly:

I'd pretty much resigned myself to what you've just explained.

I'm having to ensure that a class reference is held in a only one module (package). The cross-module referencing means that this is a really painful and laborious task (I didn't realise it also extended to units - you can only have a unit referenced in a single package - not multiple!!!).;

Thanks for your help.

Regards

Steve


0
2266180Commented:
well, the other solution is not to load the packages into the ide, and only add it to each project you will work with (since you will not be using both packages in the same projet... are you? if you do, then you otehr solution is to not even add the packages to teh project, but add the units to the project searchpath. AND keep in mind that in a uses clause if you have:

uses unit1, unit2;
and unit1 has a TMYClass class definition and so does unit2, then  the actual class used will be the one form unit2.

so, if you also need to use the same 2 different classes with the same definition in the same unit, your only solution is to add the unit name in front like:

var c1:unit1.TMYClass; c2:unit2.TMYClass;

in which case c1 will be of a different type then c2. but of course this approach means you will have to pay a very very much attention to uses clauses and var/property declarations otherwise there will be a mess.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.