We have set up a new (template) development machine with among other things Delphi XE including a large number of third-party and internal packages, and intend to make a number of clones of this computer for the developers in our team. Note that we are not trying to bypass licensing, we (re-) activate/register Windows, Office, Delphi XE etc. after cloning. My problem is that when I am logged on (as myself) to the clone that will be my own machine, Delphi shows none of the packages we installed (i.e. on the the template machine, using a local Administrator account). Is there anyway I can find and copy/move the Delphi settings from the local administrator to my own user account, so that packages and other settings are the same as we set them up on the template machine before cloning?
I'd try to export the relevant registry keys - something like HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Known Packages for D2007 (probably ..\Embarcadero\.. for XE). You can (carefully!) edit the *.reg file and re-import it.
Related
I have a virtual machine with the delphi xe2 installed and expired, I would like to know how export all components used in my projects from this machine to other that has the delphi xe2 installed and activated.
I done it:
I copied the program folder into my new machine, also was exported the register from the virtual machine and installed. I copied the *.bpl files from the system32 folder to the other machine.
I imported a project from virtual machine that works normally, and in my new machine occur many problems with components not found.
How can I solve this?
Notes: I have only this project in this virtual machine, I bought it.
I dont have many knowledges in Delphi. I am starting. I'm a Java Developer.
Thanks
Come to think of it: what is expired? If Delphi XE2 is expired, it is probably a trial version (which is usually an Architect SKU). You can not copy its components and use them. They will not work in a normal environment. Otherwise, someone could buy the much cheaper Professional and simply copy everything from the (Architect) trial version over to their Professional install and use them. The trial components are not compatible with anything but the trial of the same version.
If you mean third party components: usually, these components are installed with an installer. Copy these installers to your other installation and install them like before.
That is perhaps a bit slower, but the only proper way to do this. Anything else means fuddling with the registry and perhaps .ini files and what not, and a lot of frustration etc. The installers know what to install and how.
Your project sources can simply be copied over as they are, i.e. copy the entire directories. But first install all necessary components. If you used components from a trial version, and your XE2 doesn't have them, you must abandon them.
try 3rd party tools calling CnPack Wizard for copy configuration.
mostly BPL's are located in C:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl where 15.0 -- Delphi version number (15.0 is XE7)
I want to install a Firebird database driver, and to have it available within the Delphi XE IDE. I want the database driver to be usable on the same basis as other, supplied database drivers (eg Interbase, SQL - from within the Data Explorer in the IDE). I have obtained an appropriate driver.
The driver consists of a Delphi project, which compiles to a DLL; and modifications to two .ini configuration files (dbxconnections.ini and dbxdrivers.ini). I assume that the DLL is the actual driver, and I have compiled the project without problem.
I have got this far, and this is where I realised that I do not know what is involved in installing a new database driver; what is involved in installing a new database driver into an IDE; nor where the elements of the installation need to reside.
So my question is:
What steps are needed to install a dbExpress database driver into the Borland XE Delphi Professional IDE?
Some of the specific points I don't know about include -
Does the driver need to be registered with all of Firebase, Delphi and Windows?
Do I need to employ a specific registration procedure to accomplish registration?
Are there any elements I am missing to accomplish my aim?
Where should the installed components be located?
All four vendors, Embarcadero, Borland, UniOpen, and Firebird provide documentation (most of which is very comprehensive) but I have been unable to extract from them what I need to do and where to do it.
I have searched multiple questions on SO, but all of seem to start from the basis that the OP knows what is involved in driver installation.
All the products (except the driver project) generate multiple files in multiple locations, and it is not clear what components belong where. For example, I have multiple versions of the two configuration files residing in:
C:\Users\User\AppData....
C:\Users\Public\Public Documents...
C:\Program Files\Vendor....
....
In addition these products install files into:
the registry (multiple keys);
C:\Program Files....;
C:\Program Files (x86)....;
C:\Windows\System....;
C:\Windows\System 32.....
and probably more.
Environment:
Machine: Lenovo Thinkpad W510
OS: Windows 7 Ultimate
Delphi: Embarcadero® RAD Studio XE Version 15.0.3953.35171
Database: W1-V2.5.0.26074 Firebird 2.5
Database Driver: UniOpen Native DBX Driver
Also Installed:
Embarcado Borland® Developer Studio 2006 Enterprise Version 10.0.2288.42451 Update 2 (XP Version)
Borland Delphi Version 7 (XP Version)
In summary:
What steps and locations are needed to install a dbExpress database driver into the Borland XE Delphi Professional IDE?
You missed a file. :)
DataExplorer, from the best I can tell, uses dbxdrivers.ini. My installation of XE has a single copy of that particular file, located (Win7 64) in C:\Users\Public\Documents\RAD Studio\8.0. The connection types listed in DataExplorer come from the list of installed drivers at the beginning of that file, and each driver has one or more configuration sections which follow that list.
The driver files listed in the configuration section have to exist in a location findable (like any other Windows DLL) by LoadLibrary. The documentation in the link explains the way the API function searches for DLLs; basically though, the IDE has to find it somewhere on the PATH.
The vendor or author of your particular driver should be able to provide the info that needs to go in the dbxdrivers.ini file. (I'm not familiar with UniOpen personally, and don't have FireBird on this particular machine.) The IDE only reads that file during startup, so you'll need to (re)start the IDE after making the additions.
This post at the Embarcadero Delphi Database->DBExpress forum may help with defining aliases for your Firebird databases, and describes connecting via the TSQLConnection component. (Look for a post by Ralph Horbury-Smith.) If you don't have a Developer's Network ID, you'll need to register with the Embarcadero site; the link I provided uses HTTPS for some reason. You can also get to their forums via NNTP; I'm not using a newsreader, so I'm not sure what the address would be. There's a link to connection info on this page at Embarcadero.
There's also some information available on the Delphi XE documentation Wiki pages that might help as well.
EDIT: Found one more link at the DBExpress forums that might interest you. It has a link for another FB DBExpress driver and specific information for the dbxdrivers.ini file for that driver. It's the post by Phillip Flores (about the 3rd one down on the page).
I am accepting #Ken's answer. His response provided links to various resources. I am summarising the answers to the specific points I had that I have obtained from the references.
There is no need to amend dbxconnections.ini - the IDE will do that for me.
I need to amend dbxdrivers.ini appropriately and place it in the IDE directories.
The actual driver needs to be somewhere on the path - typically System32.
There is no need to register the driver with Windows.
Apart from the items listed above, there is no special procedure needed to register such drivers.
The list here appears complete.
EDIT:
My conclusions in this summary were premature and I have asked a further question to try and obtain further information. The strikeout in the list above marks the incorrect elements.
After many years of trouble-free use, Delphi 7 is now throwing an Access violation at address
40233A3E in module 'vclx70.bpl'. Read of address 0000021C.
When starting the IDE, the default empty project and unit/form appear and compile and run fine.
I'm developing Windows apps, running on Windows 7 (x64).
I haven't installed any new packages or tools in many, many months.
I stopped, dead in the water, unable to work.
Any suggestions other than a complete rip and re-install (which takes many hours...)
EDIT: I un-installed and re-installed Delphi 7. Now I'm getting Access violation in vcl70.bpl. I would have thought that uninstalling D7 would completely remove all of its libraries, etc... Are there folders that I should manually delete after uninstalling D7?
Problem fixed (and major machine rebuild averted)!
Gerrit Beuze of ModelMaker Tools suggested elsewhere:
Remove all .dsk (project desktop) files for the project you try to load, Temp remove all *.dst (desktop files) from C:\Program Files\Borland\Delphi7\Bin
After performing these steps, the problem appears to have been fixed.
A read at that low a memory address is typically a problem in a third-party component. However, you say you haven't installed anything new in months.
The other thing that's strange is that you're getting the error in vclx70, which is one of the CLX libraries. Are you doing anything using the CLX (leftover cross platform - Kylix) forms or dialogs?
If not, you might do a search in your source for QDialogs, QForms, or any of the other units in %PROGRAMFILES%\Borland\Delphi7\Source\Clx, and see if something mistakenly was added that you didn't intend that's pulling CLX into your project. If so, change it to the VCL version instead (by just removing the 'Q' from the front of the unit name in your source).
EDIT: You might try going into the registry (D7 would be HKCU\Software\Borland\Delphi\7.0) and temporarily changing the name of the delphiCLXide entry in Known IDE Packages to something else (put an underscore in front of the name or something). Then start the IDE. You should get an error message about Delphi being unable to load the package, and asking if you want to try and load it again in the future. Answer 'Yes', and let the IDE continue to load. Then try again with your project and see what happens.
The step above removes CLX temporarily from loading in the IDE designer. (Don't worry, you can just rename the key again to put it back if it's not the problem. If it doesn't come back, make sure the IDE didn't add an entry in the Disabled Packages entry; if it did, just remove it.)
If this works, you can open the project options (.DOF) file for your project, and remove the CLX libraries from the Packages list. This prevents it from being included when your project is loaded.
Once you've established whether the problem actually
My first suggestion would be to use XP Mode or another VM infrastructure to run such an old Delphi version on Windows 7 (I do it that way).
Another potential method is to use the compatibility settings in Windows 7 to set it to XP and to exempt the Delphi 7 process from DEP (data execution prevention) policies the system may otherwise impose. I've had some trouble with enabled DEP with older Borland IDEs and also VS 2003.
I am trying to create an installation disk with InstallAware Express for my Delphi 2010 application. I have selected (checked)
CodeGear Database Express12
CodeGear Visual Component Library 12
for Application Runtime.
When I try to build it, I will get an error message
Error during build: No files matching pattern "C:\Windows\system32\*120.bpl"
The message will go away if I un-check the above runtime but of coz the program will not run.
Can someone please tell me what I am doing wrong?
Also... I have use their scan file button to scan the dependent files base on my application.exe and installaware put a list of files in the $TARGETDIR$, should I leave them there or I am suppose to move them to various folder (e.g. some of the files are from the windows\system32 directory...)
Thanks a lot.
FWIW, one of the great things about Delphi is that you can pretty much install on any system without worry if you turn off the "build with packages" option. This would eliminate the need for these files, and solve your problem, and also make the application more robust against updates and changes. IMO packages are only needed if you are building multi-module applications which are more advanced, and in that case you wouldn't want to be using any Express installer.
You can manually add the files.
To find out which VCL packages your application uses, open the project in the IDE. Use the menu item Project->Build project to rebuild your entire application, and then use Project->Information to view the information dialog. The list of packages actually required by (and therefore needing to be distributed with) your application are listed there.
Where to install them on the destination system depends on why you're using packages in the first place. If you're using runtime packages simply to reduce the download size for your users, and the packages will only be used by this single application, put them in the same folder as your application ($TARGETDIR$). If you're using them because you've got several different applications, and they'll all be installed in different locations but use the same runtime packages, install them in the System32 folder ($SYSDIR$, if I remember correctly).
InnoSetup works fine with runtime packages manually added, btw, especially if you use the excellent (and also free) ISTool IDE. (Not affiliated in any way; just a happy customer.)
Did you have Delphi 2010 installed on this machine? If so, you should see several bpl files under C:\Windows\system32 folder.
I've got a Delphi 2007 VM which includes a reasonably up-to-date Report Builder and Dev Express Suite. I use it for a particular project for a particular client.
For that same client, I also have a D5 VM which just so happens to use a (different, older) version of Report Builder and a different (older) version of some of the Dev Express components.
It would make testing and general maintenance of my work for this client a lot more straightforward if I could install D5 (and the versions of the components it uses) onto the D2007 VM, and have one 'uber VM' that contained everything for that client. Naturally I'd have to keep the various versions of the components 'separate'.
Hope you haven't all drifted off to sleep with boredom yet - just wondered if there were any tricks or tips I should be aware of before I try to do this. I figured that putting D5 onto the D2007 machine would be easier (larger existing VM drive etc, plus avoiding the process of re-registering a D2007 installation etc), but in if would be easier to add D2007 to D5 then I could do it that way round I guess.
Any advice? :-)
Multiple Delphi versions do coexist quite nicely if you install them in the correct order, newer versions after older ones. This is something that holds for VMs just as for real machines. If you have a VM manager with snapshot capabilities you could try to install Delphi 5 over Delphi 2007 and see whether anything breaks - if so you simply revert to the snapshot. However, since setting up a new VM isn't a big task I would do that instead and install Delphi versions in the recommended order.
Multiple versions of component sets can be installed as well, each into its own directory. Only one of them can be registered inside one IDE, obviously, but you can use different versions for different IDE versions. If you have an installer that gives you trouble you can always install Delphi and the component sets in one account and develop in another account. Installers do generally write only to the machine and current user registry hives, so running Delphi in another account allows you to install packages manually. Be sure to build the packages in Delphi-version-specific directories - even though most packages have version-specific package files all other source files have the same name and need to be rebuilt for each Delphi version.