ShellBrowser Delphi Components

Changelog

What is New in ShellBrowser Delphi Components?

Version 11.4

New Features and Improvements

  • A new "Jam.Shell.Dialogs.TJamFileDialogFrame" has been created. The component is a predefined frame which is mainly built around an ExplorerBrowser control. It may serve as a major building block for custom file dialogs. Using the properties "FolderMode" and "SaveMode", it can be used as a Folder, Open File or Save File dialog. The Frame is available in the component palette of RAD Studio. In addition, we ship the source code of the Frame if you want to inherit or further modify the frame.  To get an impression, please check the new "FileDialogFrame" sample project that you can find in the samples directory of the installation. It also contains the source code files of the component. 
  • TJamExplorerBrowser: Using Delphi 10 Seattle and higher, the ExplorerBrowser now fully supports the usage of VCL-themes via two external libraries - VCL Styles Utils and DDetours. For usage instructions, please refer here. You can also check the new "FileDialogFrame" example project, that is contained in the "Samples" folder of the installation directory.
  • The ThreadPool class, that ShellBrowser has been using internally for a long time, has been refactored and fully documented, so you can use it in your own applications, too. We’ll post a blog article on capabilities and examples of use soon.
  • TJamShellList: The "Incremental Search" feature has been fixed. In Windows Explorer it is possible to type letters to focus respective list elements. In the TJamShellList this only worked, if the item had been visible before, and was thus fully loaded. A workaround that you might have applied was to set the TListItem.Caption property in the "OnAddItem" event handler. This workaround can finally be removed. We have also changed the "FindCaption" method of the list classes, improving performance especially for large folders.
  • TJamExplorerBrowser: Using the new "OnBeforeDefaultAction" event, you can now intercept the default command for elements in the ShellView pane of ExplorerBrowser. Setting the passed "Cancel" parameter to true will stop the action that will be performed when double-clicking, pressing Enter or choosing the default command from the context menu. The old "OnDefaultAction" is still called, too. Implementing it, allows you to completely replace the default action that will normally take place.
  • TJamShellSearchEdit: The magnifying glass can now be hidden using the "ShowButton" property.
  • TJamFolderCombo: The Drop Down list is now resized automatically to accommodate long paths. In prior versions, the width was fixed, and longer elements were cut off.
  • TJamShellList: The "Status" column that provides the synchronization state or offline availability of files residing in OneDrive contains an icon in Windows Explorer. Unfortunately, this is currently not possible for the list classes of ShellBrowser. So, instead of presenting an empty column, there will now be a string representation of the status.
  • JamBrowseForFolder: Using the new "bfForceHiddenFolders" option, you can now force the visibility of hidden elements, regardless of the Windows Explorer option to show or hide hidden elements, which is taken into account normally. Note, however, that this works for the new dialog style only.

Bugfixes

  • TJamShellList, TJamShellTree: The long delays that occurred, when opening a folder containing SolidWorks files, have been fixed. 
  • TJamShellList: Opening more than one image file at once via the context menu, now only opens one instance of Microsoft Photos, instead of opening each file in its own instance.  
  • TJamFilePreview: If Adobe Acrobat was implicitly started by displaying the preview of a PDF file, it is now closed when the window hosting the TJamFilePreview is closed.
  • TJamShellTree: A problem where manipulating the registry in order to suppress Quick Access in Windows Explorer caused an EShellBrowserException in the ShellTree has been fixed.
  • TJamShellList: The "Destination" parameter of the "OnOperation" event has been fixed to contain the correct path delimiters.
  • TJamShellList: When using VCL styles, the missing sorting indicator in the ListView's column header has been added.
  • TJamShellTree: An AccessViolation that might have happened when renaming a folder in a filtered ShellTree, is now prevented. 
  • We have worked a lot behind the hoods. We tried our best to minimize side effects and breaking changes, but please don’t hesitate to get in contact if you experience problems.

10 August 2022