Ide Indy Delphi

Title: HOW TO INSTALL Indy 10.5.7 in Delphi 2007 IDe from * Tiburon.zip * distribution
Question: The installation of Indy 10 into the IDE is difficult
for beginners which greatest cause of frustration
is to deal with the IDE. Here a step-by-step
guide useful for Indy 10 in particular and similar challenges
in general
Answer:
Date 25/05/2010
By Davide Spano
e-mail davide.spano@armfield.co.uk
**********************************************************************************
HOW TO INSTALL Indy 10.5.7 in Delphi 2007 IDe from * Tiburon.zip * distribution
**********************************************************************************

- 0 What version of Indy I have in my IDE?
To find out..
Create a new VCL project with a form and drag whatever of the components that are in the IDE
Indy tool palette section (TIdTCPClient or other) then right click and select
About Internet Direct (Indy)...
You get a nice picture telling clearly what version yo've GOT

-1 Download the Tiburon.zip distribution. At the time ofwriting You find the distribution
at the following URI
http://indy.fulgan.com/ZIP/
if it is not just google it I am sure you'll find something
-2 Unzip the folder somewhere on your system or network.It contains a lot but do not
dispair
-3 Start your Delphi 2007 IDE and make sure no project is loaded, it has to be blank!
-4 Now in Tools--Option you get a window with a tree and many branches but you care
of just two things

- Enviroment Variables:

this a list of strings that allow Delphi 2007 IDE to shorten the system location
names (brutally speaking!)
- Library -Win32 under Delphi Options:
this is quite more complicated and we go through it bit by bit in a simple way in the
the following description.There is a help button in the RB corner and you mightwant to
give a read to that in order to get an idea of what this is all about
-5 Let's begin from *Library path*

The IDE needs small blocks of code to make available all the features it is made of i.e.
components for Run Time and design time and source code of these component for when you
are debugging hence, you have a way to tell the IDE Where on the system it should look
for these blocks.
On my system for example the Enviromental Variable $(BDS) is
C:\Program Files\CodeGear\RAD Studio\5.0
probably this is the case also on yours, but if not do not despair the substance won't change
have a look here at my library path:

$(BDS)\lib;
$(BDS)\Source\Indy2009\System;
$(BDS)\Source\Indy2009\Core;
$(BDS)\Source\Indy2009\Protocols;
$(BDS)\bpl;
$(BDS)\Dcp;

Yours doen't have to be the same this is just to give you an idea of what it might look like
and now I am going to be more specific
$(BDS)\lib;

it's very likely also in your library path because there - Code Gear - Embarcadero or whoever
makes the IDE put a lot of their stuff which is then used by the IDE itself. Do not touch anything
here if you don't no what you are doing

You might also have

$(BDS)\lib\Indy10 (this contains the .dcu files for the Indy 10 library)
this is the same as the $(BDS)\lib I have just talked about, but its importance is limited to the
Indy features of the IDE. These are actually the features that you want to substitute with a newer
version as you can see all these files begin with an Id- prefix and if you suspect that there might
some other location of your system with such files do a search and find out!
All these file must 'disappear' either hidden (I prefer this) or deleted to make room for those
obtained from the Tiburon.zip you have downloaded, but let's do a step at a time..
What I did is simply to rename $(BDS)\lib\Indy10 with something like OldIndy_10_v1.1.5 because
the version of Indy 10 I was using was the 1.1.5 (and I am going to upgrade to the 1.5.7). By
renaming the folder the IDE will not see it the next time you restart it because this folder is
not in the library path!
Of course another option is just the removal of $(BDS)\lib\Indy10 from you library path without
renaming anything, you choose the method you prefer most the substance is that the IDE must no
longer see the old Indy 10 file rather it should see the new files

-6 Some other Indy files are in

$(BDS)\bin
these are not dcu files, rather they are binary files that is .bpl file and also these must be
hidden.Notice that $(BDS)\bin might not show in your library path but it is icluded by default
in fact many aother .bpl files essential to the IDE are also here. These .bpl files are the result
of the compilation of packages.You will compile some packages shortly
The way I do this is to create a folder called
Indy10_v1.1.5
this let me avoid deleting anything, you never know!
What you should find here are the following
****** Run Time binary for Indy 10 **********

Indy100.bpl
IndyCore100.bpl
IndyProtocols100.bpl
IndySystem100.bpl
****** Design Time for Indy 10 ********

dclindy100.bpl //put this away first
dclIndyCore100.bpl //wait for step [8] to put this away
dclIndyCore100.bpl //wait for step [8] to put this away
****** Som DLLs if you have RAD studio ******

dclIndyCore.dll
dclIndyProtocols.dll

************ Some .jdbg files ***************

