Solved

VCL50 missing in Delphi 2007

Posted on 2008-10-30
7
2,936 Views
Last Modified: 2013-11-23
Hi All,

I have just installed Delphi 2007 on a new machine and have been trying to install some custom components that were written for us several years ago.  The component in question uses the vcl50 package.  When I click on the component in the Project Manager and choose install, I get a message saying "The runtime packages referenced by this project appear to include old packages.  Whould you like to convert the runtime packages list to reference new packages?"

It does not matter whether I choose yes or no here, I get an error saying:
[DCC Error] ESBWinTab.dpk(30): E2202 Required package 'vcl50' not found

I understand this was an old package from Delphi 5 and have managed to find reference that it should be in my windows/system directory.  Alas, it is not there, or in any folder on my machine.  

Could someone please tell me;
1.  What this message about runtime packages is actually telling me?
2.  What this package does (or did)?
3.  Where can I find it (online?) to be able to put it back on my machine?
4.  Or preferably, what package replaces it so I can upgrade my component.

Thanks

Chris Reardon

0
Comment
Question by:rfur72
7 Comments
 
LVL 37

Assisted Solution

by:Geert Gruwez
Geert Gruwez earned 200 total points
ID: 22847803
look in the ESBWinTab.dpk file
in the requires section

delete the vcl50 package and add the current VCL package of Delphi 2007
0
 

Author Comment

by:rfur72
ID: 22847907
Thanks for the quick reply!

I thought that might be the problem, but have tried both vcl70 and vcl100, which are the only two files of a similar name in my windows/system directory.  I gather, from other sources on the net, that vcl100 is the Delphi 2007 VCL package and am assuming that VCL70 is the package from teh Delphi 7 installation I have (will two versions cause problems?).

I am still getting the error message;
[DCC Error] ESBWinTab.dpk(30): E2202 Required package 'vcl100' not found.

Is it supposed to be as simple as changing the line;
requires
  vcl50;

to
requires
  vcl100;

which gives me the error, or do I have to do something else somewhere?

Alternatively I have found the file vcl.dcp file in the lib folder under the delphi install location.  Including this instead allows me to compile the package, but with warnings that;
[DCC Warning] esbtablet.pas(214): W1000 Symbol 'FreeObjectInstance' is deprecated
[DCC Warning] esbtablet.pas(316): W1000 Symbol 'MakeObjectInstance' is deprecated

I believe I can fix these by finding the replacements for these.  I just want to make sure vcl.dcp is the correct file before I continue.

Thanks again for your help.

Chris Reardon


 
0
 
LVL 4

Assisted Solution

by:dprochownik
dprochownik earned 300 total points
ID: 22847965
The truth is that you don't have to add any VCL packages manually. After delete old VCL5, and compiling that dpk project, delphi will implicity add proper new VCL packages, and you can be sure it is the right one. You don't have to download VCL from network because it is integrated with delphi, you can not have delphi without VCL, unless you have deleted VCL manuall, but I'm not sure if there is such possinility.

Good luck
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Accepted Solution

by:
rfur72 earned 0 total points
ID: 22848015
Thanks for your feedback.  

Deleting the

requires
  vcl50;

and recompiling has done the trick!  Just for reference (for anyone else reading this) the new lines that the compile process added were;

requires
  vcl,
  rtl;

Thanks again.

Chris Reardon

0
 
LVL 1

Expert Comment

by:leei
ID: 22848248
Some additional information that may help understand this and similar issues dealing with third-party component packages:
Delphi components involve two distinctly different packages. One contains runtime code and the other code that is only used at design time (by the Delphi IDE). The design time package will most likely have dependencies on the runtime package.
In this particular case where an upgrade was needed, trying to build the design time package prior to building the runtime package (with the proper dependencies) triggered the initial errors. It's always best to build the design time package first or, as in the final solution to this particular issue, edit both packages allowing Delphi to determine which to build first.
0
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 22848345
>>It's always best to build the design time package first or, as in the final solution to this particular issue, edit both packages allowing Delphi to determine which to build first.

i'm sure you mean the opposite
first build the runtime package
next the design time package
because the designtime package uses the runtime package
0
 

Author Comment

by:rfur72
ID: 22863556
Thanks again.

Packages are not something I have ever had to play with before, but they certainly seem to have their uses once you understand them.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
The viewer will learn how to use NetBeans IDE 8.0 for Windows to connect to a MySQL database. Open Services Panel: Create a new connection using New Connection Wizard: Create a test database called eetutorial: Create a new test tabel called ee…
The viewer will learn how to use and create keystrokes in Netbeans IDE 8.0 for Windows.

920 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

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now