JclIdeEUtils raises RsEPlatformNotValid in my Notebook Win8 64 bit

Hi all.
I have a program which uses JclIdeUtils to detect Delphi installations in a machine. The program works fine in my desktop (Windows 7 32 bit) where Delphi 7 and Delphi XE3 are installed, but in my notebook (Windows 8 64 bit) I get this error message:

'This installation cannot generate binaries for an uncknown platform'

which corresponds to a Jcl constant RsEPlatformNotValid.

Any idea?

Thanks to all for any advice.

Marco
LVL 32
Marco GasiFreelancerAsked:
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.

Sinisa VukSoftware architectCommented:
may need to get newer version of jcl (compatibile with win8)
0
Marco GasiFreelancerAuthor Commented:
Hi, sinisav, how're you going?
Unfortunately I have the last versions (AFAIK) of Jcl (version 2.4.1.4571) and of jvcl (version 3.47).
 :(
0
Marco GasiFreelancerAuthor Commented:
I got it! The problem is that Jcl developers has not thought I can install Delphi 32 on a 64-bit system. Their original routine is:

procedure TJclBorRADToolInstallation.CheckPlatform(APlatform: TJclBDSPlatform);
begin
  if ((APlatform = bpWin32) and ([bpDelphi32,bpBCBuilder32] * Personalities = [])) or
     ((APlatform = bpWin64) and ([bpDelphi64,bpBCBuilder64] * Personalities = [])) or
     ((APlatform = bpOSX32) and ([bpDelphiOSX32] * Personalities = [])) then
    raise EJclBorRADException.CreateRes(@RsEPlatformNotValid);
end;

Open in new window


If you install your 32-bit copy of Delphi 7 (the only one, uh?) on 64-bit system, this check raises the error because jcl developers assumed that on a 64 -bit system you necesseraly install a 64-bit software. But if you change this routine this way:

procedure TJclBorRADToolInstallation.CheckPlatform(APlatform: TJclBDSPlatform);
begin
  if ((APlatform = bpWin32) and ([bpDelphi32,bpBCBuilder32] * Personalities = [])) or
     ((APlatform = bpWin64) and ([bpDelphi32, bpDelphi64,bpBCBuilder64] * Personalities = [])) or
     ((APlatform = bpOSX32) and ([bpDelphiOSX32] * Personalities = [])) then
    raise EJclBorRADException.CreateRes(@RsEPlatformNotValid);
end;

Open in new window


all works fine.

I'm going to accept this as solution for other who can need it.
Thank you, sinisav, for your help.

Cheers
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
Marco GasiFreelancerAuthor Commented:
Found solution by myself
0
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.