Default Library Path - delphi

Prior to my problem, I attempted to install a component which required me to change my Library - Win32 library path. The installation did not work out so I left it. A few days ago, I ran Delphi to work on my project. I compiled the program but Delphi told me "Unit not found: 'Systems.pas' or binary equivalents (.dcu) so I changed the Library path to: C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\lib. I was then able to compile my program but when I clicked a button, none of the code ran!
I went back to check my syntax and everything was correct hence why I was able to compile my program (note: my code and program was left untouched for weeks). I then tried to re-install Delphi (2 times) expecting that the Library Path would fix, but it didn't.
After the failed attempts of trying to restore default settings I did some researched on stackoverflow but I could still not find the answer. Topics I've come across:
Delphi XE : Lost Library path
Delphi can't find System.dcu; what should the default path settings be?
I added the ShowMessage function to test if it worked and it did so I really have no clue what the problem is. However I am still suspecting that my Library Path is incorrect.
What do you guys think the problem could be?
my code
or my IDE library path
Note: current library path = C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\lib
Also, how can I fix this problem?

I guess the linked answer should solve you problem. If you need specific data for Delphi 2010, here is the registry file for 64-bit Windows (for 32-bit Windows the registry branch should be [HKEY_LOCAL_MACHINE\SOFTWARE\CodeGear\BDS\7.0\Library]):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\CodeGear\BDS\7.0\Library]
"Browsing Path"="$(BDS)\\SOURCE\\WIN32\\VCL;$(BDS)\\source\\Win32\\rtl\\common;$(BDS)\\SOURCE\\WIN32\\RTL\\SYS;$(BDS)\\source\\Win32\\rtl\\win;$(BDS)\\SOURCE\\WIN32\\WEBSNAP;$(BDS)\\source\\ToolsAPI;$(BDS)\\SOURCE\\WIN32\\IBX;$(BDS)\\source\\Win32\\Internet;$(BDS)\\SOURCE\\WIN32\\PROPERTY EDITORS;$(BDS)\\source\\Win32\\soap;$(BDS)\\SOURCE\\WIN32\\XML;$(BDS)\\source\\Win32\\db;$(BDS)\\source\\Indy\\Indy10\\Core;$(BDS)\\source\\Indy\\Indy10\\System;$(BDS)\\source\\Indy\\Indy10\\Protocols;$(BDS)\\source\\database;"
"Debug DCU Path"="$(BDS)\\lib\\Debug;$(BDS)\\Lib\\Debug\\Indy10;$(BDS)\\RaveReports\\Lib"
"Language Library Path"="$(BDS)\\lib\\$(LANGDIR);(BDS)\\lib\\$(LANGDIR)\\Indy10"
"Package DCP Output"="$(BDSCOMMONDIR)\\Dcp"
"Package DPL Output"="$(BDSCOMMONDIR)\\Bpl"
"Package Search Path"="$(BDSCOMMONDIR)\\Bpl"
"Translated Debug Library Path"="$(BDS)\\lib\\$(LANGDIR)\\Debug"
"Translated Library Path"="$(BDS)\\lib\\$(LANGDIR)"
"Translated Resource Path"="$(BDS)\\lib\\$(LANGDIR)"
"Search Path"="$(BDS)\\lib;$(BDSUSERDIR)\\Imports;$(BDS)\\Imports;$(BDS)\\Lib\\Indy10;$(BDSCOMMONDIR)\\Dcp;$(BDS)\\include;$(BDS)\\RaveReports\\Lib"
If plain import of the above registry file does not help:
Reboot and try again;
If the problem persists, delete
Software\CodeGear\BDS\7.0 branches from both
HKEY_CURRENT_USER\ and HKEY_LOCAL_MACHINE\ hives and reinstall
Delphi;
Never run automatic installation procedure for unknown
component packages on your working system.

Related

I get a Can't load package error although the BPL is there

