Filemanager Toolset

Version 2.4

Copyright 1999 by Ingo Eckel
All rights reserved.

e-mail: mailto:Ingo.Eckel@t-online.de
web site: http://home.t-online.de/home/ingo.eckel/d4comp.htm

 

Content:

 

Overview:

This filemanager toolset contains the required visible VCL-components and classes to build a fully functional filemanager for Windows95/98 and Windows NT4.

The main compontents of this archive are:

TDriveView Displays the directory structure of all drives as treeview with shell icons taken from the system imagelist. It supports file operations like creating, copying, renaming and deleting directories, OLE-drag&drop for files and directories using dragimages, clipboard operations, detecting filesystem changes, displaying the system contextmenu and the system property sheets.
TDirView Displays files and subdirectories of a single directory as listview with shell icons taken from the system imagelist. It supports file operations like creating, copying, renaming and deleting files and directories, OLE-drag&drop for files and directories using dragimages, clipboard operations, detecting filesystem changes, displaying the system contextmenu and the system property sheets.
TIEDriveComboBox Drive combobox with icons taken from the system imagelist and variable volumelabel style.
TDriveInfo Non-visible class for centralized drive management. It provides informations about the currently installed logical drives.

 

Platform:

Developed and tested under Windows98 and Windows NT4 SR3 with novell 4.3 network.

 

Compiler:

Delphi 4 Standard Edition Update Pack 3 or higher.

 

Required additional components:

Component Version Author
TFileOperator 1.0 myself
TDiscMon 1.02 Grahame Marsh
TDragDrop 4.0 Dieter Steinwedel
TDragDropFilesEx 1.1 Dieter Steinwedel

All required additional components and units are included in this archive. The drag&drop components are included within this toolset by permission of Dieter Steinwedel. The drag&drop components are under the copyright of Dieter Steinwedel. Updated versions of this toolset an can be found at:

http://godard.oec.uni-osnabrueck.de/student_home/dsteinwe/delphi/DietersDelphiSite.htm

 

Required additional units:

Unit Version Author
ShellDialogs 1.0 myself
BaseUtils 1.0 myself
ListExt 1.0 myself
FileChanges 1.0 myself

These units are also included in this archive.

 

Installation:

Unzip the files of the archive DRIVEDIR.ZIP to a (new) directory and add the files TDriveView, TDirView, TIEComboBox to your Delphi-package DCLUSR40 and recompile this package. Place the files ShellDialogs, TFileOperator and TDiscMon in your LIB-directory. To add drag&drop support you have to install the files from the archive DragNDrop.zip. These files should be placed in the Delphi LIB-directory or any other directory, wich is included in your project's search path. For using the drag&drop functions with TDirView and TDriveView the drag&drop components need not to be registered. They only need to be registered, if you wish to use them in other projects. If you don't wish to have drag&drop functionality, remove the define DRAGDROP in the files DIRVIEW.PAS and DRIVEVIEW.PAS. In this case the drag&drop components are not required but the clipboard methods will also not work.

 

Usage:

To build your own file explorer have a look at the demo's source DriveDirViewDemo. TDriveView, TDirView and TIEDriveComboBox can be used stand-alone or linked together. Linking the components together enables automatic updating linked components instances, when changes occurs in one instance. Set the propery TIEComboBox.DriveView to the instance of TDriveView and set the property TDriveView.DirView to the instance of TDirView in your form. Do NOT set the property TDriveView.DriveBox or TDirView.DriveView manually at runtime.

If you wish to disable the system contextmenus in TDriveView and TDirView set the property TDriveView.UseSystemContextMenu and TDirView.UseSystemContextMenu to false.

IF you wish to disable the executing of files in TDirView when double-clicking the entry, add the event TDirView OnExecFile in your form and set the parameter AllowExec to false.

If you wish to prevent TDriveView from scanning the subdirectories of a given directory add the event TDriveView.OnScanDir in your form an set the parameter DoScanDir to false.

To disable the OLE-drag&drop functions remove the compiler-statement {$DEFINE DRAGDROP} in DriveView.pas and DirView.pas.

To disable the dragimages during drag&drop operations set the property UseDragImages for the instance of TDriveView and TDirView to false.

There are various OnDD... events wich where fired by the OLE drag&drop components written by Dieter Steinwedel. Please read the documentation in the archive DragNDrop.zip, if you want to know more about these events.

