Discussion:
Component Installer - Any recommendations?
(too old to reply)
Jim Meyer
2003-11-27 14:22:51 UTC
Permalink
Any suggestions for a good Component Installer for Delphi and/or C++?

It should be able make the packages with the component available in the
Delphi/C++ environment, and install them on the component palette. Also, the
required library paths should be set.

If possible, it should also integrate the help file of the components with
the environment.

What options do I have?

Regards,
Jim Meyer
Eugene Mayevski [SecureBlackbox]
2003-11-27 14:51:56 UTC
Permalink
Post by Jim Meyer
What options do I have?
Hands.

While there are many nice installers no the market, none of them are
Delphi-specific. With ElPack we built own installer DLL with lots of
Delphi functionality inside. The DLL compiled all packages on the fly on
user's computer, put the compiled files to different folders, integrated
help files into Delphi/BCB. Unfortunately, this DLL is LMD's property
now so I can't share it with you.

It's a shame that Borland did nothing like some API to make component
installation easier. We had/have to waste lot of time creating and
debugging installations for different Delphi versions.
--
Eugene Mayevski
EldoS Corp., CTO
Security and networking solutions
http://www.eldos.com
Jim Meyer
2003-11-28 17:11:08 UTC
Permalink
Post by Eugene Mayevski [SecureBlackbox]
While there are many nice installers no the market, none of them are
Delphi-specific. With ElPack we built own installer DLL with lots of
Delphi functionality inside. The DLL compiled all packages on the fly on
user's computer, put the compiled files to different folders, integrated
help files into Delphi/BCB. Unfortunately, this DLL is LMD's property
now so I can't share it with you.
Can any of these installers be used for the job anyway? I mean, installing a
component should be about creating the proper registry entries, and placing
the required files in the library path of Delphi/BCB?

Do you have any information or links to resources about this, that you are
willing to share?
Eugene Mayevski [SecureBlackbox]
2003-11-28 19:17:06 UTC
Permalink
Post by Jim Meyer
Can any of these installers be used for the job anyway? I mean, installing a
component should be about creating the proper registry entries, and placing
the required files in the library path of Delphi/BCB?
You will need to choose the installer that can invoke external
applications during installation or can call functions in external DLLs.
We used WISE for this. Script-based installer would be the best as it
offers you the greatest flexibility.
Post by Jim Meyer
Do you have any information or links to resources about this, that you are
willing to share?
There's nothing that you can't find in JVCL's installer or in registry.
The only thing is help files, but you can do the following:
download ElPack help files from
http://www.lmdinnovative.com/products/lmdelpack/ and after installing
them check what has been changed. There are some registry entries added
(a simple thing to track) and some changes to .cnt, ohc, ohi ... files
in Help subfolder of Delphi/BCB folder.
--
Eugene Mayevski
EldoS Corp., CTO
Security and networking solutions
http://www.eldos.com
Robert Cerny
2003-11-28 17:49:54 UTC
Permalink
Post by Eugene Mayevski [SecureBlackbox]
It's a shame that Borland did nothing like some API to make component
installation easier. We had/have to waste lot of time creating and
debugging installations for different Delphi versions.
Shame? Really? And build that API into every OS?
Anyway, component installation is simple, you just add/modify few registry
entries.
--
Robert Cerny
DelphiShaman
Eugene Mayevski [SecureBlackbox]
2003-11-28 19:13:59 UTC
Permalink
Post by Robert Cerny
Shame? Really? And build that API into every OS?
This should be part of Borland product (Delphi/BCB) installation.
Post by Robert Cerny
Anyway, component installation is simple, you just add/modify few registry
entries.
Really? From your statement I see that you never did that before.

