----------------------------------------------------------
File Loader Expert Version 4.1
for Delphi 3.02
Delphi 4.02
C++ Builder 3.0
Copyright 1997, 1998 Stefan Hoffmeister
[email protected]
Initial Delphi 4 port by Erik Berry (
[email protected])
All rights reserved.
----------------------------------------------------------
Table of Contents
1.) Benefits
2.) Installation
3.) Usage
4.) History
5.) Known problems
6.) Acknowledgments
Availability of source code
---------------------------
The source code for this expert is available
in exchange for intellectual material such as
- interesting source code;
- literature (books, CD-ROMs);
- interesting software.
Please contact Stefan Hoffmeister at
[email protected]
for details before sending anything.
1.) Benefits:
-------------
1) Faster and easier file load
By pressing "Ctrl-Enter" files located
on the library path can be loaded
immediately.
The expert expands on this - now files
located on an additional (custom) path
can be loaded by pressing a customizable
shortcut.
2) Visual Library Path
The expert provides an easy and intuitive
way to change the Delphi library path visually.
It removes the 255 characters limitation
of the Delphi 3.00 library path combo box.
It allows you to temporarily disable library
folders, resulting in a much more flexible
library path.
It makes a backup copy of the library
path that can be restored if an (un)installer
messes up the path.
There is NO NEED TO RESTART the IDE for
the changes to take effect!
Please see the release notes at the
end of this file for changes with
respect to previous versions.
2.) Installation:
-----------------
NOTE:
-----
Before installing a new version of the
expert you MUST uninstall previous versions
at least partially:
To uninstall v1.0 remove the string value in
[HKEY_CURRENT_USER\Software\Borland\Delphi\3.0\Experts]
you added.
To uninstall versions 2.0 and 3.x
remove the package from your package list.
Caveat:
-------
Version 4.0 does not use any of
the previous settings.
Sorry, but since now three IDEs
are supported storing everything
in a single place just does not
make any sense.
All current settings in
[HKEY_CURRENT_USER\Software\Stefan Hoffmeister\Loader]
will NOT be read.
You can safely delete this key.
All new information will be read
from and written to
[HKEY_CURRENT_USER\Software\Borland\<Your IDE>\File Loader Expert]
where <Your IDE> is either of
Delphi\3.0
Delphi\4.0
C++Builder\3.0
The data format is still the same
as for versions 3.x, so you could
copy all settings to the new key.
Installation of version 4.x:
----------------------------
Copy the files
dclSHFileLoader_D3.dpl [ Add-In Expert, Delphi 3.02 ]
dclSHFileLoader_D4.bpl [ Add-In Expert, Delphi 4.02 ]
dclSHFileLoader_BCB3.bpl [ Add-In Expert, C++ Builder 3 ]
to any directory.
The included DFM, DRC and DPR files are provided for
users who would like to translate the expert into
other languages.
Install the appropriate of the
above-mentioned packages into
your IDE:
Component | Install Packages... -> Add...
Alternatively, treat the bpl/dpl files as
straight-forward DLL experts, installing
them via the registry, in
HKEY_CURRENT_USER\Software\Borland\<Your IDE>\Experts\
Make sure that you do not additionally
load these binaries as packages, too.
Deinstallation:
---------------
- Remove the package from the design time
package list:
Component | Install Packages... -> Delete...
- Delete the files you copied during installation.
- Remove the following key with its subkeys from
the registry:
[HKEY_CURRENT_USER\Software\Stefan Hoffmeister\Loader]
- Remove the following key with its subkeys from
the registry:
[HKEY_CURRENT_USER\Software\Borland\<Your IDE>\File Loader Expert]
where <Your IDE> is either of
Delphi\3.0
Delphi\4.0
C++Builder\3.0
3.) Usage:
----------
- Configuration:
To configure the path settings (both custom and library)
select Tools | Environment and choose the File Loader
tab (it is the right-most tab, right after "Code Insight",
probably scrolled out of view).
Use the provided controls to add or remove folders or
to change their order on the path.
Select a keyboard shortcut that suits you well; be
warned that there are actually only a few available
as the IDE consumes quite a number itself.
Double-clicking the "Action hotkey" will reset
the hotkey to Ctrl+Shift+Return (this is a THotkey
limitation).
Use the "AutoLoad file" check box to determine
whether the search for a file starts automatically
or whether the filename is just transferred to
the "Open" dialog.
Almost every control has a fly-by hint attached to it.
Wait for them to pop up to learn more.
Hint:
-----
Add a folder path only with a dot, i.e. ".", to
the custom search path to make the loader always
search the current folder.
If you add the string %PROJECTDIR% to your custom
search path, the expert tries to find the file in
your current project's folder.
Colour coding:
--------------
Wondering why some pathes are shown in red?
The expert could not find these pathes, so they
may be redundant and probably can be removed
from the path.
Check boxes and the library path:
---------------------------------
What are the check boxes on the library
path list box good for?
Sometimes you have code that you only want
to include into your project occassionally.
Instead of removing the folder completely
from the library path, laboriously adding it
later, you now just disable that folder
temporarily.
This feature is especially useful if you
need to compile the VCL source code with
symbol information for debugging.
Adding packages to the path:
----------------------------
You have already added all your packages
to the IDE?
Now you just want to add the pathes that
point to these packages to the library
path?
Easy - click the "many folder" icon
button on the File Loader page...
Restoring an old library path:
------------------------------
Some automatic (un)installation programs
seem to truely mess up the library path
settings.
Choosing "Restore" (a context menu on the Delphi
library path list) will restore the last
configuration of the library path the
File Loader Expert saved itself.
This should allow you to easily bring back
an old, but good, library path setting.
"Add" and "...recurse" buttons:
-------------------------------
So you noticed the "Add" and "...recurse"
buttons in the Browse For Folder dialog?
"Add" will *directly* add the current
selection to the path you are adding.
"...recurse" will do the same as "Add",
but it will recurse into all sub-folders,
adding these, too. Beware!
Keyboard shortcuts:
-------------------
You have full keyboard support, for instance:
- "Del" deletes an entry,
- "Ctrl+Cursor Up" and "Ctrl+Cursor Down" move
up and down a folder entry respectively.
Drag and Drop:
--------------
You have full drag&drop support within the dialog, try
the impossible and see that it works <g>.
You have full drag&drop support from the Explorer, too.
Just drag a folder onto one of the list boxes and see
what I mean (try that in your own expert...).
- "File Loader":
Place the caret just before, onto or right behind the
name of the file you want to load.
Alternatively select a block - the expert will try to
load the filename given by the highlighted text.
Press the hotkey you selected (default: Ctrl+Shift+Return).
If no valid filename is anywhere near the caret, a
dialog is shown, where you can enter the filename
manually.
You may enter a filename with a fully specified
file extension to search for this particular file.
Please do NOT enter path information.
You can press the hotkey at ANY time to load a file,
even if no editor window is active.
If you find reproducable bugs in the expert or if you
would like to make a suggestion on how to enhance the
expert, do not hesitate to send an email to
[email protected]
I have created this expert to push the limits of what
can be done with the Open Tools API. New challenges
are thus very welcome.
Feedback is encouraged!
4.) History:
------------
4.1: - Added back the "Add" button on the
Browse For Folder dialog
- Added another button to that same
dialog, that *recursively* adds
all paths starting from the current
selection
[ Suggested by Rob den Braasem ]
- Added horizontal scroll bar for
the check list boxes
[ Suggested by Clayton Turner ]
- Added the option to install the same (!)
binary either as a package expert or as
a DLL expert
- Fixes bug where a drive with a missing
storage medium (i.e. no disk in drive A:)
in the path edit control when pressing
the browse button would result in
plenty of error messages (until a
medium was inserted)
- Fixes bug in duplicate path detection
where a case-sensitive comparison was
made
4.0: - Delphi 4 support has been added
Erik Berry made all the necessary
changes to the source code.
Many thanks to Erik for this
great job!
- Added C++ Builder 3.0 support
- Added "Known Packages" button
based upon an idea by Clinton
R. Johnson (xepol)
- Added browse button to "Open file"
dialog
[ Suggested by Clinton R. Johnson ]
- Changed storage location - now
that we support more than one
IDE, a single location for a custom
path no longer not makes sense
Sorry, but you have to re-enter
all past information.
- Fixed exception when dragging
in an empty list box
- Many fixes to look a lot better
in a large font environment
Sincerest apologies to those who
suffered because of this neglect.
- Stripped ancient conversion code
for v1.0 -> 2.0/3.0 from the
binary
- Updates to the documentation
and the source code to reflect
that three IDEs are handled
now rather than only Delphi 3
Well, about 12 months after the release of
this expert to the general public, here is
another one that accomplishes the same
degree of integration
Clinton R. Johnson has created
SII Path Editor V1.0
File Loader Expert beat Clinton's Path Editor
in the race for the first place in Delphi 3
integration, but Clinton is the proud winner
of the same race for Delphi 4.
Unfortunately Clinton's expert can easily
be broken if another expert decides to use
a similar technique.
3.6a: [never announced, though it was available]
- corrected drag&drop which would not mark
the library path as having been changed.
- moved tab right behind Library tab
- corrected check box support for list box items
that was broken due to changed dragging
method
- corrected redraw of insert indicator when
dragged item was dropped onto its old
item position
- corrected loosing state of check box after
dragging item
- solved Delphi 3 problem: worked around a
problem that would result in a very ugly
effect in the WinNT 4.0 task manager.
(this is a bug in the Delphi 3.02 VCL)
- Changed the "Browse for folder" dialog;
unfortunately the "Add path" button had
to be removed as well as the complete
folder display.
The external component used for the
button code is too buggy and the the
status text display is messed up by
the Win32 shell itself.
Sorry that these features had to
be removed - if they had been working
properly they definitely would have
been nice.
- Added context menu item to both Delphi
library and Custom path:
"Copy item to edit control"
copies the text of the currently
selected list item to the edit
control for easier editing of
existing pathes.
(Necessitated by change in d&d code;
previously it was possible to d&d
this item onto the edit control)
3.6: [never released]
- Added configuration option that allows the
user to determine how the expert integrates
itself into the Delphi IDE.
[ Suggested by Tom Corcoran ]
- Added "Restore option" for Delphi library path
Some automatic uninstallation programs
seem to truely mess up the Delphi library
path settings.
Choosing "Restore" (context menu on Delphi
library path list) will restore the last
configuration of the Delphi library path
the File Loader Expert saved itself.
This should allow you to easily bring back
an old, but good, library path setting.
[ Suggested by Gus Vorsterman ]
- Dramatically changed the way the lists
handle drag&drop; instead of more than
500 lines we now do this in approx. 80
lines and even manage to look much better
and consume less resources...
Side-effects of this change are that
drag&drop onto the recycle bin and onto
the folder text edit field no longer work.
[ Did anybody use this? It's still in the
source code, just IFDEFed out of the
binary. ]
Another interesting side-effect is that
the size of the DPL build has *increased*
while the DLL has shrunk (!).
- Made browsing for a folder more intelligent
if a non-valid folder had been specified
in the edit field. This should allow for
easier correction of bad path entries.
- Added copyright notice to stand-alone dialog;
the tab page in "Environment Options" does
not have enough room for this.
- Added keyboard shortcut to browse for
folder dialog.
- Expert now hooks later and unhooks earlier,
probably resulting in better performance on
slower systems [cannot verify this].
- Expert no longer hooks if this is not
required (improved saving of changes).
3.5a: [never released]
- Fix: In the new stand-alone dialog the
browse for folder dialog is now owned
by the dialog itself and displays
modally instead of being owned by
the IDE - and being displayed
in a non-modal state
- Fix: Insert path button now displays an error
message if path was not added instead of
doing nothing
- Fix: Moved new menu item text into
resourcestring to allow localization
- Fix: It no longer is possible to have empty
folder names or to have names including
only white spaces.
- Fix: Tab order in configuration dialog
3.5: - Added "Disable library path folder" feature
You now can (un)check any folder in the Delphi
library path box.
Dependant upon this setting, the folder will
be _temporarily_ removed from the library path.
This is particularly useful in the case where
you quickly want to include into or exclude from
your project files such as the VCL source code
- Expert also adds itself to the Delphi menu bar
An expert by Robert Kozak achieves the same, but
has flaws on Windows NT 4.0 SP 3. The technique
used is similar to Robert's trick.
- Now '.\' is removed from a path if loader found
file there. This will help in the case where
the current path is part of the custom search
path and the found file is part of the current
project (Delphi does not recognize that those
filenames are actually the same, so we help a bit)
- External drop now inserts folder at point of drop
instead of just appending it to the list
- Fix: prevent %PROJECTDIR% from being added more
than once
- Fix: some settings might not have been updated
immediately
- Minor code restructuring
- Changes to the documentation
3.1: - Added "Load on highlighted text" feature.
If a block of text is highlighted in the IDE,
the expert will try to load a file with the
name as specified by the highlighted text.
This will allow you to be more specific in which
files to load, e.g. "unit1.pas.backup"
- You can specify the alias %PROJECTDIR% as part of the
Custom Search path now. This will search the directory
of the currently loaded project.
[ feature suggested by Ahto Tanner ]
Simply add %PROJECTDIR% - and only this exact phrase.
Effectively this emulates the hotkey Ctrl+Enter
which is available natively. Ctrl+Enter may fail,
though; the expert will not fail
- Added auto-complete feature to the Load File dialog
- Added "Remove" button to Load File dialog which
will remove a file including its cached folder
from the history list
- Added version check: only install ourselves into
Delphi _3_ (assuming that there will be a Delphi 4)
3.0a: [ never released ]
- Fixes bug: File Loader would access a nil pointer
(empty long string) if AutoLoad was turned on and
the caret was right behind a "name".
- Fixes another access to an empty long string in the
configuration dialog
- [internal] Fixes problem on NT 4.0 where the package
would not properly unload if *rebuilt*
while it was installed at the same time.
3.0: - Added folder cache, making searching a LOT faster
(registry storage changed, but new version
automatically converts old entries)
- internal overhaul to get rid of old sins
(includes better[?] technique of integration into
Delphi 3 IDE)
- now disables Delphi's own library path control
- due to a number of requests the File Loader
now adds itself to the *end* of the page control
rather than taking the first position
- enhancement: new "browse for folder" component used,
TFolderDialog
Copyright (C) 1997 Fred de Jong
- Heerlen - Netherlands
available on the Delphi Super Page as
FOLDRDG5.ZIP under the GNU Library General
Public License in full source code.
The original component has been transformed
into an include file (avoid package conflicts).
- slightly enhanced Open/Search dialog includes
"Clear History" option
- added visual indication of whether a folder
exists or not (easily identify surplus folders
on a path)
- more consistent GUI and fly-by hints
- bug fixed: browse folder dialog not modal
on environment dialog
- bug fixed: hidden menu entry for action hotkey
did not have a name
(looks ugly in Shortcut Expert [part
of GExperts])
- bug fixed: "direct extensions" would cause problems
if a file with the same name part would
exist (e.g. project1.map and project1.dpr)
- added *.DFM, *.DRC and dclSHFileLoader.DPR to
the distribution archive to facilitate translation
of the expert
--> "localize" folder
- removed dclSHFileLoader.DEU from the distribution
archive - my apologies to German users, but I had
no time to update the translations... Also I am using
the US version of D3 and it would look pretty funny
on my system ;-)
2.5: [ never released ]
- Added extension configurability
--> determine which extensions the Loader
will find and eventually load
- easier editing of pathes
- Duplicate pathes detected
(only when appending new pathes)
- "direct extension" searching, e.g.
project1.log
will load project1.log and _no_ other file
with the same base name.
2.0: - Much enhanced release
- Integration into Delphi's "Environment
Options" dialog (!)
-> UNIQUE technology:
No other known expert can
offer this!
- Changing Delphi library path IMMEDIATELY
takes effect.
-> UNIQUE technology:
No other known expert can
offer this!
As of January 1998 a new expert by
Robert Kozac is available that claims
to be able to perform this, too.
- Configurable keyboard shortcut
- Configurable AutoLoad behaviour
- "Esc" aborts search for file
- now keeps filename's case when loading
[Ahto Tanner raised this issue]
- Now comes as a "package" expert,
easier loading + unloading
1.0.1: [ never released ]
- Fixed cosmetic problems if no editor window was
open in the IDE. Expert now works in this case.
- User now is told to restart Delphi if the
*Delphi* library path has been altered
1.0: - Initial release
5.) Known problems:
-------------------
In the environment dialog the tab selection will
not be properly restored.
6.) Acknowledgments:
--------------------
Erik Berry took on the task of porting the expert
to Delphi 4 - all credits for the Delphi 4 version
go to him.
Many thanks to Erik for such a great job!
Clinton R. Johnson (xepol) gave a number of very useful
hints what to add and what to fix - thanks a lot!
Many thanks go to Glenn Crouch and Ahto Tanner for
providing valuable feedback. Thanks to Tom Corcoran
for suggesting configurability of integration method;
to Gus Vorsterman for suggesting the restore option.
Rob den Braasem suggested to add [back] in the buttons
on the Browse For Folder dialog. Clayton Turner made
me include the horizontal scroll bar.
Feedback is encouraged!
mailto:
[email protected]
----------------------------------------------------------
Copyright (c) 1997, 1998 Stefan Hoffmeister