This issue is driving me crazy. I'm trying to compile and install The QR Designer from QuickReports 6. I have an issue just with the one package. When I right the package in the IDE > Install the IDE gives me:
Can't load package C:\xe10_3\QRDesign\Win32\Debug\dclqrd_DXE10_3.bpl.
The specified module could not be found.
But the exact file is there.
I've also tried installing it via the menu under Components > Install Packages and then choosing the BPL from there, with the same issue.
I've tried to use Process Monitor as on this post here to find the issue:
Delphi Can't load package the specified module cannot be found
I couldn't fix the issue, but what I did pick up from Process Monitor was that some process was looking for the package here:
Computer\HKEY_CURRENT_USER\Software\Embarcadero\BDS\21.0\Package Cache\dclqrd_DXE10_3.bpl
That key didn't exists. I tried manually creating the key, but that didn't do a thing.
Any ideas?
UPDATE
Here is the list of packages:
As you can see, dclqrd_DXE10_3 is dependant on two others. Which I already built and installed. I removed its references and re-added them again now, to make sure the references are sound. I guess its like Remy said, the Specified module not found is probably not referring to dclqrd_DXE10_3 although I don't know what other module it could be referring to.
To install a package successfully in IDE, follow the steps:
Open the dpk/dproj/groupproj file in IDE
Build the package(s) for Windows 32-bit platform.
IDE itself is a 32-bit applicaton, so it should match.
Normally, it will build all dependent/required packages
Check if all chain of BPL & DCP files are generated in package Output directory.
It defaults to $(BDSCOMMONDIR)\Bpl & Dcp folders, but can be changed individually for each Package in Settings.
PBL packages are like DLL files. In order to load them, it requires all dependent BPLs.
If you have custom package output paths:
Check if your DCP output path is included in Tools\Options\Language\Delphi\Library Library Path for Windows 32-bit platform
Check if no duplicates of outdated compiled packages in default $(BDSCOMMONDIR)\Bpl & Dcp directories
Add the paths to library source pas files in Tools\Options\Language\Delphi\Library Browsing path or Library path
In some specific cases, if the package requires some extra dll-s like DB Client libraries, check if these dlls are 32-bit and are loadable, like included in %path% environement variable.
Note, some libraries offers package installer tools, that automagically do all mentioned things for you.
Also, there are universal package installer tools for quick working environement setup in one click.
I don't know why this fixed my issue, but it did.
The output directories for the bpl and dcp was set to be $(Platform)\$(Config)
The project files for the different packages exists in the same folder so the above config was supposed to be the debug folder or the release folder. Why only this package was thrown off I still don't know, but since changing the above packages to have a fixed path suddenly I could now install dclqrd_DXE10_3.bpl.
Thank you all for helping.

Delphi 10.3.2 - Cannot resolve unit name System.Classes

Brand new installation of Delphi 10.3.2
Error Insight reports errors 'Cannot resolve unit name' on core RTL and VCL units, like System.Classes
This pollutes the error insight report, and also blocks code completion (control+space) which is a real issue...)
What I have tried so far:
Create a new VCL Form project: Same error, but project compiles without error
Checked that Control+Enter open the source file: ok
Checked that source folders are declared in the Browsing path (general Options)
Added the source folders to the Library path (general Options)
Installed IDE Fix Pack for delphi 10.3
Uninstalled previous delphi versions (XE4 and 10.2)
Cleaned the system PATH variable by removing references to previous delphi installations
I'm out of idea on how to fix this issue. Any help would be greatly appreciated
Edit: When switching to Win64 platform, error insight errors are gone. So I tried to delete the Win32 platform, and re-create it:same errors happen again.
Edit2: I uninstalled and installed Delphi 10.3.2 again: The error is still there...
Here's what I have done to resolve this issue:
declare the bin directory of delphi in the Library path. same for bin64 folder
clean up of runtime packages
install all official patches for delphi 10.3.2 (when installed from iso)
Note that the first install was done with the online installer (so patches were not required)
I believe that the issue came from an incorrect library path, with bin and bin64 directories missing...

rtl60.bpl was not found in Delphi 10

I was using Delphi 6. Now I am upgrade the delphi 6 to delphi 10.2.3.
I uninstalled the delphi 6. I found borland folder under the program file (86) still exists. I renamed the folder . Also I removed the relative search path in the Path environment variable.
I installed the delphi 10.2.3, and fixed codes that are not compatible with the new delphi.
Building and compiling the program are all good, but running the program produce an error: "The code execution cannot proceed because rtl60.bpl was not found. Reinstalling the program may fix this problem".
I checked the program project options, in the Package, I did not find rtl60 there.
How to fix the problem? Thanks.

Impossible to update Indy to latest version

