ShellBrowser Delphi Components

Changelog

What is New in ShellBrowser Delphi Components?

Version 11.3

New Features and Improvements

  • Support for RAD Studio 11 has been added.
  • The ShellBrowser Components no longer support Windows Vista.
  • Windows 11 compatibility has been improved. Some finetuning still needs to be done in the next version.
  • Using the new "FileNameFormat" property, you can control, whether the TJamShellList or TJamShellTree displays file extensions or not. The default value is "Auto", which keeps the former behavior and uses the respective Windows Explorer setting. The TJamOpenSaveCombo also supports this setting, but here the default value is to always show extensions.

TJamShellList

  • Using new property value "PersistentSpecialFolder" in the ShellList's "PersistViewSettings" property, automatically stores settings such as the sort order and the displayed columns in the Windows Registry. Compared to the "Persistent" value, that has been supported before, using the new value all file system folders share the same settings, whereas "special folders" such as e.g. Desktop, Pictures, etc. can be configured separately.
  • Additionally, a problem using the per-folder persistence of view settings using the "PersistViewSettings=Persistent" property has been fixed. The sort order is now stored and re-applied appropriately.
  • Using the new "CheckMode" property, more checking options are available than with the former "CheckBoxes" property. The following options are available:
    • "None": no checkboxes
    • "SelectionList": only works if a ShellLink is attached. Checked items are collected in the ShellLink's "SelectionList" property. Checking items works recursively (i.e. elements in a checked folder are checked, too). Also the ShellLink propagates check states to other ShellBrowser controls displaying check boxes and using the same ShellLink instance.
    • "Simple": check states are temporary to the current view and not shared across controls.
    • "AutoCheckSelect": like the simple mode. Additionally, check states and selection states are kept in sync.

TJamShellTree

  • The "OnAddFolder" event that can be used to prevent nodes from being added to the ShellTree is now called for root nodes too.
  • The component's appearance has been improved when using a "dark" background color either by using a dark Delphi theme or by setting the background color.
  • Like Windows Explorer, the ShellTree now adds all available OneDrive nodes (OneDrive for Business, OneDrive Personal) as root nodes.
  • The ShellTree now respects that OneDrive nodes can be suppressed per GPO.
  • The Quick Access root node is not added automatically if Quick Access is hidden in Windows Explorer via the respective registry setting (HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HubMode).
  • Setting "ShowNethood" to false, now also affects the network node, if it is displayed as root node, like when the Windows Explorer is configured to not "Show all folders". In recent versions, the node was only suppressed if it appeared beneath the "Desktop" node.
  • The initially selected node is now automatically expanded when the ShellTree is loaded if it is a root node. In prior versions, it was only selected, but not expanded.

TJamDriveList

  • The handling of unreachable paths in the DriveList has been improved:
    • Non-existing paths or unavailable net-drives are now displayed with a disconnected symbol.
    • The "OnInfoTip" event, that can be used to set custom tooltips, is now also called for paths that do not exist or for unreachable drives.
    • After the data of a drive has been loaded, the "ListItemAction" is now called with "TJamListItemAction.shiDataLoaded" as event type parameter. 
    • The "CheckIfExists" property now also removes unreachable net drives from the list once they are detected as being unavailable.
  • Using the new "WarnColor" and "ErrorColor" properties, the colors that are used to present the Free Percentage Column Bar can now be adjusted. Background and border of the Free Percentage Bar are now chosen according to the applied VCL theme.

TJamFilePreview

  • Using three new properties, you can now customize the messages the control displays:
    • “SelectFileMessage” in case no file is selected.
    • "PreviewNotAvailableMessage" if the selected element does not provide a preview.
    • "PreviewNotPossibleMessage" in case something has gone wrong when trying to load the preview.
  • A new internal preview has been added for text files. It can be used by setting the "UseSystemTextHandler" property to false, e.g., in the form's "OnCreate" or the "OnLoadPreview" event of the FilePreview. Amongst other internal benefits, this ensures that the text preview complies to the set VCL theme. However, the feature is still experimental, therefore it is not activated per default.
  • TJamFolderCombo: It is now possible to add paths containing wildcards to the FolderCombo, without them being checked for existence. In prior versions this did not result in an error, but the paths were not added to the drop-down list.
  • TJamShellBreadCrumbBar: If the root of the BreadCrumbBar is set to anything else than "Desktop", for clarity and usability the root node is presented as left-most breadcrumb. In contrast, if the BreadCrumbBar is rooted at Desktop, this basically redundant item is only visualized by a compressed breadcrumb at the beginning.
  • TJamItemIdList: The ItemIdList and components now supports Volume GUIDs as paths. This enables navigating e.g. virtual drives that have no mount points, such as a drive letter or a folder in the file system.