Indy100.jdbg
dclIndy100.jdbg
I suspect the dlls are for CBuilder if you work with RAD Studio rather than with just Delphi
,but I do not knot this detail for sure you might find out it googling..the same goes for those
.jdbg files I do not idea what they are for hence, I store them all together in a folder so that
I might find out one day!

As far as delphi is concerned instead

the dcl.. files are the result of a compilation of Design Time packages and are those to used
by the IDE to make available the Indy components on the tool palette while the Indy..100.bpl
files are pretty much the same but contain only the Run Time part of the compile packages.
To make it clear if you want to use the Indy components from the tool palette you need the IDE
to find both and not just that tose that are dcl.. prefixed the Design Time must also be installed
in the IDE and we'll do that shortly
You could also decide that you do not need the Design Time part and in this case there is not
*installation* process for the IDE to be performed and only the Run Time part of the newly
compiled packages has to be found by the IDE.
Follow up and you'll understand..
-7 At this point all the old files in $(BDS)\bin and $(BDS)\lib have been put aside in some
folders I advice you to look also in
C:\Windows\System32

here you should not find files for Indy like dlls or bpls even though you almost surely find
som .bpl files if you find Indy files the story is the same store them in a folder well marked
as old Indy something. Ipersonally did not find anything here!
The other place is in your share document folder where RAD studio puts something, or you might
put something. On my system for example

C:\Documents and Settings\All Users\Documents\RAD Studio\5.0\Bpl
C:\Documents and Settings\All Users\Documents\RAD Studio\5.0\Dcp
I use these two folder to store some other .bpl and .dcp files of thirdy party or my own components
and I did not find anything related to Indy here either but this might not in your case.Same story here
to, put what you find aside in a safe folder.
-8 Now you system should be clean of the old files ready to receive the file for the new version of Indy 10
that we are going to compile, but first a last thing!
Indy 10 comes already installed when you buy the Delphi 2007 IDE and you find the components in the palette
but now you have place the ([6])

****** Design Time for Indy 10 ********

dclindy100.bpl
dclIndyCore100.bpl //before unistall and put it away
dclIndyProtocols100.bpl //before unistall and put it away
away and if you close the IDE and reopen it you get an error because the IDE cannot find them any longer
said that before closing the IDE you have to thell it that you want un-install the Indy components from the
IDE hence, it will not try to load these Design Time code next time you open the IDE.
To do this do

Components--Install Packages
you should get a list of Design time packages (.bpl files) that the IDE loads when open and you should find
dclIndyCore100.bpl //before unistall and put it away
dclIndyProtocols100.bpl //before unistall and put it away
and you also should see there location as system folder when you select them.Remove them using the remove
button, and if you think you have messed up something cancel and repeat until you are sure that just thes two
packages are removed!

After that put the
dclIndyCore100.bpl //before unistall and put it away
dclIndyProtocols100.bpl //before unistall and put it away
away with the others. If then you restart the IDE and begin with a new Form you'll notice that the Indy component
are no longer there. Eventually, your system is clean as if Indy 10 wasn't there in the first place.
-9 Now we start with the second part of the job which consist of putting on the new Indy 10

File--Open
Go to the IndyTiburon folder you have unzipped earlier where you find three relevant subfolders

-System
-Core
-Protocol
Inside these there are the .dpk projects (delphi packageproject) that you need to compile to create the new
Indy 10 (1.5.7) library files (.bpl files)
load the following projects in the ordr they are listed
IndySystem110.bpl
IndyCore110.bpl
IndyProtocols110.bpl
dcIndyCore110.bpl
dcIndyProtocols110.bpl
Notice that now there is a 110 while we put away the 100 version of the files, the correspondence
should be

BDS2006 -- 100
RAD2007 -- 110 or 100
RAD2009 -- 120
RAD2010 --130 OR 140 (NOT SURE)
I got this info here

https://forums.embarcadero.com/thread.jspa?messageID=134027
-10 Let's compile!

This is the part where you might get in trouble above all if you are running in MS Vista as I do
,the general advice is do notchange anything in the opsions of the 5 projects that are currently
loaded in the IDE and that you are abot to compile.
Go to
Tool--Options
you get the usal window, make sure that *package output directory* points to a directory on your
system that the IDE can see (no antivirus or thing like that, no network restriction and similar)
for instance I decided to point to a folder like
$(BDS)\bin\CurrentIndy10_1.5.7
Where I created a new * CurrentIndy10_1.5.7 * that will contain everything about the new Indy 10
,this solution is not elegant but it is practical and if you upadte regularly makes it easier to
repeat the process.
Hence after compilation the output of the compilation process will be sent to this folder and as
you compile the list of the .bpl and .dcp files will grow, but let's do the first bit
Select IndySystem110.bpl and Compile
as I said if the system is clean and there are not restriction of the system to writing data to the
output folder and so on you should get the
IndySystem110.bpl
IndySystem110.dcp
compiled into the folder hurray!
If you get an error it is probably the case in which you cannot write there or the IDE is not cleaned
but you should not get an error on compiling IndySystem110.bpl
Now you might think that you can go on to IndyCore110.bpl and you are right except for the fact that you
might fail the compilation with an error, why?