I've been struggling to update Indy on my Delphi XE version and simply can't achieve this task.
Tried to follow exactly the instructions on
http://www.indyproject.org/Sockets/Docs/Indy10Installation.en.aspx
First i tried the option 1, that is :
1) use the command-line FULLD#.BAT script that corresponds to your Delphi version.
The BAT script runs, but when i open Delphi, i see no components installed.
So i tried option 2 :
2) Open the individual .dpk files in the IDE and compile them, in the following order:
IndySystemX0.dpk (in Lib\System)
IndyCoreX0.dpk (in Lib\Core)
IndyProtocolsX0.dpk (in Lib\Protocols)
dclIndyCoreX0.dpk (in Lib\Core)
dclIndyProtocolsX0.dpk (in Lib\Protocols)
The files compiled until 'IndySystem150.dpk', it returns the error below :
[DCC Fatal Error] IndySystem150.dpk(44): F2051 Unit IdIDN was compiled with a different version of IdGlobal.IndyCheckWindowsVersion
Has anyone ever get this update done ? Any hints please ?
Thanks !
If anyone has this problem, I could fix the issues by deleting all Id*.dcu files in the folder below :
C:\Program Files (x86)\Embarcadero\RAD Studio\8.0
After that I could compile and install the packages.
As described on Indy installation page :
"If Indy 10 is already installed, it needs to be uninstalled first. Remove the pre-compiled BPL files - dclIndyCoreX0.bpl and dclIndyProtocolsX0.bpl - from the IDE via the "Components > Install Packages" dialog. Then delete all of the existing binaries (IndySystemX0., IndyCoreX0., IndyProtocolsX0., dclIndyCoreX0., and dclIndyProtocolsX0.*) as well as delete any Indy 10 source files, if present. Be sure to check for files in the IDE's \bin, \lib, and \source folders, \Indy subfolders, and OS system folders."

Procedure Entry Point invalid in JVCL (jclsysinfo)

I've installed latest Jedi VCL for Delphi (JVCL 3.49) using install.bat (from jcl and jvcl folders respectively), without errors. The problem is when I run Delphi 2010, I get a lot of errors about invalid entry point in jvcl bpls.
entry point invalid #jclsysinfo#jclcheckwinversion$qqrri in JvCore140.pbl
I get this error in all Jv*.bpl files, and always with the same entry point.
I've checked I don't have old jcl/jvcl files or jv*.bpl/jc*.bpl files. I don't know how to fix this problem. Any sugestion?
When compiling packages in Delphi (as the JCL and JVCL do) that require other packages at compiletime the compiler uses the dcp files for the required packages and not the bpl files of those packages.
For example the JvCore.dpk has Jcl and JclVcl in its required clause among some RTL packages. That means when compiling it will take Jcl.dcp and JclVcl.dcp to get the information where the procedures/classes it needs are located in the bpl.
These dcp files are most of the time (unless specified differently - see next paragraph) located in the DCP folder which is right next to the BPL folder.
If the dcp it uses is not compatible to the bpl it finds when loading you will get those errors. Make sure you don't have any old bpl and dcp files anywhere that the compiler may find. In the JCL setup you can specify where it puts those while the JVCL setup puts them into the same directory as the dcu files.
Additionally if you have different Delphi versions installed it can get worse because usually the dcp files don't have a suffix. If the directory it puts those happens to be in the PATH variable wrong versions might be found. However the DCP directory is not put into PATH by the Delphi installation but only the BPL directory.
(While I've been writing this, Stefan Glienke has posted an answer which has a lot more useful info in it, but I'll post it anyway because it's easy to test if you're only interested in one Delphi version)
I'm not sure the following will work for you because I don't have D2010
installed to test it against. You could check it out quite quickly by
trying it using only one .Dpk file in step 4.
Note that I always set the Output paths for BPL,
DCP and DCU files to a Lib2 folder under the Delphi version's install folder.
That way I know where they all are so it's easier to tidy up if something goes
wrong.
I uninstalled the JCL and JVCL and deleted all the JV*.BPL, .DCP and
.DCU files
I ran the JCL install .bat, and ignored all the prompts to add folders to
the system PATH, because my Lib2 folder is already on the PATH.
In the folder for my Delphi version below JVCL\Packages, I edited all the
.Dpk files to use my Lib2 folder for the BPL, DCP and DCU output files. this is
a bit tedious but only needs to be done once and can be made easier by doing it
using a keyboard macro.
Then, using the IDE package tool, compiled and installed all the JVCL .Dpk
files that have "Design" in their names and that I want to install.
They all installed without ther error message you are getting.

Resources