Mega Search
23.2 Million


Sign Up

Make a donation  
Missing required unit vcljpg when moving from BDS2006 to XE5  
News Group: embarcadero.public.delphi.ide

I am trying to migrate an older BDS2006 (Delphi) application to XE5.
In order to even open it I need to install GLScene version 0.8.2 into
XE5 since the graphics rendering uses GLScene visual components.

So I set about installing the version that was working in BDS2006 by
opening the dpk file in XE5. Lots of error messages were shown at this
point so I had to set the global browsing path to the same dir as the
dpk dir first, why? Should not a project base dir be in the search
always?

Anyway,
when that was fixed and I tried to build the package in XE5 it stopped
immediately with error message:
[dcc32 Fatal Error] GLScene2006.dpk(51): E2202 Required package
'vcljpg' not found

This is most likely a package that was included in BDS2006 but somehow
now is missing or not found.
It is present in my RAD Studio 2007 installation (in the lib subdir).
How can I find it for XE5? It is part of the dpk file thus:
{code}
requires
  vcl,
  designide,
  rtl,
  vcljpg;
{code}
If found in a strange place, how can I specify it in the dpk so it
works?

I have found a possible file candidate:
\lib\win32\debug\vcl.imaging.jpeg.dcu
But changing the dpk reference from vcljpg to either just jpeg or
vcl.imaging.jpeg does not help.
Even if I add $(BDSLIB)\win32\debug to the global library path it
makes no difference...

What is it I don't get right?

Vote for best question.
Score: 0  # Vote:  0
Date Posted: 10-Jan-2015, at 1:42 AM EST
From: Bo Berglund
 
Re: Missing required unit vcljpg when moving from BDS2006 to  
News Group: embarcadero.public.delphi.ide
On Mon, 12 Jan 2015 10:04:56 -0800, Remy Lebeau (TeamB)
 wrote:
>> The error is generated in this block in one of the source files 
>> (there may be more files after this of course...):
>> {code}
>> {$ifdef GLS_DELPHI_6_UP}
>> DesignIntf, VCLEditors
>> {$else}
>> DsgnIntf
>> {$endif};
>
>The error means that GLS_DELPHI_6_UP is not defined.  So whatever code is 
>performing compiler version detection is not detecting the current compiler 
>version correctly and is thus falling back to pre-D6 code.

Correct,
I found thta there is a GLScene.inc file that contains a whole suite
of defines depending on compiler version.
So I edited this and using the existing syntax expanded detection up
to XE7. After this the required unit error disappeared and other
things popped up instead.
See my thread in the graphics forum:
https://forums.embarcadero.com/thread.jspa?messageID=684819
Here I have gotten a lot further, but am now stuck on code detecting
the OpenGL version....
This causes errors only when a project using GLSceneViewer is opened
in the IDE. :(

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 12-Jan-2015, at 10:28 AM EST
From: Bo Berglund
 
Re: Missing required unit vcljpg when moving from BDS2006 to  
News Group: embarcadero.public.delphi.ide
Bo wrote:

> [dcc32 Fatal Error] GLSceneEdit.pas(37): F1026 File not found:
> 'D:\Engineering\Projects\CMPXE5\GLScene082D2006\DsgnIntf.dcu'{code}
> I seem to recall that DsgnIntf has been changed somewhere between
> BDS2006 and XE5

It was changed in Delphi 6, actually.  The DsgnIntf unit was broken up and 
replaced with a whole slew of new units (DesignIntf, DesignEditors, VCLEditors, 
etc).

> The error is generated in this block in one of the source files 
> (there may be more files after this of course...):
> {code}
> {$ifdef GLS_DELPHI_6_UP}
> DesignIntf, VCLEditors
> {$else}
> DsgnIntf
> {$endif};

The error means that GLS_DELPHI_6_UP is not defined.  So whatever code is 
performing compiler version detection is not detecting the current compiler 
version correctly and is thus falling back to pre-D6 code.

--
Remy Lebeau (TeamB)

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 12-Jan-2015, at 10:04 AM EST
From: Remy Lebeau (TeamB)
 
Re: Missing required unit vcljpg when moving from BDS2006 to  
News Group: embarcadero.public.delphi.ide
On Sat, 10 Jan 2015 15:52:07 -0800, Bo Berglund
 wrote:

>On Sat, 10 Jan 2015 09:53:06 -0800, Greg Bishop <> wrote:
>
>>I believe you just need to change vcljpg to vclimg.
>
>Thanks a bunch! That fixed the early build error! :)
>

Solved! Remaining problems could be fixed with a mix of:
- Changing vcljpg to vclimg (thanks for that!)
- Expanding GLScene.inc to cover newer compiler versions
- Using TFormatSettings in all places Format() is used
- Fixing AnsiString vs string issues for D2009+ versions
  (this was needed for calls to Windows AVIFIL32.DLL)

Now able to install GLScene 0.8.2 in XE5!

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 11-Jan-2015, at 4:02 AM EST
From: Bo Berglund
 
Re: Missing required unit vcljpg when moving from BDS2006 to  
News Group: embarcadero.public.delphi.ide
On Sat, 10 Jan 2015 09:53:06 -0800, Greg Bishop <> wrote:

>I believe you just need to change vcljpg to vclimg.

Thanks a bunch! That fixed the early build error! :)

Next problem (after fixing the DecimalSeparator problem that popped up
because GLScene had not used a TFormatSettings variable to handle the
decimal point):
{code}
[dcc32 Fatal Error] GLSceneEdit.pas(37): F1026 File not found:
'D:\Engineering\Projects\CMPXE5\GLScene082D2006\DsgnIntf.dcu'{code}

I seem to recall that DsgnIntf has been changed somewhere between
BDS2006 and XE5, but I don't know what to make of it....
Any ideas/hints???

EDIT:
The error is generated in this block in one of the source files (there may be more files after this of course...):
{code}  {$ifdef GLS_DELPHI_6_UP}
    DesignIntf, VCLEditors
  {$else}
    DsgnIntf
  {$endif};
{code}

Edited by: Bo Berglund on Jan 10, 2015 3:53 PM

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 10-Jan-2015, at 3:54 PM EST
From: Bo Berglund
 
Re: Missing required unit vcljpg when moving from BDS2006 to  
News Group: embarcadero.public.delphi.ide
I believe you just need to change vcljpg to vclimg.

Vote for best answer.
Score: 0  # Vote:  0
Date Posted: 10-Jan-2015, at 9:53 AM EST
From: Greg Bishop