********************************************************************

Component Name: TFileListViewMP 
Version: 1.0
Delphi Version: 3.x (untested on 2.x)
Date: 1st May, 1998
Author: Marko Peric (lonewolf@tig.com.au)

********************************************************************

Description: A listview which enumerates files and subdirectories of
a specified directory. Uses the system image list to represent the
icons. Not particularly fast, but effective all the same. Added some
extended styles which TCustomListView lacks.  

********************************************************************

Installation:

1. Extract FileListViewMP.pas and FileListViewMP.dcr to a directory 
on your library path.
2. Extract the rest of the files to any single directory you like.
3. From the Delphi 3 IDE menu, choose Component | Install Component.
4. Browse for FileListViewMP.pas, and select it as the unit filename, 
and choose the package you want to add the component to.
5. Click OK, and Yes to any message boxes, and voila! Finito!
6. Once you've installed the component, you should try out the demo 
project, FileList.dpr.

********************************************************************

Extended Description:

Properties: {published unless otherwise noted}

  Directory : TDirName;  {The directory for which files and sub-folders
                          will be shown. I actually wrote a property 
                          editor for this, which when you think about it 
                          is utterly useless, but actually I wrote it for
                          educational reasons. Normally I would have
                          made this a public property. Note, stored is
                          False}

  Mask : TStringList;  {the file-mask, which I've made a TStringList - 
                        much easier to deal with than semicolon delimited
                        strings}

  LoadOnStart : Boolean;  {Maybe you don't want the listview to load 
                           files on application startup. Then you'll have
                           to call Reload yourself.}

  ColumnOptions : TColumnOptions;  {In report mode, you might not want to
                                    show every column. So rather than
                                    mess with the Columns property, you 
                                    can set the options here.}

  DateFormat : TDateFormat;  {Date and Time in short or long format.}

  Attributes : TAttributes;  {Yes, you can show subdirectories and 
                              read-only files and archives and system 
                              files and hidden files}

  HeaderDragDrop : Boolean  {You can re-order columns at runtime via
                             drag-n-drop. Need version 4.70 or greater
                             of comctl32.dll}

  Flat : Boolean;  {For some reason Microsoft invented this ugly looking
                    flat style for the scrollbars. If you want to use it
                    make sure that your comctl32.dll file is version 4.71
                    or greater}

  ItemData[Index : Integer] : TListItem;  {Gives you read-only access to
                                           an individual list item. This
                                           is a public property} 

  EditHandle : HWND;  {A public, read-only property giving you access to
                       the edit control which is created when you edit an
                       item during run-time. If you have the handle to
                       this edit control, then you can send messages to
                       it, etc...}

  HeaderHandle : HWND;  {A public, read-only property giving you access
                         to the handle of the header control which will
                         appear if the vsReport ViewStyle is set} 

Methods:

  procedure Reload;  {Reloads the list of files}  

  function GetItemsViewRect(iNum : Integer) : TRect; {How big should
                                                 I make the control so
                                                 that it will fit iItem
                                                 items without showing
                                                 any scrollbars?}

Events: 

  (none)

********************************************************************

About and Contacting the Author

Personal URL: http://homepages.tig.com.au/~lonewolf
Business URL: http://www.kagi.com/sightscreen

Personal E-mail: lonewolf@tig.com.au
Business E-mail: sightscreen@kagi.com

I'm 29 years old, with a Master's degree in Astrophysics, based 
in Sydney, Australia, and currently seeking an entry-level Delphi 
programming job. I would prefer to work in Sydney or Hobart, but can 
be enticed elsewhere. If you are interested, you can browse through 
my CV at:

http://homepages.tig.com.au/~lonewolf/CV.html

or

http://www.kagi.com/sightscreen/CV.html

********************************************************************

Disclaimer:

Since this component is free, and I give you the source code, I bear
absolutely no responsibility for what it does to your application,
computer, or love life. Use it at your own risk.

You may use this component in personal or commercial products. Why
do you think I gave you the source? But you can't sell the component!

To end on a positive note, I welcome all comments, bug reports, and
marriage offers.

******************************************************************** 