home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 June / Chip_2002-06_cd1.bin / zkuste / delphi / kompon / d3456 / FILEEXPL.ZIP / LsFileExplorer28.txt < prev   
Encoding:
Text File  |  2002-03-08  |  34.2 KB  |  937 lines

  1.  
  2. Unit LsFileExplorer28.pas  v2.873
  3. ==============================================================================
  4.  
  5. Archive       :- FileExpl.zip
  6.  
  7. Components    :- TLsDirTree21,
  8.                  TLsDirTreeCombo28 and
  9.                  TLsFilelistView28
  10.  
  11. Version       :- 2.873 For Delphi 3, 4, 5 and 6 (also for C++Builder 4 and 5)**
  12.  
  13.                  ** Although not tested by the author, many users reported
  14.                     that these components are working fine with C++Builder
  15.                     4 and 5.
  16.  
  17.  
  18. Author        :- Leo D. Shih <ldshih@ecn.ab.ca>
  19.  
  20. Last updated  :- March 2002
  21.  
  22. ------------------------------------------------------------------------------
  23.  
  24. LICENSE AND DISCLAIMER
  25. ======================
  26.  
  27.   Copyright (C)1998/2002 Leo D. Shih, All rights reserved
  28.  
  29. TLsDirTree21, TlsDirTreeCombo28 and TlsFileListView28 (components) are currently
  30. distributed as Freeware, thus
  31.  
  32. 1. You may copy and distribute verbatim copies of these components as you
  33. receive them, in any medium, provided that this copyright notice included
  34. in the source code file (LsFileExplorer28.pas) is kept intact.
  35.  
  36. 2. You may modify the source code of these components to improve their features,
  37. performance, etc. provided that
  38.  
  39.   2.1 You may not change the original copyright notice.
  40.  
  41.   2.2 The modified source code should contain descriptions what you have
  42.       changed, and your name and e-mail address.
  43.  
  44.   2.3 Send the modified portion of the source code to the author so that the
  45.       author may incorporate the modification into future releases of these
  46.       components, with appropriate acknowledgement.
  47.  
  48. 3. You may use these components, or any part thereof, in your program,
  49. provided that you meet following conditions:
  50.  
  51.   3.1 This notice may not be removed or altered from any source distribution,
  52.       and the origin of these components must not be misrepresented.
  53.  
  54.   3.2 Appropriated credit to the author should be included in the "AboutForm"
  55.       or the "HelpFile", and the documentation of your program.
  56.  
  57.   3.3 If your program is to be distributed as commercial products, in addition
  58.       to the above conditions, please write to the author for permission.
  59.  
  60. These components are provided 'as-is', without warranty of any kind, either
  61. expressed or implied. In no event shall the author be liable for any problems
  62. or damages arising from the use of these components.
  63.  
  64. ------------------------------------------------------------------------------
  65.  
  66. ACKNOWLEDGMENTS
  67. ===============
  68.   I'm most grateful to those people in the Delphi community who have
  69.   reported bugs, suggested fixings or recommanded improvements. In
  70.   particular, I would like to thank Ales Trtnik, Andreas Roth, Brad Huggins,
  71.   Claude Hunter, Detlef Scheil, Harrie Roaymans, Marcelo Rodrigues,
  72.   Steve Pinneo, Tom Lisjac, Maximo Yarritu, Bogdan Giusca, Bernd Ohse,
  73.   Ales Turai and Jake Jones for their professional suggestions.
  74.  
  75.   Also, I would like to thank Bernd Ohse, Andreas Roth, Bernard Bourguignon,
  76.   David Abdaleon and Alberto Meyer for their German, French, Spanish and
  77.   Brazilian-Portuguese translations.
  78.  
  79. ==============================================================================
  80.  
  81. CONTENTS
  82.  
  83.   1. Brief Description
  84.   2. Added Properties
  85.   3. Added Public Procedures/Functions
  86.   4. Installation
  87.   5. Notes on usage
  88.   6. Limitations
  89.   7. Update History
  90.  
  91. ==============================================================================
  92.  
  93. 1. Brief Description
  94. ====================
  95.  
  96.   1.1 TLsDirTree21
  97.   ----------------
  98.   TLsDirTree21 is a simple yet a fully functional Directory TreeView
  99.   component, that
  100.   (a) displays drives/directories in the DirectoryTree and files of the
  101.       selected directory in a popup FileListView.  Thus, directories can be
  102.       selected from the DirectoryTree, and files can be selected or opened
  103.       in the FileListView;
  104.   (b) suports creating, renaming, deleting, copying and moving operations on
  105.       directories;
  106.   (c) calculates the size of a selected portion of the directory-tree.
  107.   (d) connects/disconnects network drives.
  108.  
  109.   1.2 TLsDirTreeCombo28
  110.   ---------------------
  111.   TLsDirTreeCombo28 is a specialized ComboBox with a dropdown Directory
  112.   TreeView, that displays a hierarchical tree of drives and directories of
  113.   the File System.
  114.  
  115.   1.3 TLsFilelistView28 w/TLsFilelistViewPopUp28
  116.   ----------------------------------------------
  117.  
  118.   TLsFilelistView28 is a File ListView component with popup context menu. In
  119.   addition to its normal functions, It also performs various file management
  120.   tasks, such as cut, copy, paste, rename, delete, open, view and send_to
  121.   operations on files.  It also provides statistics on Disk-FreeSpace,
  122.   Selected-Numbers and Selected-Size as those available in the Windows
  123.   Explorer.
  124.  
  125.   Both TlsFilelistView28 and LsDirTree21 provide French, German, Spanish
  126.   and Portuguese Language support.
  127.  
  128.  
  129.  
  130. 2. Added properties:
  131. ===================
  132.  
  133.  2.1 TLsFilelistView28
  134.  ---------------------
  135.  
  136.   2.1.1 Published Properties
  137.   --------------------------
  138.  
  139.    About            - Shows the version, release and build information of
  140.                       this component.
  141.  
  142.    ColWidth_Name    - Set the width of FileName column, Default 165.
  143.  
  144.    ColWidth_Size    - Set the width of FileSize column, Default 75.
  145.  
  146.    ColWidth_Type    - Set the width of FileType column, Default 95.
  147.  
  148.    ColWidth_Mod     - Set the width of FileLastWriteTime column, Default 115.
  149.  
  150.    ColWidth_Attr    - Set the width of FileAttributes column, Default 40.
  151.  
  152.                      (NB:- If the Width of a column is set to zero, that column
  153.                            will be invisible).
  154.  
  155.    DateFormat       - Provides eight preset ShortDate Formats and a Customize
  156.                       option:
  157.  
  158.                          Option         Format              Remarks
  159.                          ==========     ================    =================
  160.                          df_Customize   User configuable    (Default)
  161.                          df_ddMMyy_DE   dd.MM.yy            German
  162.                          df_ddMMyy_GB   dd/MM/yy            British / French
  163.                          df_ddMMyy_IT   dd-MM-yy            Italian
  164.                          df_ddMMyyyy    dd/MM/yyyy          British
  165.                          df_MMddyy      MM/dd/yy            American
  166.                          df_MMddyyyy    MM/dd/yyyy            - " -
  167.                          df_yyMMdd      yy-MM-dd            Ansi / Japan
  168.                          df_yyyyMMdd    yyyy-MM-dd            - " -
  169.  
  170.                       When 'Customize' option is selected, the Regional setting
  171.                       in Windows Control Panel is used, thus the DateFormat can
  172.                       be configured by users at runtime.
  173.  
  174.    TimeFormatStr    - Time Format String is used to convert a Time Value to a
  175.                       Time string.
  176.  
  177.                          Option         Remarks
  178.                          ============   ====================================
  179.                          tfLonFormat    A LongTimeFormat which displays hours,
  180.                                         minutes and seconds, in 12-Hour clock
  181.                                         format.
  182.                          tfShortFormat  A ShortTimeFormat which displays only
  183.                                         hours and minutes.
  184.                          tfCustomize    The Regional setting in Windows Control
  185.                                         Panel will be used.
  186.  
  187.    DblClickToOpen   - Option to disable the build-in DblClick procedure, thus
  188.                       users can code their own OnDblClick event Handler. (It was
  189.                       named as DblClickEnabled in previous version)
  190.  
  191.    Directory        - Currently selected directory that contains files and/or
  192.                       sub-directories to be displayed in the TLsFilelistView28.
  193.                       Changing the value of this property will update the
  194.                       TLsFilelistView28 to display items in the new directory.
  195.  
  196.    DirTree          - Provides a simple way to connect TLsFilelistView28 to
  197.                       TLsDirTree21 component.
  198.  
  199.    DirTreeCombo     - Provides a simple way to connect TLsFilelistView28 to
  200.                       TLsDirTreeCombo28 component.
  201.  
  202.    DriveFreeSpace   - Free space on the current drive, in kB.
  203.  
  204.    FileType         - Determines which file types are displayed based on the
  205.                       attributes of files. FileTypes included are ftReadOnly,
  206.                       ftHidden, ftSystem, ftArchive, ftNormal.
  207.  
  208.    HideFileExt      - If it's set to True, file extensions will not be displayed.
  209.  
  210.    Language         - The following language options can be selected at design-
  211.                       or run-time:
  212.  
  213.                          lnEnglish    -  English language
  214.                          lnFrench     -  French language
  215.                          lnGerman     -  German language
  216.                          lnSpanish    -  Spanish language
  217.                          lnPortuguese -  Portuguese language
  218.                          lnSysDefault -  depends on SysLocale.PriLangID,
  219.                                          if it is not supported, then
  220.                                          default to English.
  221.  
  222.    Mask             - Limits which files are displayed. Default mask is '*.*'.
  223.                       (To specify multiple masks, separate the file mask spec.
  224.                       with semicolons).
  225.  
  226.    PopupMenuEnabled - Option to disable the build-in Context-Menu, thus allowing
  227.                       users to use the PopupMenu Property for their own
  228.                       popupmenu.
  229.  
  230.    SelectedItem     - The FullName of the selected Item (path + ItemName).
  231.  
  232.    SelectedNumber   - Number of selected items in the current directory.
  233.  
  234.    SelectedSize     - Total bytes of selected items in the current directory.
  235.  
  236.    ShowFolders      - Specifies whether or not folders are shown in the
  237.                       FilelistView26 together with files.
  238.  
  239.    OnItemChange     - A Custom-Event, that is triggered whenever the value of
  240.                       SelectedItem changes
  241.  
  242.    ParentDirEnabled - Option to disable the build-in ParentFolder function
  243.                       Note:- When enabled, double-click the Parent Folder to
  244.                              go up one level.
  245.  
  246.    ParentDirCaption - Option to change the caption of Parent-Folder (default
  247.                       caption is "Parent").
  248.  
  249.  
  250.   2.1.2 Public
  251.   ------------
  252.  
  253.    DirectorySize    - Total bytes of files in the current directory, excluding
  254.                       sub-directories, if any.
  255.  
  256.  2.2 TLsDirTreeCombo28
  257.  ---------------------
  258.  
  259.   2.2.1 Published
  260.   ---------------
  261.  
  262.    About            - Shows the version, release and build information of
  263.                       this component.
  264.  
  265.    SelectedPath     - The Directory Path of the currently selected treenode in
  266.                       the TLsDirTreeCombo28.
  267.  
  268.    FileList         - Provides a way to connect TLsDirTreeCombo28 to
  269.                       TLsFilelistView28.
  270.  
  271.    ExpandRoot       - Specifies whether the RootNode is expanded.
  272.  
  273.    TreeHeight       - Set the Height of the drop-down treeview, default is 195.
  274.  
  275.    Glyph            - An option to load an alternative bitmap to replace the
  276.                       default Glyph in the button of LsDirTreeCombo28.
  277.  
  278.    OnPathChange     - A Custom-Event that is triggered whenever the value of
  279.                       SelectedPath changes.
  280.  
  281.   2.2.2 Public
  282.   ------------
  283.  
  284.    InitialDir       - If a directory path is specified for this property, that
  285.                       directory will be selected and displayed when the
  286.                       application runs.
  287.  
  288.  
  289.  2.3 TLsDirTree21
  290.  ----------------
  291.  
  292.   2.3.1 Published
  293.   ---------------
  294.  
  295.    About            - Shows the version, release and build information of
  296.                       this component.
  297.  
  298.    FileList         - Provides a way to connect TLsDirTree21 to
  299.                       TLsFilelistView28.
  300.  
  301.    Language         - The following language options can be selected at design-
  302.                       or run-time:
  303.  
  304.                          lnEnglish    -  English language
  305.                          lnFrench     -  French language
  306.                          lnGerman     -  German language
  307.                          lnSpanish    -  Spanish language
  308.                          lnPortuguese -  Portuguese language
  309.                          lnSysDefault -  depends on SysLocale.PriLangID, if it
  310.                                          is not supported, then default to
  311.                                          English.
  312.  
  313.    PopupMenuEnabled - Option to disable the buildin Context-Menu, thus allow
  314.                       users to use the PopupMenu Property for their own
  315.                       popupmenu.
  316.  
  317.    OnDirChange      - A Custom-Event that is triggered whenever the value of
  318.                       SelectedPath changes.
  319.  
  320.    OnFileChange     - A Custom-Event that is triggered whenever the value of
  321.                       SelectedFile changes.
  322.  
  323.    SelectedPath     - The Directory Path of the currently selected treenode in
  324.                       the TLsDirTree21.
  325.  
  326.    SelectedFile     - The FileName( FilePath + FileName) of the selected item
  327.                       in the popup FileListDlg.
  328.  
  329.   2.2.2 Public
  330.   ------------
  331.  
  332.    InitialDir       - If a directory path is specified for this property, that
  333.                       directory will be selected and displayed when the
  334.                       application runs.
  335.  
  336.  
  337. 3. Added Procedures/Functions (Public):
  338. ======================================
  339.  
  340.  3.1 TLsFilelistView28
  341.  ---------------------
  342.  
  343.    OneLevelUp       - A step back in the directory hierarchy (ie. move to its
  344.                       parent node).
  345.  
  346.    CutCopy()        - |
  347.                       |
  348.    Paste            - |  Perform copy, move, delete or rename operation on files.
  349.                       |-
  350.    DeleteItems      - |  Using CutCopy(0) for Copy and
  351.                       |        CutCopy(2) for Cut opration.
  352.    RenameFile       - |
  353.  
  354.    FindFile         - To activate Windows FindDialog for locating specified file.
  355.  
  356.    ShowFileProperties - To view or edit the selected item's properties (for
  357.                       Delphi 4 or higher) or selected item's attributes (for
  358.                       Delphi 3).
  359.  
  360.    OpenItem         - Open executable files or other type of files which have
  361.                       been associated with their respective applications in the
  362.                       Windows Registry.
  363.  
  364.    ViewFile         - Provides programmers with a quick viewer of *.c, *.cpp,
  365.                       *.dpk, *.dpr, *.h, *.inf, *.ini, *.pas, *.prg, *.txt,
  366.                       *.doc, *.rtf, *.wri, and *.bmp files
  367.  
  368.    NewFolder        - Create a new folder.
  369.  
  370.  
  371.  3.2 TLsDirTreeCombo28
  372.  ---------------------
  373.  
  374.    OpenPath()              - To select a treenode in accordance with the
  375.                              specified directory path.
  376.  
  377.    ResetTreeView           - Reload the TLsDirTreeView.
  378.  
  379.    ConectNetResource()     - Starts a Map Network Drive Dialog, which lets you
  380.                              associate drive letter(s) with shared directory
  381.                              (or directories) on another computer(s) in the
  382.                              network.
  383.                              The drive letter will then provide seamless access
  384.                              to the network shared drive as if it were another
  385.                              drive on the locaal system.
  386.  
  387.    DisconnectNetResource() - Starts a Disconnect Network Drive Dialog for
  388.                              disconnecting from network drive(s).
  389.  
  390.  
  391.  3.3 TLsDirTree21
  392.  ----------------
  393.  
  394.    OpenPath()       - To select a treenode in accordance with the specified
  395.                       directory path.
  396.  
  397.    ReLoad           - Reload the TLsDirTree.
  398.  
  399.    AddNewNode()     - Add a new directory to the file system.
  400.  
  401.    DeleteNode()     - Delete an existing directory from the file system.
  402.  
  403.    CutOrCopyNode() |- Perform Copy or Move operation on directories.
  404.    PasteNode()     |  Using - CutOrCopyNode(0) for copying directory and
  405.                                                its contents (including
  406.                                                sub-directories and their
  407.                                                contents, if any).
  408.                             - CutOrCopyNode(2) for moving directory and
  409.                                                its contents. (i.e. Cut
  410.                                                operation).
  411.  
  412.    GetTreeSize()    - Calculate the TreeSize of the selected Directory and all
  413.                       its sub-directories.
  414.  
  415.    ShowFolderContents()    - Activate the popup FileListDlg, to display files in
  416.                              the selected directory.
  417.  
  418.    ConectNetResource()     - Starts a Map Network Drive Dialog, which lets you
  419.                              associate drive letter(s) with shared directory
  420.                              (or directories) on another computer(s) in the
  421.                              network.
  422.                              The drive letter will then provide seamless access
  423.                              to the network shared drive as if it were another
  424.                              drive on the locaal system.
  425.  
  426.    DisconnectNetResource() - Starts a Disconnect Network Drive Dialog for
  427.                              disconnecting from network drive(s).
  428.  
  429.    ShowNodeProperties()    - Activate 'property sheet' of the selected
  430.                              node, for Delphi 4 or higher.
  431.  
  432. 4. Installation
  433. ===============
  434.  
  435.    Unzip FileExpl.zip to any directory, then copy LsFileExplorer28.pas,
  436.    LsFileExplorer28.dcr, LsFileExplorer28.res and LsConsts.pas to a directory
  437.    that is in the Delphi's Library search path.
  438.  
  439.  
  440.  4 For Delphi versions 3x , 4x, 5x and 6x
  441.  ----------------------------------------
  442.  
  443.    All three components can be added to an existing Package, eg. Samples or
  444.    Delphi User's Components Package, by following steps:
  445.    - Choose Component|Install Component; ensure that 'Into existing package'
  446.      tab is selected and the 'Package file name' is correct.
  447.    - From Install Component Dialog, click Browse.
  448.    - In the Unit FileName Dialog, navigate to your chosen directory and
  449.      select LsFileExplorer28.pas (for D4-D6, also need to select LsConsts.pas
  450.      and LsFileExplorer28.dcr), then click Open.
  451.    - In the Install Component Dialog, click OK to compile and install the
  452.      package.
  453.    - Finally, right-click the Package Editor Diallog and save the package.
  454.  
  455.  
  456. 5. Notes on Usage
  457. =================
  458.  
  459. 5.1 Interconnecting components
  460. ------------------------------
  461.  
  462. If you use both TLsDirTree21 (or TLsDirTreeCombo28) and TLsFilelistView28
  463. components in an application, they must be mutually connected through the use
  464. of the TLsDirTree21's (or TLsDirTreeCombo28's) 'FileList' property and the
  465. TLsFileListView28's 'DirTree' property (or 'DirTreeCombo' property if
  466. TLsDirTreeCombo28 is used). Once they are interconnected, changes in one
  467. component will be automatically reflected in the other component.
  468.  
  469. For example, the LsDirTree21 and LsFilelistView28 components in your application
  470. are named as LsDirTree211 and LsFilelistView281 respectively. You can use Object
  471. Inspector to set LsDirTree211's 'FileList' property to LsFilelistView281;
  472. likewise, set LsFilelistView281's 'DirTree' property to LsDirTree211.
  473.  
  474.  
  475. 5.2 ShortCut Keys (Keyboard Commands)
  476. -------------------------------------
  477.  
  478.      5.2.1 TLsDirTreeCombo28
  479.      ==========================================================================
  480.      ShortCut Key(s)   Action
  481.      ----------------  --------------------------------------------------------
  482.      RightArrow        Expand the current selected node, if it is not expanded
  483.  
  484.      LeftArrow         Collapse the current selected node, if it is expanded
  485.  
  486.      F4                Display LsDirTreeView
  487.  
  488.      Esc               Close LsDirTreeView
  489.  
  490.      DownArrow         If current selected node is expanded, move to nextChild;
  491.                        otherwise move to nextvisible node
  492.  
  493.      UpArrow           If current node is expanded, move to preChild; otherwise
  494.                        move to prevVisible node
  495.  
  496.      Enter             Set the SelectedPath
  497.  
  498.      ==========================================================================
  499.  
  500.      5.2.2 TLsDirTree21
  501.      ==========================================================================
  502.      ShortCut Key(s)   Action
  503.      ----------------  --------------------------------------------------------
  504.      RightArrow        Expand the current selected node, if it is not expanded
  505.  
  506.      LeftArrow         Collapse the current selected node, if it is expanded
  507.  
  508.      DownArrow         If current selected node is expanded, move to nextChild;
  509.                        otherwise move to nextvisible node
  510.  
  511.      UpArrow           If current node is expanded, move to preChild; otherwise
  512.                        move to prevVisible node
  513.  
  514.      Shift+F10         Display context menu for selected node
  515.  
  516.      on numeric keypad
  517.      -----------------
  518.      *                 Expand everything under the selected node
  519.  
  520.      +                 Expand the selected node
  521.  
  522.      -                 Collapse the selected node
  523.  
  524.      ==========================================================================
  525.  
  526.  
  527.      5.2.3 TLsFilelistView28
  528.      ==========================================================================
  529.      ShortCut Key(s)   Action
  530.      ----------------  --------------------------------------------------------
  531.      Ctrl+A            Select All
  532.  
  533.      Ctrl+C            Copy
  534.  
  535.      Ctrl+X            Cut
  536.  
  537.      Ctrl+V            Paste
  538.  
  539.      Ctrl+O            Open Files
  540.  
  541.      Ctrl+F            Quick view
  542.  
  543.      Ctrl+N            Create New Folder
  544.  
  545.      Shift+F10         Display context menu for selected item
  546.  
  547.      UpArrow           Move up
  548.  
  549.      DownArrow         Move down
  550.  
  551.      Delete            Send selected items to Recycle Bin
  552.  
  553.      Enter             Open (Files or Folders)
  554.  
  555.      BackSpace         Go to the parent folder
  556.  
  557.      F2                Rename file
  558.  
  559.      F3                Find Files
  560.  
  561.      F4                Display dropdown Dirtreeview of LsDirTreeCombo, if
  562.                        connected.
  563.  
  564.      F5                Refresh TLsFilelistView28
  565.  
  566.      Esc               Close dropdown Dirtreeview of LsDirTreeCombo, if
  567.                        connected.
  568.  
  569.      ==========================================================================
  570.  
  571. 5.3 Popup Context Menu
  572. ----------------------
  573.  
  574.      5.3.1 LsFilelistView28Popup
  575.      =========================================================================
  576.      Menu Name            Commands / Remarks
  577.      ---------------      ----------------------------------------------------
  578.      Open                 OpenItem
  579.      View                 ViewFile
  580.      ---------------
  581.      Send To >            To open Send_To SubMenu, which contains:
  582.                            - Any Folder ... ,
  583.                            - Clipboard as Contents,
  584.                            - Clipboard as FileName,
  585.                            - Desktop as ShortCut,
  586.                            - Removable Disk(s), and
  587.                            - LinkFiles in \Windows\SendTo directory.
  588.      ---------------
  589.      Cut                  CutCopy(2)
  590.      Copy                 CutCopy(0)
  591.      Paste                Paste
  592.      ---------------
  593.      Rename File          RenameFile
  594.      Delete               DeleteItems
  595.      ---------------
  596.      Properties           ShowFileProperties / Show selected item's properties.
  597.      ---------------
  598.      New Folder           NewFolder / Create a new folder.
  599.      =========================================================================
  600.  
  601.  
  602.      5.3.2 LsDirTree21PopUp
  603.      =========================================================================
  604.      Menu Name           Commands / Remarks
  605.      -----------------   ----------------------------------------------------
  606.      Add Folder          AddNewNode()         / Creates a new directory
  607.      Rename Folder                            / Rename an existing directory
  608.      Delete Folder       DeleteNode()         / Delete an existing directory
  609.      -----------------
  610.      Cut                 CutOrCopyNode()      / CutOrCopyNode(2) for "Cut"
  611.      Copy                    - " -            / CutOrCopyNode(0) for "Copy"
  612.      Paste               PasteNode()          / "Paste" operation
  613.      -----------------
  614.      TreeSize            GetTreeSize()        / Calculate the TreeSize from
  615.                                                 selected Directory
  616.      Folder Contents     ShowFolderContents   / Popup FileListDlg for displaying
  617.                                                 files in the selected directory
  618.      -----------------
  619.      Map Network Drive   ConnectNetResource() / Connect to network drive(s)
  620.  
  621.      DisConnect Network  DisconnectNetResource() / disconnect network drive(s)
  622.        Drive
  623.      -----------------
  624.      Properties          ShowNodeProperties()   / Show selected Drive's or Folder's
  625.                                                 properties.
  626.      =========================================================================
  627.  
  628.      NB:- These file- and folder-management operations can easily be
  629.           linked to the application's main menu by adding few lines
  630.           of code.
  631.  
  632. 5.4 If MultiSelect Property of TLsFilelistView28 is set to True, GetNextItem
  633.     function or a for-loop can be used to find all selected items.
  634.  
  635.  
  636. 6. Limitation
  637. =============
  638.  
  639.     Since these components are designed mainly for file management, Special
  640.     DesktopFolders are not retrieved from the shell's name space and
  641.     displayed in both components.
  642.  
  643. 7 Update History
  644. ================
  645.  
  646.  version 2.873
  647.  -------------
  648.  
  649.   - Added Brazilian-Portuguese language support.
  650.  
  651.   - Modified some French translations.
  652.  
  653.   - Fixed displaying image problem with Windows XP.
  654.  
  655.   - Add function to remember previousely selected folder in LsFileListview28
  656.     after going up one level.
  657.  
  658.  version 2.872
  659.  -------------
  660.  
  661.   - Added French, German and Spanish language support to both LsDirTree21
  662.     and LsFileListview28, through "Property Language".
  663.  
  664.   - Added "Property ParentDirCaption" to LsFileListview28.
  665.  
  666.   - Fixed proliferation of "ParentFolder" icon (Parent_L28.bmp) in the
  667.     system's image list.
  668.  
  669.   - Improved GetTreeSize function in LsDirTree21.
  670.  
  671.  version 2.871
  672.  -------------
  673.  
  674.   - Fixed memory leak.
  675.  
  676.   - Improved open folder performance on network drives.
  677.  
  678.  version 2.870
  679.  -------------
  680.  
  681.   - Added Delphi 6 support.
  682.  
  683.   - Corrected misplacement of 'Dropdown button' in LsDirTreeCombo28.
  684.  
  685.   - Fixed possible problem in LsFileListView28's HideFileExt property.
  686.  
  687.   - Added new 'ParentDirEnabled' property to LsFileListView28.
  688.  
  689.   - Moved 'InitialDir' property in LsDirTree21 and LsDirTreeCombo28 from
  690.     'Published' to 'Public' declaration.
  691.  
  692.  version 2.862
  693.  -------------
  694.  
  695.   - Eliminated the blank button on Task-bar, created by the Dropdown
  696.     TLsDirTreeview of TLsDirTreeCombo28.
  697.  
  698.   - Add MenuItem 'Properties' to LsDirTree21's PopUp context menu.
  699.  
  700.  Version 2.861
  701.  -------------
  702.  
  703.   - Fixed 'ConvertError' in comparison of FileTime.
  704.  
  705.   - MenuItem 'Attribute' in LsFileListview28's context menu has been recoded to
  706.     display properties of the selected item under Delphi4 or high.
  707.  
  708.  Version 2.86
  709.  ------------
  710.  
  711.   - Added  'Cut', 'Copy', and 'Paste' functions to LsDirTree21's context menu
  712.     for copying or moving operations of directories and their contents.
  713.  
  714.  Version 2.85
  715.  ------------
  716.  
  717.   - All LoadBitmap( ) functions were replaced by LoadImage( ) functions, thus
  718.     bitmaps with 256-color can be loaded from resource files.
  719.  
  720.   - Added 'ExtractFileNameOnly( )' to global functions.
  721.  
  722.   - Added 'property About' to all three components.
  723.  
  724.   - Added 'property InitialDir to LsDirTree21 and LsDirTreeCombo28.
  725.  
  726.   - Added MenuItem 'SendTo DeskTop as ShortCut' to LsFileListView28's
  727.     context menu.
  728.  
  729.   - LsFileListView28's 'Property TimeFormatStr' completely recoded.
  730.  
  731.   - LsFileListView28's 'Procedure BtnClick( )' revised, in order to make its
  732.     behavior similar to that of Windows Explorer.
  733.  
  734.   - LsDirTreeCombo28's 'Procedure BtnClick( )' revised to allow LsDirTreeView
  735.     to popup above LsDirTreeCombo28, if space below is insufficient.
  736.  
  737.  
  738.  Version 2.84
  739.  ------------
  740.  
  741.     KeyDown and KeyUp event-hanlers were recoded in order to be compliance with
  742.     the keyboard shortcuts used by Window Explorer.
  743.  
  744.  Version 2.83
  745.  ------------
  746.  
  747.     The inherited OnChange Events were replaced by Custom-Events (i.e.
  748.     OnDirChange & OnFileChange in LsDirTree21, OnPathChange in LsDirTreeCombo28,
  749.     and OnItemChange in LsFileListView28) to avoid errors caused by non- or
  750.     multi-triggering.
  751.  
  752.  Version 2.82
  753.  ------------
  754.  
  755.     (A) LsDirTree21
  756.  
  757.       - FilelistDlg is now incorporated into LsDirtree21 instead of a
  758.         separate class.
  759.  
  760.       - Added 'ConnectNetResource' and 'DisConnectNetResource' procedures, for
  761.         mapping and disconnecting network drives.
  762.  
  763.     (B) LsFileListView28
  764.  
  765.       - Surplus code fragments, that were originally for Delphi 2, have been
  766.         deleted.
  767.  
  768.     Bitmaps for Resource file are also distributed.
  769.  
  770.  Version 2.81
  771.  ------------
  772.  
  773.     (A) LsFileListView28
  774.  
  775.       - Fixed bug in the LargeImage, which would cause incorrect icon
  776.         for the compiled application under certain conditions.
  777.  
  778.       - Enhanced NewFolder and DeleteItems procedures in LsFileListView28
  779.         in order to improve the user interface.
  780.  
  781.  Version 2,80
  782.  ------------
  783.     (A) LsDirTree21
  784.  
  785.       - Add TLsFileListDlg Class for creating a popup FileList-Dialog,
  786.         i.e. a simplified FileListView, that will display files in the
  787.         selected directory of LsDirTree21.
  788.  
  789.       - Add ShowFolderContents procedure to activate LsFileListDlg.
  790.  
  791.       - Fixed bug in AddNewNode( )
  792.  
  793.     (B) LsDirTreeCombo28
  794.  
  795.       - Fixed bug when compiled under Japanese edition of Delphi.
  796.  
  797.     (C) LsFilelistView28:
  798.  
  799.       - procedure SetColumnWidth() replaced by properties:
  800.            ColWidth_Name,
  801.            ColWidth_Size,
  802.            ColWidth_Type,
  803.            ColWidth_Mod, and
  804.            ColWidth_Attr.
  805.  
  806.       - When ViewStyle = vsReport, the File Size will be displayed in KBs and
  807.         the Folder Size will be blank.
  808.  
  809.       - The "Parent" folder will stay at top, regardless sorting directions.
  810.  
  811.       - Fixed "Invalid image" error, when the icon-size is changed from default
  812.         size of 32x32 (in Windows' Display Property | Appearance | Icon ).
  813.  
  814.  
  815.  Version 2.70
  816. -------------
  817.     (A) LsDirTree20:
  818.  
  819.       - Add Function GetTreeSize.
  820.  
  821.       - Add Bipmaps to its PopupMenu.
  822.  
  823.     (B) LsFilelistView27:
  824.  
  825.       - Added Property HideFileExt.
  826.  
  827.       - Added Property TimeFormatStr
  828.  
  829.       - Revised Procedure SetDateFormat to increse preset DateFormats
  830.         and to provide customize option.
  831.  
  832.       - Added Bitmaps to the ColumnHeaders to indicate the sorted column
  833.         and its direction of sorting.
  834.  
  835.       - Added Bitmaps to the its PopupMenu.
  836.  
  837.       - Added a 'Parent' folder at the top of filelist. Double-click on it,
  838.         will go up one level (similar to Procedure OneLevelUp).
  839.  
  840.       - Enhancements to various functions and procedures.
  841.  
  842.  
  843.  Version 2.60
  844.  ------------
  845.     - Added a Directory-TreeView component 'TLsDirTree20'.
  846.  
  847.     - Revised the KeyDown Event handler in TLsDirTreeCombo26.
  848.  
  849.     - Included icons in Send-To context menu (for D4 and D5).
  850.  
  851.     - Fixed bug that keep the drop-down LsDirTreeView on Top, when using
  852.       Alt-Tab key to switch to other running application.
  853.  
  854.  Version 2.53
  855.  ------------
  856.     - Added PopupMenu and DblClickEnabled Properties to TLsFilelistView25.
  857.  
  858.     - Fixed 'Integer overflow or Floating point error' generated by Functions
  859.       GetDiskSizze() or GetFreeDiskSize(). if the disk size or the logical
  860.       partition size is larger than 4GB.
  861.  
  862.     - Fixed bug in Procedure TLsDirtreeCombo().
  863.  
  864.     - Compiler Directives modified in order to be compatible with Delphi 5.
  865.  
  866.  Version 2.52
  867.  ------------
  868.     - Added ShortCut keys to TLsDirTreeCombo25, and revised ShortCut keys
  869.       in TLsFilelistView25 in order to conform with standard shortcuts
  870.       used by Windows Explorer.
  871.  
  872.     - Added procedure FindFile to TLsFilelistView25.
  873.  
  874.     - In LsFilelistView25, Public Property FileName has been renamed to
  875.       SelectedItem to reflect its function and FileAttrhas been declared
  876.       as public.
  877.  
  878.     - Fixed bug that keep the drop-down LsDirTreeView on Top, even the
  879.       application that owns TLsDirTreeCombo25, has been SentToBack.
  880.  
  881.     - Incorporated patches to TLsFilelistView25 to avoid possible AV errors.
  882.  
  883.  Version 2.51
  884.  ------------
  885.     - Fixed the undesired behavior of TLsDirTreeCombo25's dropdown
  886.       treeview, if it's located on any component other than a TForm.
  887.  
  888.  Version 2.50
  889.  ------------
  890.     - TLsDirComboBox has been replaced by TLsDirTreeCombo25, in order to
  891.       provide a hierarchical treeview of the file system.
  892.  
  893.     - Added SetColumnWidth() procedure to TLsFilelistView25.
  894.  
  895.     - Added ShowFolders property to TLsFilelistView25.
  896.  
  897.     - Added 'Anchors', 'BiDiMode' and 'Constraints' properties for Delphi
  898.       version 4.xx.
  899.  
  900.     - Added Attributes to Context Menu
  901.  
  902.     - Send_To SubMenu has been revised.
  903.  
  904.     - Fixed bug in TLsFilelistView25's AddFiles() function.
  905.  
  906.  Version 2.00
  907.  ------------
  908.     - Use Windows API functions to perform copy, move, rename,
  909.       delete, and other operations on files.
  910.  
  911.     - Added DriveFreeSpace, SelectedNumber and SelectedSize
  912.       properties.
  913.  
  914.     - Also added an Popup Context Menu to TLsFilelistView20 for
  915.       file operations.
  916.  
  917.  Version 1.20
  918.  ------------
  919.     - Added compiler directives to migrate both components to
  920.       Delphi version 4.
  921.  
  922.  Version 1.10
  923.  ------------
  924.     - Fixed bugs in TLsFilelistView's Mask property to allow
  925.       folders and filtered files to be displayed simultaneously.
  926.  
  927.     - Fixed bugs in TLsDirTreeCombo10's Click procedure.
  928.  
  929.  Version 1.00
  930.  ------------
  931.     - First development.
  932.  
  933.  Note :-   Latest patches in the source code are flagged by
  934.            '//'+ minor version numbers.
  935.            eg. //51 indicates changes made in version 2.51
  936. -----------------------------------------------------------------------------
  937.