Well, chances are that the
$(BDS)\bin\CurrentIndy10_1.5.7
is not in the IDE library path. This is essential because to compile
IndyCore110.bpl

the compiler will need to find the the IndySystem110.bpl ( and the IndySystem110.dcp ) infact if you look
in the Project Manager for the IndyCore110.bpl project in its Required folder you'll find that it needs
rtl.dcp (Runtime Library of VCL on which almost any .bpl project depends on )
IndySystem110.dcp (the one the you've just compiled!)
Hence
Tool--Options
and add the library path

$(BDS)\bin\CurrentIndy10_1.5.7
now recompile the project
IndyCore110.bpl
and you should get a successful compilation and the list of files in the $(BDS)\bin\CurrentIndy10_1.5.7 grows

At this point you understand that the series

IndySystem110.bpl
IndyCore110.bpl
IndyProtocols110.bpl
dcIndyCore110.bpl
dcIndyProtocols110.bpl
must be respected because any project requires something that was compiled in the step the precedes
-11 Now if you want the Design time Support that is the Indy components to be installed in the tool palette
you need to perform another step. Yo might decide to do without this but I find better to have the tool
palette with the Indy comps on
yOU MIGHT NOT KNOW this but if you right click on
IndySystem110.bpl
and select options in the *Description* section you'll find the **Runtime only** option selected
while for
dcIndyCore110.bpl
dcIndyProtocols110.bpl
you'll find the ** Design time ** option selected that confirm what I anticipated earlier
Only
dcIndyCore110.bpl
dcIndyProtocols110.bpl
will be installed being DT packages
Select the first and right click then select INSTALL and you get a message saying that a nuber of components
have been reghistered with the IDE, finally repeat with the last project and you get the same kind of message
You can check that everything is ok go to
Components--Install Packages
and you get the list of installed Design Time pachages where you oght to find

dcIndyCore110.bpl
dcIndyProtocols110.bpl
from
$(BDS)\bin\CurrentIndy10_1.5.7
You are done.
Now last check. Create a new VCL project with a form and drag whatever of the components that are in the IDE
Indy tool palette section (TIdTCPClient or other) then right click and select
About Internet Direct (Indy)...
You get a nice picture telling clearly what version yo've just installed
-12 Source code and .dcu files?
If you stop your effort now you will be able to use the new Indy 10 1.5.7 but you will not be able to
debug properly and compile. This is because you need to tell the IDE where it can find
.dcu files = delphi compiled units
and the
.pas = source code for these unit
These can be BUILT (when you buid instead of compiling) and in this case in addition to .bpl and .dcp
you get also .dcu files
then to store the .dcu you have to select the project you want to build in the project manager and
open the options page and in the section
Directories/Conditional
the Output directory should point where you want the .dcu files to be written. In general though you
don't need to build because the IndyTiburon folder that you dowloaded already contains all the .pas and
.dcu files you need this is why I compiled and not built!
Either way compile or Build then you have to tell the IDE where the .pas and .dcu can be found and that
is done adding the library path of the
(Where you put it..)/IndyTiburon/Lib
/System
/Core
/Protocols
And do not forget to remove the reference to
C:\Program Files\CodeGear\RAD Studio\5.0\source\Indy\Indy10\
here you had the source code for the Indy 1.1.5 (old) version
change name to the folder and avoid the IDE mistake this for the right code in the
(Where you put it..)/IndyTiburon/Lib
/System
/Core
/Protocols
IN REGARD the old dcu files these were
$(BDS)\lib\Indy10
but if you have changed this directory and removed all the reference to it in
Tool -- Options --Library -Win 32
in
-Library Path
-Browsing Path
-Debug DCU path
and added the refences to the

(Where you put it..)/IndyTiburon/Lib
/System
/Core
/Protocols
then you are done for real and you'll be able to compile and debug properly with the new Indy 10
library you have just installed
********************************************************************************************************************
Other links you might want to visit and that I thank for the help given to me

https://forums.embarcadero.com/thread.jspa?threadID=23496
htthttps://forums.embarcadero.com/thread.jspa?messageID=134027
http://forums2.atozed.com/viewtopic.php?f=7&t=3110&p=5074
http://forums2.atozed.com/viewtopic.php?f=7&p=2445
https://forums.embarcadero.com/thread.jspa?threadID=34955&tstart=0
https://forums.embarcadero.com/thread.jspa?threadID=19011
https://forums.embarcadero.com/thread.jspa?threadID=25267&tstart=0
https://forums.embarcadero.com/thread.jspa?messageID=130770
https://forums.embarcadero.com/thread.jspa?messageID=13402