One will need to:
a) modify registry entries. Registry entry names are different for
different versions of Delphi/BCB
b) place packages and compiled units to proper places. In case of
designtime/runtime packages installer needs to place runtime packages to
the folder, which is in the %PATH% environment variable, but NOT to
windows system folder.
c) patch a bunch of files in Help folder. The process is undocumented
and different for EVERY version of Delphi/BCB. By the way patching the
files is not supported by almost all installers so you wil have to do
this in DLL.
d) if files are compiled on user's system automatically, the things
become much more complicated as the compiler location must be detected,
compiler must be started and it's results must be analysed and compiled
units (again) must be properly placed.
e) support deinstallation correctly, i.e. be able to remove the entries
in help files, remove your pieces in registry etc.
--
Eugene Mayevski
EldoS Corp., CTO
Security and networking solutions
http://www.eldos.com
Robert Cerny
2003-12-01 08:00:21 UTC
Permalink
Post by Eugene Mayevski [SecureBlackbox]
a) modify registry entries. Registry entry names are different for
different versions of Delphi/BCB
Right. And it's simple.
Post by Eugene Mayevski [SecureBlackbox]
b) place packages and compiled units to proper places. In case of
designtime/runtime packages installer needs to place runtime packages to
the folder, which is in the %PATH% environment variable, but NOT to
windows system folder.
That's essential part of *any* installation.
Post by Eugene Mayevski [SecureBlackbox]
c) patch a bunch of files in Help folder. The process is undocumented
and different for EVERY version of Delphi/BCB. By the way patching the
files is not supported by almost all installers so you wil have to do
this in DLL.
Right. I admit I never did this and it is anyway not recommended for any
component developer to do it. Borland supplied help files are near the limit
of winhelp, so installing more help files break this limit, so help stops
working. And user gets angry.
Post by Eugene Mayevski [SecureBlackbox]
d) if files are compiled on user's system automatically, the things
become much more complicated as the compiler location must be detected,
compiler must be started and it's results must be analysed and compiled
units (again) must be properly placed.
This part can be complicated, if the package depends on other 3rd party
packages. Usually not needed.
Post by Eugene Mayevski [SecureBlackbox]
e) support deinstallation correctly
This is also essential part of any installation.

You can do all of this with almost any installer. Except for unrecommended
part c.
--
Robert Cerny
DelphiShaman
Maris Janis Vasilevskis
2003-12-01 11:06:57 UTC
Permalink
Hi Robert,

Do you find something wrong in the construction
if (95/98/ME) (Do nothing)
else (patch help files);

As I understand, no help size problems in Borland for NT+.

Mahris
Post by Robert Cerny
Post by Eugene Mayevski [SecureBlackbox]
c) patch a bunch of files in Help folder. The process is undocumented
and different for EVERY version of Delphi/BCB. By the way patching the
files is not supported by almost all installers so you wil have to do
this in DLL.
Right. I admit I never did this and it is anyway not recommended for any
component developer to do it. Borland supplied help files are near the limit
of winhelp, so installing more help files break this limit, so help stops
working. And user gets angry.
Robert Cerny
2003-12-01 17:59:20 UTC
Permalink
I installed a 3rd party component pack (trial) and it installed help files
and help stopped working. I have XP and this looked just like the win9x
limitation, though it could be something else, like that that installer
corrupted the help index. After removing that pack (manually) all returned
to normal.

If the help index was corrupted I would probably have to reinstall
everything, so I assumed XP has the same limitation, though I could be
wrong.
--
Robert Cerny
DelphiShaman
Post by Maris Janis Vasilevskis
Hi Robert,
Do you find something wrong in the construction
if (95/98/ME) (Do nothing)
else (patch help files);
As I understand, no help size problems in Borland for NT+.
Maris Janis Vasilevskis
2003-12-01 20:46:53 UTC
Permalink
I integrate into Borland all 3rd party helps I get, if they have A-links
complaining to Borland requirements. But I change the usual HLP+CNT into
Borland style HLP+CNT+TOC, to avoid loops.
It works for me without problems on 2K/XP.