Bugfixes

  • C++ Builder Support: The Win32 HPP files for C++ Builder are now installed in the correct path.
  • TJamPathEdit: The component is now scaled correctly, when only primary monitor is scaled and the application is started on an unscaled secondary monitor.
  • TJamShellTree: The "SelectedFolder" property is now persisted and restored correctly.
  • TJamShellTree: A ShellTree whose "MultipleRoots" property is configured to "mrFirstLevel", now handles file system changes in the scope the ShellTree displays correctly. New folders are automatically added as new root nodes, deletions and renaming are applied correctly. In former versions, the ShellTree has ignored changes concerning root nodes.
  • TJamShellTree: The "FileSystemOnly" property is now respected if property "MultipleRoots" is set to "mrFirstLevel". This avoids ZIP files being displayed as root node.
  • TJamShellTree: An Access Violation that occurred when destroying a component not with its parent form, but separately beforehand, has been fixed.
  • TJamShellTree: Fixed an issue, where drives did not have a caption, when setting the "ShowShellNames" of the ShellTree to false.
  • TJamShellTree: The "RowSelect" property is now applied correctly, even if "UseSystemStyles" is set to true.
  • TJamShellTree: The file icons and checkboxes are now scaled correctly with a "Per Monitor v2" manifest.
  • TJamShellBreadCrumbBar, TJamShellTree: Setting and synchronizing properties that determine the root of the component (i.e. "RootedAt" vs. "RootedAtFileSystemFolder") and the selected path of the component (i.e. "Path" vs. "SpecialFolder") has been improved to avoid problems at design- and runtime.
  • TJamShellList: Trying to create a new folder via the "CreateDir" method in an unsuitable parent folder (like e.g. the Network or This PC virtual folders), now raises an EShellBrowerError with a localized message.
  • TJamShellList: ViewStyle "Thumbnails" now respects custom captions set in the "OnAddItem" event, instead of displaying the default names.
  • TJamShellList: It is not possible anymore to enter the edit mode of the parent folder ("..") item by executing two slow clicks on it.
  • TJamShellList: The "SelectionChanged" event is now called when adding files to the "SelectedFiles" property.
  • TJamShellList: A glitch in the display of file icons when moving the ShellList between scaled monitors has been corrected.
  • TJamShellList: If Windows classes supplying the info box in a Drag-and-Drop operation are not available or do not work, like it was reported for ShellBrowser running on Citrix, we now try to continue without this add-on.  The Drag-and-Drop operation then simply runs without the extended info box.
  • TJamShellList: Fixes concerning the handling of custom columns have been incorporated: "IsColumnVisible" now returns the correct value and event "OnAfterShellColumnChanged" is called.
  • TJamExplorerBrowser: Fixed a "Resource is in use" error that might have occurred when navigating a folder while the ExplorerBrowser was not ready.
  • TJamFilePreview: Per Monitor DPI scaling issues concerning the standard preview handler for text files and for Microsoft Word files have been fixed.
  • TJamDriveList, TJamFileList, TJamShellList: Flickering issues concerning the display of tooltips for items, that especially occurred with VCL styles, have been addressed and reduced significantly.
  • TJamDriveList: Items that have been added via the "AddEditable" function are now removed from the list if the user didn't touch the initial edit text. In former versions the user had to press Escape to cancel the item explicitly.
  • TJamPathLabel: If there is not enough space, the beginning of the path is retained in the caption instead of being shortened. Also, a protocol at the beginning of a URL is not omitted.
  • TJamFolderCombo, TJamShellCombo: Improved flickering issues occurring during the resizing.
  • TJamPathEdit: The image is now displayed correctly if the control is disabled.
  • TJamFilePreview: Exceptions that might have occurred when destroying the Preview while a file is still loading or unloading asynchronously, should not occur anymore - the Preview is given some time to finish gracefully under these conditions.
  • TJamFilePreview: A possible exception and small memory leak concerning pdf previews using Adobe Acrobat has been fixed.

15 December 2021