----------------------------------------------------------
  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