Mahris
Post by Robert Cerny
I installed a 3rd party component pack (trial) and it installed help files
and help stopped working. I have XP and this looked just like the win9x
limitation, though it could be something else, like that that installer
corrupted the help index. After removing that pack (manually) all returned
to normal.
If the help index was corrupted I would probably have to reinstall
everything, so I assumed XP has the same limitation, though I could be
wrong.
Eugene Mayevski [SecureBlackbox]
2003-12-09 11:22:23 UTC
Permalink
Post by Robert Cerny
Post by Eugene Mayevski [SecureBlackbox]
b) place packages and compiled units to proper places. In case of
designtime/runtime packages installer needs to place runtime packages to
the folder, which is in the %PATH% environment variable, but NOT to
windows system folder.
That's essential part of *any* installation.
Not at all.
Post by Robert Cerny
Post by Eugene Mayevski [SecureBlackbox]
c) patch a bunch of files in Help folder. The process is undocumented
and different for EVERY version of Delphi/BCB. By the way patching the
files is not supported by almost all installers so you wil have to do
this in DLL.
Right. I admit I never did this and it is anyway not recommended for any
component developer to do it. Borland supplied help files are near the limit
of winhelp, so installing more help files break this limit, so help stops
working. And user gets angry.
User *wants* context help. He wants to press F1 on the property name and
get help for it.
Post by Robert Cerny
Post by Eugene Mayevski [SecureBlackbox]
d) if files are compiled on user's system automatically, the things
become much more complicated as the compiler location must be detected,
compiler must be started and it's results must be analysed and compiled
units (again) must be properly placed.
This part can be complicated, if the package depends on other 3rd party
packages. Usually not needed.
If you have 100K large component, that's not needed. And if you have a
package which in compiled form takes 9-10Mb for each version of Delphi
and there can be 24 versions of compiled packages (like we had with
ElPack), this becomes vital.
--
Eugene Mayevski
EldoS Corp., CTO
Security and networking solutions
http://www.eldos.com
Jim McKay
2004-01-20 16:04:29 UTC
Permalink
Post by Eugene Mayevski [SecureBlackbox]
c) patch a bunch of files in Help folder. The process is undocumented
and different for EVERY version of Delphi/BCB. By the way patching
the files is not supported by almost all installers so you wil have
to do this in DLL.
d) if files are compiled on user's system automatically, the things
become much more complicated as the compiler location must be
detected, compiler must be started and it's results must be
analysed and compiled units (again) must be properly
placed.
that would be nice indeed.
--
Regards:
Jim McKay

" I was provided with additional input that was radically different
from the truth. I assisted in furthering that version. "

Oliver North
Iran Contra Hearings

Posted with: XanaNews 1.15.8.5
SP
2003-12-09 10:24:41 UTC
Permalink
Hi Robert,
Post by Robert Cerny
Shame? Really? And build that API into every OS?
Anyway, component installation is simple, you just add/modify few registry
entries.
It *can* get complicated (e.g per-user installation, help files), and
the shame is that Borland continues to ignore developers by not properly
documenting the necessary processes involved.

All the best,

Stephan
Robert Marquardt
2003-11-28 18:00:19 UTC
Permalink
Post by Jim Meyer
Any suggestions for a good Component Installer for Delphi and/or C++?
It should be able make the packages with the component available in the
Delphi/C++ environment, and install them on the component palette. Also, the
required library paths should be set.
If possible, it should also integrate the help file of the components with
the environment.
What options do I have?
Regards,
Jim Meyer
The Jedi VCL has a nice installer which is compiled and executed through
a batch file. So you do not even have to deliver the Installer as EXE.
Roberto Scardovi
2003-12-11 09:05:58 UTC
Permalink
Our xPlatform (Delphi&Kylix) component installer is open source.
May be downloaded from the <Download> section at

www.erzensoft.com

It needs the Base Package (availables in the same location)
to get compiled.
You may wish to use it as a template ...


---- AS IS AND NO SUPPORT !!!!!!!!

have fun!

Roberto - eRzenSoft
Post by Jim Meyer
Any suggestions for a good Component Installer for Delphi and/or C++?
It should be able make the packages with the component available in the
Delphi/C++ environment, and install them on the component palette. Also, the
required library paths should be set.
If possible, it should also integrate the help file of the components with
the environment.
What options do I have?
Regards,
Jim Meyer
Loading...