The instance of TDriveInfo is automatically created at runtime, when you use on of the components TDriveView, TDirView or TIEDriveComboBox and stored in a global variable. The instance of TDriveInfo will by automatically destroyed, when your application terminates.

To implement the detection of inserted and removed CD-ROMs and connections or disconnections of network drives you must handle the message WM_DEVICECHANGE in your form. This function is not integrated in TDriveView because this message is send only to the forms window and i don't like hooking the windowproc. Inserting and removing floppy disks does not generate the message WM_DEVICECHANGE and thus cannot be detected.

 

Status:

The sourcecode of the components TDriveView, TDirView, TIEDriveComboBox, TIEComboBox and TDriveInfo is published as freeware.

Restrictions:

Without the express written consent of the author, you may not:

 

Known Problems:

Grayed display of items/nodes and display of sorting symbol at the listview header requires the updated library COMCTL32.DLL V4.70, wich comes with Windows98 or the Internet Explorer 4.

Displaying files from the recycle bin in the Explorer's manner is currently not supported.

Setting the property TDirView.ReadOnly to True is not recommend. Doing this, may lead to various exceptions in the component TDirView.

 

Quality Assurance:

The components have been tested on Windows95 (without system updates), Windows98 and Windows NT4 SR3. I am using these compontents in my Freeware-filemanager idoswin32, wich has also been tested by several Beta-testers. To eliminate memory leaks, i have checked the components with MemProof 0.932, to avoid performance bottlenecks i have tested the compononents using GpProfile 1.21.

 

Disclaimer:

The author disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The author assumes no liability for damages, direct or consequential, which may result from the use of this component/unit.

 

Contact:

Feel free to send me a e-mail, if you find bugs in the components TDriveView, TDirView, TDriveComboBox or TIEComboBox.

 

Credits:

Thanks to Andreas Gensich for beta testing my filemanager idoswin32, wich is based on this toolset. Thanks also to Dieter Steinwedel for his excellent drag&drop components. Brad Stowers has provided the context-menus and access to the windows property sheet. Some the sourcecode of TDirView was inspired by Brad Stower's component TSystemListView. You will shurely find a some matching SLOCs. Grahame Marsh has developed the component TDiscMonitor, wich works very reliable.

 

Other free sources:

Brad Stowers has published an excellent toolset, wich provides a treeview and listview similar to the Windows-explorer. His toolset systree.zip (still a beta release) can by found at: http://www.delphifreestuff.com. His toolset currently does not support drag&drop.

GXExplorer is another shell-related toolset containing a TreeView, ListView and PathComboBox, wich implements an Explorer-like application. These components supports OLE drag&drop with dragimages. You can find the source at: http://www.gexperts.com/.

 

History:

Version 1.0: First published release.
Version 1.1: Added Components TIEDriveComboBox, TIEComboBox and TDriveInfo. Various enhancements in TDriveView and TDirView. See the components documentation for detailed history.
Version 2.0: Added drag&drop support and clipboard functions in TDirView and TDriveView.
Undo function for file operations using the drag&drop fileoperator. Clipboard file operations are also using the drag&drop fileoperator.
Now supports Delphi's Popup-menus when right-clicking an empty area in TDriveView and TDirView.
French messages and column titles.
Version 2.01: Minor bugfixes.
Version 2.02: Minor changes in TDirView.
The archive is now containing Dieter Steinwedel's TDragDrop V3.20.
Version 2.1: Significant changes in TDriveView and TDirView. TDriveView and TDirView now are displaying dragimages during drag&drop. See the components documentation for detailed history.
Version 2.2: Various enhancements to TDriveView, TDirView and TIEDriveComboBox. Bug fixed, when displaying the dragimage on Windows95-systems without system updates.
Version 2.21: Minor bugfixes in TDirView and TDriveView.
Version 2.21a: Bugfix in TDirView when terminating the application.
Version 2.3: Unit ItemProp replaced by my own version of accessing the shell dialogs (unit ShellDialogs). The menuitem Rename of the system context menu is now accessible.
Version 2.4: - Various enhancements to TDirView.
- Changed website an e-mail account because the guys at crosswinds.net don't like freeware developers. Crosswinds.net has deleted my website, because the think, i have published "unauthorized copyrighted software". I really don't know how to publish my own software without being authorized by myself.
So i have moved my website to Europe's largest web-provider and hope, my website could stay there for a longer time.