---------------------------------------------------------- File Loader Expert Version 4.1 for Delphi 3.02 Delphi 4.02 C++ Builder 3.0 Copyright 1997, 1998 Stefan Hoffmeister Stefan.Hoffmeister@Econos.de Initial Delphi 4 port by Erik Berry (eb@techie.com) 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 Stefan.Hoffmeister@poboxes.com 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\\File Loader Expert] where 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\\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\\File Loader Expert] where 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 . 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 Stefan.Hoffmeister@Econos.de 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:Stefan.Hoffmeister@Econos.de ---------------------------------------------------------- Copyright (c) 1997, 1998 Stefan Hoffmeister