Solved

loading packages dynamically which have duplicate classnames

Posted on 2007-04-11
3
258 Views
Last Modified: 2012-05-05
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






0
Comment
Question by:steve-west
  • 2
3 Comments
 
LVL 28

Expert Comment

by:2266180
ID: 18918956
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
 

Author Comment

by:steve-west
ID: 18990255
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
 
LVL 28

Accepted Solution

by:
2266180 earned 500 total points
ID: 18990411
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

Featured Post

Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
error 1.1 400 Bad request idhttp delphi 18 87
Delphi selector screen 2 79
tidtcpserver connection lost handle 2 84
Graphics32 under Delphi 10.1 Berlin 2 66
In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question