What's new in ShellBrowser Components Delphi Edition 12.0

May 12, 2023
  • Improvements:
  • The component for managing the installation keys has been renewed. Therefore, all customers need new installation keys for V12, which are available in our customer area.
  • RAD Studio versions XE3 - XE6 are no longer supported.
  • When adding a ShellBrowser component to a form, the dependent units are now automatically added to the uses clause. This avoids the need manually find and add units e.g. when implementing an event in a ShellBrowser control, that uses types from other units.
  • TJamFileList, TJamShellList, TJamShellTree: To improve the "OnBeforeShellCommand" event and avoid a breaking change, there is now a new "OnBeforeCommand" event, that passes a configuration record with details on the command being called, and allows to intercept further execution of the command (just like the parameter "AllowExecution" in OnBeforeShellCommand).
  • TJamFileList: Using the new "ExecuteDelete" property, you can now control, whether deleting items from the FileList using the context menu or keyboard deletes items in the file system or only removes the items from the list. Note, that the default value is false, which is a functional change compared to prior versions.
  • TJamShellList: The dialog for column selection now includes an option to filter columns by name.
  • TJamFileList: If the user presses Ctrl-V in the FileList, files in Clipboard are now added to the FileList. The same functionality can be achieved by calling "TJamFileList.InvokeContextMenuCommand(saPaste)".
  • JamBrowseForFolder: The TJamBrowserForFolder dialog now has a new flag TJamBrowseFlag.bfAllowMultiSelect that allows a multi-selection of folders. If this flag is active, the folders will be supplied in the new "ItemIdLists" property, which can be easily iterated using a for-in-loop.
  • TShellBrowser: Added TShellAction.saOpenWith which allows to programmatically trigger the "Open With" dialog for a file.
  • TJamFileList, TJamShellList, TJamShellTree: The "OnMouseWheel" event is now available in the object inspector.
  • TJamFileList: Using the new "CaptionFormat" property, it is now possible to control if the caption displays the complete path or only the file name of an item.
  • TJamFilePreview: Like in Windows Explorer, previewing files from cloud storage that are not available offline, won't display the IPreviewHandler based preview to avoid a download of the file. This does, however, not affect thumbnails, so image files can be previewed normally.
  • TJamShellList, TJamShellTree: The "ghosted " state of items, that appears when an element is cut, is now refreshed more often, and is reset if pasting fails or is cancelled.
  • Bugfixes:
  • TJamShellList: A problem where the contents of columns were not displayed correctly in library folders has been fixed.
  • TJamShellList, TJamShellTree: A problem, where some elements in the Desktop folder of Windows 11 were shown duplicated, has been fixed.
  • TJamFileList: Adding items to a hidden file list and showing everything later now works as expected.
  • TJamShellSearchEdit: The search could possibly return too many, seemingly unrelated results. This has been corrected.
  • Several minor issues have been fixed and improved.

New in ShellBrowser Components Delphi Edition 11.3 (Dec 15, 2021)

  • 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.

New in ShellBrowser Components Delphi Edition 11.2 (Jun 16, 2020)

  • New Features and Improvements:
  • Support for RAD Studio 10.4 Sydney has been added. This includes support of the “Per Control Styles” VCL feature new in 10.4. Check this Blog-Post for usage.
  • A new control TJamDetailsPane was added. It combines displaying file metadata with a thumbnail or preview of the file. It is similar to the Details Pane that can be enabled in the Windows Explorer on the right.
  • TJamPathLabel: The control TJamPathLabel now has a property ExecuteOnDblClick. If set to True (the default value), the displayed path is executed / opened when the user double clicks it.
  • TJamFileList: The performance of sorting items by element type has been improved.
  • TJamFilterCombo: Using the new "FilterString" property, the filters that are displayed in the drop down can be set as '|' separated string, e.g. 'Text|.txt|Images|.jpg;.png|Everything|.*'
  • Setup: If a non-default installation path was used, the installer now remembers the installation path and suggests it again when installing an update.
  • TJamPathLabel: It is now possible to connect the PathLabel to other components using a TJamShellLink.
  • Additionally, the PathLabel supports virtual elements without file system path.
  • TJamShellList: No backslash is appended to the end of the path in the "Path" property.
  • Note, that this might be a Breaking Change, if your code relied on it.
  • Bugfixes:
  • TJamFilePreview, TJamThumbnailImage: A GDI handle leak that occurred when displaying thumbnails has been fixed.
  • TJamShellHistoryPane, TJamShellTree: The browsing history now works correctly when the currently active folder gets renamed in the ShellTreeView.
  • TJamFilterCombo: Programmatically selecting a filter by setting the "ItemIndex" property now refreshes other components linked via a TJamShellLink.
  • TJamShellTree: The Quick Access node was not expandable anymore when setting the “FileSystemOnly” property to true at runtime. This has been fixed.
  • TJamFileList: No exception is raised anymore when trying to drag non-existing elements. This situation has to be handled by the target of the drag and drop operation.
  • TJamFilePreview: Files on cloud storage that are not available offline, are not previewed anymore, because this triggers the file being downloaded. Files already available offline are previewed normally.
  • TJamShellTree: Renaming a folder in the ShellTree could occasionally cause an error. This issue has been fixed.
  • Several minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 11.1 (Dec 18, 2019)

  • New Features and Improvements:
  • The new "TJamFilterCombo" represents the Filter ComboBox that is known from Windows File Dialogs. You can specify file extensions that serve as filters for other components connected using a TJamShellLink. In editable mode the component can also be used to apply non-predefined filters, that can be typed on the fly.
  • The new "TJamOpenSaveCombo" component represents the editing component that is used to select or provide a filename in standard Windows File Open - or Save Dialogs.
  • In the dropdown list it presents the last used files. Using a TJamShellLink, it can be connected to other ShellBrowser components, to synchronize the current directory or filter the files available in the drop-down. See the "Dialogs > Custom File Open Dialog" in JamExplorer for an example usage.
  • TJamShellList, TJamFileList, TJamDriveList: The sorting has been reworked.
  • Using the new “Sort(TShellColumnId, TSortDirection)” method, items can now be sorted by all shell columns, no matter if visible or not. This works in all viewstates.
  • For performance reasons you can set a list to unsorted, using the "IsSorted" property. This is the default for the FileList. In contrast to the former release, the last sort order is still kept, so you can turn off and reactivate sorting at any point.
  • TJamFileList, TJamShellList: Like Windows File Explorer column "Item Type" is now sorted by the visible value instead of sorting it by the respective file extension.
  • TJamShellList, TJamFileList: When sorting for columns that contain date or number values, the default sort order is now descending.
  • TJamShellTree: There is a new option for the "MultipleRoots" property: "TMultipleRoots.mrFirstLevel" uses the root folder assigned to "RootedAt" or "RootedAtFileSystemFolder"; yet, instead of presenting this folder as single root node for the ShellTree it will enumerate all subfolders and add them as root folders.
  • TJamShellLink: You can now restrict folder access for all controls linked with a TJamShellLink instance using the new "OnNavigating" event. The event is called before the path is changed for any of the controls linked with the TJamShellLink instance and setting the "Cancel" parameter will abort the path change.
  • TJamDropFiles: The "IDataObject" of the drag-and-drop operation can now directly be accessed via the new "DataObject" property.
  • TShellBrowser: Improved per-monitor high DPI scaling of icons from system image list.
  • TJamShellList: It is now possible to create a custom column before the "Name" column, by setting the Index to “0”. If "FullDrag" is activated, it is possible to temporarily move the name column to a different position. Note, that it will be restored at the first position when the columns are loaded the next time.
  • TJamDriveList, TJamFileList, TJamShellList: Columns can be consistently renamed using the new "OnGetColumnInfo" event. The given name will be used in the header context menu and column selection dialog too.
  • TJamShellList, TJamFileList, TJamShellTree: Introduced the new "OnSelectionChanged" event for the ShellList, FileList and ShellTree. It is called when the selection changed or is removed, but unlike "OnSelectItem" it is not called for every item in the selection.
  • TJamShellList: "Paste" and "New folder" are now available and working in the ShellList's background context menu of an attached mobile device.
  • TJamDriveList: The disk space information for individual drives is now updated every 10 seconds. This time span can be changed with the new property "DefaultUpdateInterval". The functionality can be switched off by setting the value to "0".
  • TJamShellList, TJamFileList: The new property "IconSize" can be used to configure the size of icons in viewstyle vsIcons. Properties "ShowJumboIcons" and "ShowExtraLargeIcons" still exist, but were removed from object inspector. Also, setting any of these properties or property "Thumbnails" to false, doesn't have any effect anymore; instead the wanted icon size needs to be set. This is a breaking change.
  • The default value for "IconSpacing" has been changed to "-1" which means that the space is automatically set.
  • The new procedure "SendDropFiles(HWnd, TStrings)" in ShellBrowser sends a list of given files to a window, simulating a manual drag-and-drop operation to the window.
  • TJamFilePreview: Using the new "TJamFilePreviewLoadPreviewEventArgs.ForceGuiThread" option in the "OnLoadPreview" event, you can force that a preview is loaded and unloaded synchronously instead of being handled in a separate thread. This might fix problems concerning single PreviewHandlers or use-cases, where PreviewHandlers don't work as expected when loaded asynchronously.
  • Bug fixes:
  • General: Fixed per monitor high DPI issues in various components.
  • Thumbnails, TJamFileList, TJamShellList: To avoid delays that might occur when folder thumbnails are retrieved, a new property "FastFolderThumbnails" was introduced. If set to true (default), folder thumbnails previewing the contents of the folder are only displayed, if they have already been cached.
  • Thumbnails: Using Adobe Acrobat as thumbnail handler, thumbnails of pdf files that were retrieved in non-standard dimensions, turned up black. This has been fixed.
  • TJamFolderCombo: The "Sorted" property now works as expected: if set to false, the items will appear in the order they were added. The default value for this property was changed to "true".
  • TJamShellTree: The Quick Access node now doesn't contain zip archives, unless "ShowFiles" is activated for the ShellTree. Also, zip-archives are recognized using file attributes instead of checking the extension.
  • TJamShellTree: Fixed the problem, that it was not possible to select a node in Windows 7 "Favorites" root node, if the "ShowErrorMessages" property was set for the ShellTree.
  • TJamShellTree: When painting a selected node, the VCL theme's default text color is retained even if the ShellTree doesn't have the focus. For dark VCL themes this avoids dark text on dark background.
  • TJamShellList: Improved performance when inserting a large number of elements into a folder via drag-and-drop or copy-paste.
  • TJamShellList, TJamShellSearchEdit: If a search result is presented, and you go to the parent folder via pressing backspace or a history component, the folder the search was started in is now reopened, not Desktop.
  • TJamShellList: Due to an internal issue, not all available Shell columns could actually be added to the ShellList. This has been fixed.
  • TJamShellList, TShellBrowser: Opening a bitlocker secured drive now shows the password dialog even from 32-bit applications.
  • TJamShellList: A flickering problem that occurred with custom columns and using a VCL theme has been fixed.
  • TJamShellList: Improved thumbnail performance.
  • TJamShellList: A possible “EInvalidOperation” error that might have happened during the execution of an "OnThumbnailUpdated" eventhandler is now handled.
  • Instead of appearing unsorted, columns in the TJamShellColumnSelectionDialog are now sorted alphabetically if the "MultiSelect" property is set to false.
  • TJamShellList, TJamFileList: The "AutoAdjustColumnWidths" method, that automatically resizes columns concerning to fit their contents, now works again when called in the "OnPopulated" event of the ShellList. Also, it is now possible to pass a min-max range that must not be exceeded.
  • TJamFileOperation: Instead of "TCommonDialog", TJamFileOperation now extends "TComponent" again, so that it is included in the Component Palette of Rad Studio also for data modules.
  • TJamDriveList: The "OnAddItem" and "OnAddPath" events are now called again, when the DriveList refreshes its contents (e.g. by pressing F5). Values for custom columns have to be provided again in one of these events.
  • TJamDriveList: A visual issue concerning the sizing of the "AutoSizeColumn" has been fixed.
  • TJamDriveList: Worked on possible delays concerning unreachable locations.
  • TJamPathLabel: Prevented a possible delay when loading a non-reachable path.
  • General: Fixed a possible "EUseAfterFreeError" that is reported by EurekaLog for the TJamShellCommand.
  • TJamShellCombo: Fixed a memory leak, that might have occurred under specific conditions (control's handle was recreated and finally destroyed while being invisible).
  • Breaking changes and deprecated warnings:
  • Type “TJamSortDirection” has been moved from unit JamSystemShellView to Jam.Shell.Types.
  • TJamItemIdList: "TItemIdListDisplayNameFormat.dnf_RelativeForAddressBar" was renamed "TItemIdListDisplayNameFormat.dnfRelativeForAddressBar".
  • TJamShellList, TJamShellTree: Instead of returning an empty string, some path related properties now return the display path of an element if no physical path is available (e.g. for virtual folders). These are TJamShellTreeNode.FullPath, TJamShellListItem.FullPath, TJamShellList.Path, TJamShellTree.SelectedFolder. Use the "Path" property of the respective ItemIdList if you rely on the old functionality.
  • Also, "TJamShellList.GetFullPath" is now deprecated. Use TJamShellItem.Path or TJamShellListItem.AbsoluteItemIdList. Path instead.
  • Threadpool: TDelayedProcedure.Create is now deprecated. Use class procedure "TDelayedProcedure.CreateAndQueue" instead.
  • TJamFolderCombo: TJamFolderCombo.AddFolder() now adds the given path asynchronously to prevent application freezes if the path is not reachable. Therefore, it no longer returns the new item's index which is a breaking change. If you used the return value to select the added item, please use the SelectFolder() method instead.

New in ShellBrowser Components Delphi Edition 11.0.1 (Dec 2, 2019)

  • New features and improvements
  • TJamShellBreadCrumbBar: Introduced property "OnPathChanged" which occurs if path has changed.
  • Setup: "EShellBrowserError", which is often used and handled internally, is now automatically added to the exception types that should be ignored in the debugger.
  • TJamShellBreadCrumbBar: Published properties PopupMenu and OnContextPopup to provide custom background context menu support.
  • Bugfixes
  • TJamShellList: Improved appearance and performance of the thumbnail view.
  • TJamShellList: In the context of high dpi scaling, spacing between icons or thumbnails are now also adjusted to avoid potentially overlapping items.
  • TJamShellList: Some potentially unhandled EInvalidOperation errors from TShellBrowser.GetShellObjectName are now prevented.
  • TJamShellList: Fixed the loading of column headers when PersistViewState is "None".
  • TJamShellList: Column widths are now stored and restored properly on high dpi.
  • TJamShellList: Fixed an issue that the sort order was not properly stored, when it was set using the "ReverseSortOrder" property. Note that saving the sort order only affects viewstate vsReport.
  • TJamItemIdList, TJamShellList, TShellBrowser: Invoking the "saDefault" action on a ShellListItem or ItemIdList or double-clicking an item in the ShellList now again passes the current directory as working directory to the executed command, instead of executing the default command in the context of the current application.
  • TJamShellList: The ItemIdListCollection that is passed in the "BeforeShellCommand" event now always contains absolute ItemIdLists.
  • TJamShellList: Fixed the issue that the "Date" column that holds the "System.ItemDate" property and is e.g. displayed for the Pictures folder, is empty in the ShellList.
  • TJamBaseShellListView, TJamShellTree: Instead of a TShellBrowser instance, the "OnBeforeShellCommand" now passes the control as "Sender".
  • TJamShellTree: The ShellTree was not able to identify a node when its contents were changed in the meantime. As a consequence when adding files to a folder and reselecting the respective folder in the ShellTree, a duplicate node was added. This problem has been fixed.
  • TJamShellTree: Fixed the issue that the "CreateDir" method did not switch reliably to edit mode to change the default folder name. Also, the method now creates a unique new folder name.
  • TJamShellTree: Preventing a possible EArgumentError that might have occurred when handling rename notifcations.
  • TJamExplorerBrowser: On Windows 10 Version 1809, the Windows Explorer supports a dark mode. When it is used, there are side effects on the ExplorerBrowser, which turns partly dark as well. We have opened a ticket about this at Microsoft. A preliminary bugfix should avoid a partly black and partly light themed ExplorerBrowser.
  • TJamShellBreadCrumbBar: The scaling of separators between breadcrumbs has been improved in high dpi.
  • Examples: The example projects have been improved when executed on a scaled monitor.
  • TJamDriveList: A potential freeze of the main thread caused by adding non-reachable elements to the DriveList is now prevented.
  • TJamItemIdList: Fixed a problem in the "Rename" method, which did not rename correctly if no window handle was passed and file extensions were hidden in Windows File Explorer.
  • TJamItemIdList: A possible AccessViolation that might have occurred in the context of a TJamShellBreadCrumbBar on program startup is now prevented.
  • Setting TShellBrowser.ObjectName to an empty string now raises an "EShellBrowserError" exception, as it already did for invalid paths.

New in ShellBrowser Components Delphi Edition 11.0.0 (Dec 5, 2018)

  • New Features and improvements:
  • Support for RAD Studio 10.3 Rio has been added.
  • The support for Windows XP and Windows Server 2003 has been dropped. We will continue to support these operating systems in V10.
  • You can now access the ShellBrowser help from the Delphi IDE. We have added support for context-sensitive help ("F1") in Delphi IDE for all ShellBrowser types, under the precondition that the Delphi Help system is installed in the IDE.
  • TJamShellList: Using the new "PersistViewSettings" property you can now control whether the ShellList:
  • persists the column settings on a per-folder base automatically. This works the same way as in Windows Explorer, the settings are stored in the registry.
  • In fact, by default the settings are shared with Windows Explorer. You can, however, set the "PropertyBagName" to some custom value to keep the settings of your program or different ShellLists in the program apart from each other and Windows Explorer.
  • stores the column settings per special folder temporarily. The settings will be lost when the program is closed. This is the default setting and was the only possibility in older versions of ShellBrowser.
  • doesn't store any column information. In this case, the default columns for a folder will be loaded whenever a folder is opened in the ShellList.
  • TJamFileOperation has been reworked completely and put on new grounds internally. It now supports more operations, like creating ZIP files. Static methods were added to start an operation in a single line of code. New flags, like TJamShowOptions.soKeepNewer, were introduced to copy only newer files.
  • TJamFileList: Setting the new "FileSystemOnly" property to false, it is now possible to add non-file-system elements to a FileList (e.g. via drag-and-drop). To keep compatibility, the default value of the property is "true".
  • TJamThumbnailImage: A new property "AbsoluteItemIdList" has been added. It supports displaying thumbnails for virtual folders or elements without physical path, e.g. from an attached mobile phone.
  • TJamFolderCombo: Support for ItemIdLists has been added.
  • FolderCombo.Add(TJamItemIdList.CreateForSpecialFolder(SF_DOWNLOADS)) will for example add the Downloads folder to the ComboBox.
  • TJamExplorerBrowser:
  • Introduced Drag-and-Drop events: OnDragEnter, OnDragOver, OnDragLeave and OnDrop. The events can be used to be informed of and take influence on the Drag-and-Drop operations.
  • The new "ShowNethood", "ShowRecycleBin" and "FileSystemOnly" properties have been introduced.
  • TJamItemIdList: The following methods have been added:
  • "GetPropertyValue": Retrieves the specified property value as variant type. The result type "TShellPropertyValue" is compatible with OleVariant and TPropVariant. (Note: String representations can be retrieved using the "ItemIdList.GetShellInformation" method.)
  • "SetPropertyValue": It is now possible to assign new values to shell properties. (This does not work for non-writeable properties like e.g. the creation date.)
  • "InvokeCommand": Executes the passed command on the shell item represented by the ItemIdList.
  • CreateNewFolder: Creates a new folder inside the folder represented by the ItemIdList.
  • Rename: Renames the shell item represented by the ItemIdList. This method replaces "TShellBrowser.RenameObject" which is marked as deprecrated.
  • Some useful helper methods have been added for auxiliary types:
  • TJamShellFolder.ToString() returns display name and ToPath() returns display path.
  • TShellColumnId.ToString() returns the canonical name of a shell column. "FromString" creates TShellColumnId from its canonical name.
  • TShellBrowser:
  • The new type "TShellCommand" is now used in various methods that invoke or handle context menu commands. It is compatible with string type command verbs but also supports a set of well-defined commands defined through the TShellAction enum type.
  • Using the new "saOpenCommandPrompt" TShellAction, you can open a command prompt at the specified location, e.g.
  • TJamItemIdList.Create('d:').InvokeCommand(TShellAction.saOpenCommandPrompt
  • The new "TShellAction.saDeleteNoUndo" action can be used to delete elements bypassing recycle bin. It can e.g. be used in controls supporting "InvokeCommandOnSelected".
  • The performance when executing a context menu operation on a large number of elements has been improved.
  • TJamDriveList, TJamShellList: The "OnShellNotification" event can be used to get notice of the shell change notifications the control receives. Using the "pHandled" parameter in the event signature can be used to stop a notification from being further processed by the control. The event is not available through object inspector but you can attach an eventhandler in code.
  • TJamFilePreview: The Text PreviewHandler is now used for files that contain textual content no matter what file extension they have. PDF and TXT files located on an attached mobile phone can now be previewed. For PDF files Adobe Acrobat must be the default viewer for the preview in order for this to work.
  • TJamShellTree:
  • Using the new "SingleSpacedRoots" property, the empty space that is added between root nodes can be suppressed.
  • The "OnCheckStateChanged" event was replaced by a new "OnTreeNodeCheckStateChanged". Instead of the path and item index, it passes the ShellTreeNode that is affected by the checkstate change. This is a Breaking Change.
  • TJamFileList, TJamShellList, and TJamShellTree: Property "CopyMode" is now deprecated and replaced by properties "AllowedDragEffects" and "AllowedDropEffects" which can be used to allow only a subset of available Drag-and-Drop operations. Usages of "TJamCopyMode" have been replaced by the very similar type "TJamDropEffect".
  • TJamShellBreadCrumbBar: Introduced “OnAddItem” event which occurs when a breadcrumb was added.
  • TJamPathLabel: Keyboard navigation and usage have been improved: The focus rectangle is now drawn correctly and pressing the space key will now toggle the checkbox (if available).
  • TJamShellLink: The new "OnSelectionChanged" event can be used to track the selection that other components, like e.g. the JamFilePreview, use for synchonization. The event is called whenever the relevant selection changes. The already existing "OnChange" event has been modified to the same eventhandler signature.
  • TJamShellBreadCrumbBar: The arrow symbols used in the BreadCrumbBar now match the Windows version. Now a single click is sufficient to enter the edit mode of a search box.
  • TJamShellChangeNotifier: Added property "NotifyAsynchronously": If False (the default value) the events will be fired in context of the main thread. If True, the events will be fired in the context of concurrent threads.
  • The new unit "Jam.Shell.Types" has been added. We have moved some commonly used types and interfaces there (Aliases have been introduced to avoid breaking changes).
  • Several refactorings and minor have been incorporated. We tried to be very careful and not to induce major compatibility issues. Please don't hesitate to contact us if you experience issues when updating to V11.0 despite our efforts.
  • Bugfixes:
  • TJamBrowseForFolder: The dialog remained open, when trying to confirm the initially set folder, unless it had subfolders. This has been fixed.
  • TJamShellTree: Files showed a collapse icon after double-clicking. This has been fixed.
  • TJamShellTree: For the Libraries introduced with Windows 7 one level of navigation was missing in the TJamShellTree compared to Windows Explorer. This has been corrected.
  • TJamShellTree: The "Pin to home" context menu item from the Quick Access context menu is now supported properly, instead of showing a "Not supported" message.
  • TJamShellList: Drag-and-Drop perfomance issues have been improved.
  • TJamShellList: The "New" menu item in the background context menu now only appears in folders where sublements can be created. It is e.g. not available anymore in ZIP files.
  • TJamShellList: The sort order icon that is displayed in the column header is now restored properly, when additional columns are displayed or removed or when the sort column itself is removed and re-added later.
  • TJamExplorerBrowser: A problem causing high CPU usage when navigating to the Windows Control Panel has been fixed.
  • TJamExplorerBrowser: The "SelectAll" method now works correctly also for "This PC".
  • TJamExplorerBrowser: A repaint problem when trying to select multiple files using Shift+Down has been fixed.
  • TJamExplorerBrowser, TJamSystemShellView: Accessing items in C:Users\AppDataLocalMicrosoftWindowsHistory does not cause an exception anymore.
  • TJamExplorerBrowser: Navigation tree now processes keyboard input correctly (especially "Delete" key).
  • TJamExplorerBrowser: Some of the filter options weren't reapplied correctly after "This PC" was displayed. This has been fixed.
  • TJamExplorerBrowser: Property ShowHidden is now applied correctly to containing Breadcrumbbar.
  • TJamExplorerBrowser: Fixed focus is lost after deleting a file or folder in the right pane of TJamExplorerBrowser.
  • TJamDriveList: An empty CD-ROM will now no longer appear in the DriveList.
  • TJamDriveList: If "CheckIfExists" is true, not only non-existing drives will be removed, but also non-existing folders.
  • TJamDriveList: When an element in the list is renamed, the item is now refreshed properly to display the new name.
  • TJamDriveList: Bitlocker encrypted drives are now added, removed and updated correctly.
  • TJamDriveList: Repaint issues such as flickering and empty items that might have occurred when resizing the component having a column set as "AutoSizeColumn" have been fixed.
  • TJamFolderCombo and TJamShellCombo now revert the edited path when pressing Escape key in edit mode. When typing a new path, the icon is now updated correctly. Perfomance issues related to slow or unreachable net-drives have been fixed.
  • TJamShellChangeNotifier: Calling the "TJamShellChangeNotifier.Clear" method had the effect that all drives were watched for notifications again. Now all folders are now removed from the watchlist; if you want to restore the old behavior add the folders that should be watched after clearing. To watch everything e.g. "JamShellChangeNotifier.AddItemIdList(TJamItemIdList.CreateForSpecialFolder(SF_DRIVES)).
  • TJamFileList: The current columns are now restored properly when changing the view or when triggering a FullRefresh even if columns have been reordered by the user.
  • TJamFilePreview: The "OnPreviewLoaded" event is now also called for the successful preview of PDF files using Adobe Acrobat.
  • TJamFilePreview: Double-clicking the preview of an image file from an attached mobile phone now opens the image file externally.
  • TJamShellBreadCrumbBar: Fixed a painting issue in editor of TJamShellBreadCrumbBar when pressing "Alt Gr" for the first time.

New in ShellBrowser Components Delphi Edition 10.4.2 (Mar 6, 2018)

  • The "QuickLaunch" special folder has been added to the TJamShellFolder enumeration.
  • TJamShellBreadCrumbBar: The "Path" property now prefers physical paths to display paths if available. If the property is e.g. queried for the Desktop folder, "Path" now returns "c:users<user>Desktop" instead of "Desktop".
  • TJamShellBreadCrumbBar: If "Segoe UI" is not available on a system, breadcrumb icons are now drawn using "Arial".
  • The contents of "Control Panel" and "All control panel items" are now handled like files or programs rather than folders: they are not displayed in the ShellTree by default, and double-clicking them will open them externally instead of opening them in the ShellList.
  • The "TShellBrowser.AddLinkTo" method that can be used to create shortcuts now has an optional parameter to specify the name of the created link.
  • The "TJamShellColumnSelectionDialog" that displays the shell columns available in a folder now has a new "OnColumnsAdd" event that allows to filter the columns that are displayed.
  • Bugfix - TJamShellList: A custom background context menu is no longer suppressed if the "ShellContextMenu" property is set to false.
  • Bugfix - TJamShellList: The sort order has been fixed in directories containing zip archives or other file formats that can be opened like folders.
  • Bugfix - TJamShellList: The default context menu that is displayed when clicking the background of the ShellList now displays "Refresh" instead of an empty menu item on Windows 10.
  • Bugfix - TJamShellList: custom columns can again be reordered by setting the "Index" property of the columns.
  • Bugfix - TJamFilePreview: Previews of MS Word files are no longer displaced when using MS Word 2016 and higher.
  • Bugfix - TJamFilePreview: The preview does not prevent opening large files in Adobe Acrobat anymore due to sharing conflicts.
  • Bugfix - Problems occurring when refreshing the contents of "Quick Access" have been resolved.
  • Bugfix - The performance of checking items in larger folders has been improved to avoid delays as much as possible when synchronizing the check states between a ShellList and a ShellTree linked using a ShellLink.
  • Bugfix - TJamShellTree: The "RootedAt" property is now persisted and restored correctly.
  • Bugfix - It is now possible to unlock a bitlocker drive using the context menu's "Unlock drive" menu item.
  • Bugfix - TJamPathList.GetShortcutTarget() now resolves links to 64-bit programs correctly in 32-bit applications.
  • Bugfix - TJamExplorerBrowser: The view style that is configured in designer is now respected at runtime.
  • Bugfix - TJamExplorerBrowser: Instead of cryptic names containing the search phrase, the "SelectedFiles" property now returns the correct destination paths for elements gathered using the SearchBox and listed in the search folder.
  • Bugfix - TJamExplorerBrowser: On Windows 7 visible panes are now restored correctly when navigating to a user directory and back.
  • Several minor bugfixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 10.4.1 (Aug 4, 2017)

  • TJamDragFiles: Using this new component you can start shell drag operations from arbitrary VCL controls. Have a look at the OleDragDrop example project to check out how it works.
  • TJamShellSearchEdit: Search results are now added asynchronously to linked components. The TJamShellList now gives feedback on the state of a running search.
  • Bugfix - TJamShellList: Problems with filling a ShellList asynchronously (e.g. for network folders or search results) have been fixed. In addition, the "OnPopulated" event is now only called when the folder contents are fully loaded.
  • Bugfix - TJamShellTree: The style of fonts is now applied too.
  • Bugfix - TJamShellTree: On Windows 10 network drives were not displayed in the "This PC" node occasionally. This has been fixed.
  • Bugfix - TJamShellList: Multithreaded access has been improved for a smooth loading of thumbnails.
  • Bugfix - TJamShellList: Like in Windows Explorer, files and folders are now sorted separately.
  • Bugfix - Windows XP: The TJamShellList will now refresh when file system changes occur on Windows Desktop. Deleting elements via the context menu now triggers the "OnOperation" event.
  • ItemIdList: Using the new "IItemIdist.GetPropertyValue" method it is now possible to read metadata from the property system of a shell item.
  • Several minor bugfixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 10.4 (Apr 13, 2017)

  • Support for RAD Studio 10.2 Tokyo has been added.
  • TJamShellBreadCrumbBar: The component now offers an optional refresh button that reloads the current contents of controls linked via a TJamShellLink. The button is part of the "Visible Panes" property.
  • TJamShellBreadCrumbBar: Using the "ShowHint" property you can control whether tooltips shall be displayed for the buttons.
  • TJamShellBreadCrumbBar, TJamShellHistoryPane: The components now fully support the "StyleElements" property.
  • TImageFromImageList: Transparency in images is now supported.
  • TJamPathLabel: The path is now resolved asynchronously to avoid potential delays in the main thread when setting its "Path" property to a slow or not reachable resource.
  • TJamFileList: When changing the view style of a non-sorted list, the order of items is now kept instead of resorting the list alphabetically by the paths of the items.
  • TJamFileList: It is now possible to insert an item at a chosen position by using the new parameter "pPos" in the "Add" method.
  • TJamExplorerBrowser: The new "OnNavigationPending" event is called before the control navigates to a new location. Use the "pCancel" parameter to suppress the navigation.
  • Breaking change: TShellBrowser.Next() now raises exceptions not only for internet errors, but for all errors, e. g. ERROR_PATH_NOT_FOUND. This allows for better error handling than returning "false"; it also distinguishes between no more objects (returns false) and error (raises exception).
  • Breaking change: The "OnBeforeShellCommand" event in TShellBrowser and most of the controls has a changed parameter list: The "Items" parameter has been changed to the type "TMultiObjects", which is a list of IItemIdLists.
  • Breaking change: The system type "_tagPropertyKey" that was part of the event handler signatures for "OnBeforeShellColumnChanged" and "OnAfterShellColumnChanged" has been replaced by "TShellColumnID". The types are compatible, but you might need to update the event handlers respectively.
  • Bugfix - TJamShellBreadCrumbBar: When navigation breadcrumbs use the keyboard, an empty dropdown menu might have popped up at the last breadcrumb item. This is no longer the case.
  • Bugfix - TJamShellBreadCrumbBar: The "AbsoluteItemIdList" or "Path" property now respects the range defined by "RootedAt"/"RootedAtFileSystemFolder". It is not possible to display a path that does not fall within this range.
  • Bugfix - TJamShellBreadCrumbbBar: The background color has been corrected for the Windows 7 classic theme.
  • Bugfix - TJamShellList: The "Filter" property now also works for the Windows special folder "SF_RECENT", that collects recently used files and folders as links. Please note: The filter applies to the destination files, not the links.
  • Bugfix - TJamShellList, TJamFileList, TJamDriveList, and TJamShellTree: The Windows "Explorer" theme can be deactivated by setting the "UseSystemStyles" property to false.
  • Bugfix - TJamShellList: The details for items in "Quick Access" are now loaded correctly on Windows 10 version 1607 (anniversary update).
  • Bugfix - TJamShellList: The list is resorted once a notification of a file change is received. For example, the order of elements is adjusted if the list is sorted by modification date and the respective value of a file changes.
  • Bugfix - TJamFileList: The "InvokeCommandOnSelected" method works again as expected with the shell action "default". Also "OnBeforeShellCommand" is called as expected.
  • Bugfix - TJamFilePreview: The preview of TrueType fonts has been corrected.
  • Several minor bugfixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 10.3.1 (Mar 17, 2017)

  • TJamPathEdit: When the "FolderMode" is activated, the autosuggest/autocomplete feature that assists users when typing paths is restricted to folders and doesn't suggest files anymore.
  • Setup: Custom configurations of the BDSCOMMONDIR variable are now respected when installing ShellBrowser.
  • On Windows 8 and later, the ShellBrowser Components will now gather and present a default context menu if the context menu is to be displayed for many items (> 200). This fixes a major delay that could occur before the context menu was displayed.
  • TJamShellBreadCrumbBar: The "StyleElements" property is now supported.
  • TJamSystemShellView, TJamExplorerBrowser: Selecting items programmatically no longer automatically scrolls the selected item into view. This can be accomplished separately by calling "EnsureVisible".
  • TJamShellList, TJamFileList: When editing a filename, only the name of the file is selected, not the extension.
  • TJamFilePreview: The automatic fallback that was applied if PDF files could not be previewed using the registered preview handler has been removed. It caused a non-controllable error message for corrupt PDF files.
  • TJamFilePreview: The "Caption" property is now available as public property. Although still used by the component itself to display the state of the component, it can now be set in an attached "OnLoadedPreview" event handler to display a custom message. The "Touch" property is now available in the object inspector of the IDE.
  • TJamDropFiles: The "KeyState" parameter of the drag-and-drop events of TJamDropFiles now includes information about the mouse button that was pressed.
  • Bugfix - TJamShellTree: An access violation that might have occurred when setting the "RootedAtFileSystemFolder" property at design time has been fixed.
  • Bugfix - TJamFilePreview: Adobe Acrobat's preview handler doesn't work correctly when called asynchronously - previewed files could not be deleted or weren't displayed correctly. ShellBrowser will load the files in the main thread again. A delay that might have occurred when releasing the component has been fixed.
  • Bugfix - TJamShellList: A set filter is no longer applied to the contents of the "Favorites" folder in Windows 7 and 8.
  • Bugfix - TJamFileList: Column "Rating" is now filled correctly for all items in the list.
  • Bugfix - TJamFileList: The "EShellBrowserError" that was raised if an item representing a non-existent path was selected has been fixed.
  • Bugfix - TJamExplorerBrowser: A high DPI scaling issue concerning the size of the internal BreadcrumbBar has been fixed.
  • Bugfix - TJamShellHistoryPane, TJamExplorerBrowser, TJamShellBreadcrumbBar: An access violation that might have occurred when using one of these components in a library has been fixed. It was caused by the missing initialization of gdi+ under these circumstances.
  • Bugfix - TJamShellBreadcrumbBar: A "Resource is in use" error that occurred when selecting an item in trimmed state (i.e. some items have been collapsed to "<<") has been fixed.
  • Bugfix - TJamShellBreadcrumbBar: Several minor painting and scaling issues have been fixed. A memory leak occurring on Windows 7 has also been fixed.
  • Bugfix - TJamSystemShellView: An internal message displayed when the "CreateDir" method was called with a name for the new directory is no longer shown.
  • Bugfix - TJamDropFiles: Dropping files from TotalCommander and possibly other drag and drop sources stopped working with v10.3. This has been fixed again.
  • Several minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 10.3 (Dec 17, 2016)

  • The new component TJamShellSearchEdit contains the search edit field of Windows Explorer. It supports a "ShellLink" and can be connected to the TJamShellList, TJamSystemShellList or TJamExplorerBrowser to define the scope and present the result of the search. For TJamExplorerBrowser and TJamShellBreadCrumbBar, it can be activated in the "VisiblePanes" property.
  • The new component TJamShellHistoryPane tracks the history of components connected via ShellLink. It automatically adjusts to mirror the look of the various Windows versions.
  • TJamShellList, TJamDriveList, TJamFileList: The context menu of the header in ViewStyle "vsReport" now contains a "More..." menu item displaying a dialog where the user can select available columns, as known from the Windows Explorer.
  • TJamShellTree, TJamShellList, TJamDriveList, TJamFileList: If "OleDragDrop" is enabled, the new "OnBeforeShellDrag" can be used to inspect or change the IDataObject that is passed in the drag-and-drop operation. Setting it to nil will suppress the drag-and-drop operation.
  • TJamDropFiles now also supports non-file-system objects like emails or email attachments. If the "UseTemporaryFiles" property is set, the objects are stored as temporary files that are automatically deleted when the control is released.
  • The TJamShellLink component can now be used to connect a FileList with e.g. a TJamFilePreview or a TJamThumbnail, so that the file selected in the FileList is automatically displayed in the connected control.
  • TJamShellFilePreview: The loading and unloading of the preview is now done asynchronously. Additionally, a small memory leak that occurred for a subset of PreviewHandlers from the system has been be fixed.
  • TJamShellBreadCrumbBar:
  • Users can now include a TJamShellSearchEdit and/or a TJamShellHistoryPane via the new "VisiblePanes" property.
  • The new "RootedAt" and "RootedAtFileSystemFolder" properties can be used to customize the root of the control.
  • Keyboard navigation in the BreadCrumbBar is now fully functional.
  • Painting of the control has been improved and fixed on the various Windows versions.
  • The exception that occurred when trying to use more than one BreadcrumbBar in a project has been fixed.
  • TJamShellTree, TJamShellBreadcrumbBar: The "OnResize" event has been published, so it is available in the Object Inspector of the IDE. The ShellTree also provides the "RowSelect" property.
  • TJamShellList, TJamFileList:
  • If the "OnThumbnailUpdated" eventhandler already assigns a custom thumbnail to an item, no additional background querying of the system's thumbnail takes place.
  • Breaking change: Thumbnails that are replaced in this event handler are now released automatically.
  • TJamShellList, TJamFileList: The "Groups" and "GroupView" properties are now available. They can be used to add custom grouping of the lists' contents.
  • TJamShellList: Some actions that might block the application (e.g. displaying information for unconnected net drives) are now executed asynchronously.
  • TJamShellTree: There is now more space between the checkbox and a treenode's icon.
  • TJamPathLabel: Users can add a checkbox to the component with the new "ShowCheckBox" property. It comes with the additional property "Checked" and the event "OnCheckStateChanged".
  • The C++ sample project in SamplesC++ BuilderExplorer has been merged and is now included in SamplesJamExplorer sharing the main.dfm with its Delphi counterpart.
  • TJamShellList, TJamFileList, TJamDriveList: When checkboxes are displayed, pressing the space key now toggles the checkstate of all selected items instead of the first item only.
  • Bugfix - TJamFolderCombo: The handling of a large number of shell change notifications has been improved.
  • Bugfix - TJamShellTree: The processing of rename change notifications has been corrected. Under some circumstances, renaming led to duplicated nodes in the tree.
  • Bugfix - TJamShellTree: When selecting nodes using the keyboard, connected controls were only updated with a slight delay. This can be avoided now by setting the "ChangeDelay" property to 0.
  • Several minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 10.2 (Dec 17, 2016)

  • Support for RAD Studio 10.1 Berlin has been added.
  • TJamShellBreadcrumbBar: the new "FileSystemOnly" property allows to display only elements that have a file system path.
  • TJamShellBreadcrumbBar: The popup menus that are used to display the subfolders of an item in the BreadcrumbBar are now scrollable.
  • TJamSystemShellView, TJamExplorerBrowser: By using the property "OleDragDrop", users can turn off the possibility to drag files into the control.
  • TJamSystemShellView, TJamExplorerBrowser: The new properties "PopupMenu" and "BackgroundPopupMenu" can be used to assign custom context menus to items and to the background of the component respectively.
  • TJamExplorerBrowser: On Windows 10 the forward and backward buttons now look like in Windows Explorer.
  • TJamExplorerBrowser: The new "InvokeCommand" is a focus-dependent version of "InvokeCommandOnSelected"/"InvokeCommandOnFolder". If the focus is on the navigation tree, the command is applied there. If not, it refers to the selected element of the list part of the control.
  • TJamShellTree: The "OnCreateNodeClass" event is now published and visible in the object inspector.
  • TJamShellTreeNode: The "TextStyle" property allows to set a tree node in bold or italic.
  • TJamDriveList: when adding elements via the "AddEditable" method it's not possible anymore to add more than one editable item at the same time.
  • TJamPathEdit: On Vista and later Windows versions TJamPathEdit now uses the new dialog to select a file when the respective dialog button in the component is clicked.
  • TJamDriveList: The new "OnListItemAction" event notifies whether the path to be displayed has been resolved successfully or unsuccessfully. If the "CheckIfExists" property is set, invalid list items are removed automatically.
  • The "EShellBrowserError" that is used to indicate errors inside ShellBrowser components now inherits from EOSError.
  • TJamItemIdList: The WindowsPointer is now resolved lazily. This means that the existence of a path or the validity of an ItemIdList is not checked when the ItemIdList is created but only when it is required (e.g. when calling TJamItemIdList.IsInvalid).
  • Bugfix - TJamShellTree: The special folder "Documents" was sometimes added a second time beneath "This PC" on Windows 10. This has been resolved.
  • Bugfix - TJamShellBreadCrumbbar: Several painting issues have been fixed. The drop-down menu of "This PC" is now sorted like in Windows Explorer.
  • Bugfix - TJamDriveList: An EInvalidOperationException that occurred when double-clicking a non-existing path in the DriveList is now suppressed.
  • Bugfix - TJamShellTree, TJamDriveList: Checking elements wasn't possible via mouse input, when the ShellTree displayed a horizontal scrollbar on Windows Server 2008. This has been fixed. The click area of checkboxes in the DriveList has been readjusted.
  • Bugfix - TJamShellList, TJamFileList, TJamDriveList: Default column widths now respect system scaling.
  • Bugfix - TJamFilePreview: Problems with Foxit PreviewHandler have been resolved. Issues regarding the specification of the "Path" property at program start or in designer have been fixed.
  • Bugfix - TJamExplorerBrowser: The "CreateDir" method has been fixed to name the new directory correctly.
  • Bugfix - TJamShellTree: The ShellTree wasn't reliably refreshed automatically when an iPhone was attached to or detached from the machine. This now works correctly.
  • Bugfixes have been incorporated in the API help.
  • Several minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 10.1 (Dec 17, 2016)

  • TJamExplorerBrowser: The new component "TJamExplorerBrowser" representing a configurable Explorer pane is now available. See new sample project (http://www.jam-software.com/shellbrowser_delphi/samples.shtml) for more information.
  • Implemented Columns feature:
  • Added property Columns which makes it possible to add, remove, rename, sort and change the width of columns in the view style "details".
  • Option to create a TStringList of only visible or all available column captions in the current folder.
  • Added property ColumnHeader to influence the visibility of the column headers.
  • Implemented CheckSelect feature:
  • Added property AutoCheckSelect to display checkboxes for each item.
  • Option to manually check or uncheck items.
  • Option to list checked items.
  • Added property EmptyText to show a user-defined text when view is empty.
  • Implemented grouping feature:
  • Group items according to different attributes.
  • Added "MoveBack()" and "MoveForward()" methods to navigate the history of visited folders. Navigation by additional mouse thumb keys is also supported.
  • Added new events:
  • OnNavigationImpossible: Occurs when e.g. a corrupted library should be opened.
  • OnNavigationCompleted: Occurs when a path was successfully opened.
  • OnSelectionChanged: Occurs when the selection of items has changed.
  • OnDefaultAction: Occurs when the user performs a double click or hits the enter key.
  • Added property IconDimensions to let the view show icons in specific pixel dimensions. This property replaces the "IconSize" property, that is still available but not visible in object inspector anymore.
  • The performance of the "SmartRefresh()" method has been improved.
  • Implemented IDE property value editor for property Path. Users can now select a new path using a "browse for folder" dialog.
  • It is now possible to set a new installation directory during setup. Users can now keep different versions of ShellBrowser.
  • TJamShellList, TJamShellTree: The "OnShellDragOver" event can now be used to support drag-and-drop for items that aren't supported by the shell. You can now implement custom behavior for certain actions, e.g. if a PDF file is dropped on another PDF file. See http://www.jam-software.com/shellbrowser_delphi/online_manual/EN/TJamShellList_OnShellDragOver.html for an example.
  • Please note that this might be a breaking change of your existing functionality. Changing the CopyMode parameter to a different value than cmNone will treat and visualize items as valid drop targets. See http://www.jam-software.com/shellbrowser_delphi/online_manual/EN/TJamShellList_OnShellDragOver.html for details.
  • TJamShellList, TJamShellTree: Elements in the "Control Panel" item are now handled like files and are opened externally instead of navigating them internally.
  • TJamShellList, TJamFileList, TJamDriveList: The "OnCreateItemClass" event is now published and visible in the object inspector.
  • TJamSystemshellView: The "IconSize" property has been replaced by a new "IconDimensions" property that enables users to specify the size of icons in pixels. Setting the deprecated "IconSize" property will automatically map to the new property. However querying the IconSize is not possible anymore, so this might be a breaking change.
  • TJamShellBreadCrumbBar: The component will refresh itself automatically with the new "AutomaticRefresh" property when a displayed folder is deleted or renamed.
  • TJamShellTree: The performance of expanding folders containing a large amount of subfolders has been improved.
  • Bugfix: A potential Access Violation occurring on unloading the ShellBrowser components has been fixed.
  • Bugfix - TJamFilePreview: Setting the "Path" property at designtime now works as expected. Assigning a new parent of the TJamFilePreview at runtime will keep the currently previewed file. Repainting issues especially concerning MSG files have been fixed.
  • Bugfix - TJamShellList: Copying and pasting files using the context menu now works correctly (also via RDP). It is no longer possible to move the "Name" column from the first position
  • Bugfix - TJamThumbnailImage: A cropping issue depending on the size of the component has been fixed.
  • Several minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 10.0 (Dec 17, 2016)

  • Support for RAD Studio 10 Seattle has been added.
  • The compatibility with Windows 10 has been improved.
  • The support for Delphi 7 to XE2 has been dropped in V10. V9 will be maintained in the future and still support Delphi 7 to XE2. However, no new features will be added, only bugfixes will be included in V9.
  • A set of standard actions enabling users to perform shell operations to our controls or to show dialogs without writing code has been added.
  • Drag & drop improvements: For TJamShellList and TJamShellTree an event OnShellDragOver has been aded and the value set in the property CopyMode is now visualized in the drag cursor.
  • A few minor issues with column handling in TJamShellList and TJamFileList have been fixed.
  • TJamPathLabel now shows the corresponding icon left of the path as well as the Explorer context menu when right-clicking. These new features can be turned off using the new properties ShowIcon and ShellContextMenu.
  • When the window handle of the TJamShellTree is being recreated multiple roots are now added again automatically. This applies if the property MultipleRoots was set to mrMultipleRoots.
  • The packages for RAD Studio XE3 and XE4 have been split into designtime and runtime package, as this was the case already for XE5 and later. This is a breaking change if you have deployed ShellBrowser as runtime package or use packages that have a dependency on the ShellBrower package.
  • The AutoAdjustColumnWidths method that can be used for the TJamShellList and TJamFileList to automatically adjust column widths is now also applied in ViewStyle vsList.
  • Several minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 9.3.3 (Dec 17, 2016)

  • Bugfix - TJamShellChangeNotifier: A possible internal stack overflow is now prevented.
  • Bugfix - TJamShellList: When deleting items to the recycle bin certain file types were re-added to the list. This issue has been fixed.
  • Bugfix - TJamShellList: Inserting items could cause an Access Violation if the "AutoSize" property of the ShellList was set. This is no longer the case.
  • Bugfix - TJamSystemShellView: Setting the "ShellContextMenu" property to false had no effect. Now the display of the shell context menu will be suppressed when the right mouse key or the context menu key is pressed.
  • Bugfix - TJamFilePreview: Display problems occuring when the currently displayed file was deleted have been fixed.

New in ShellBrowser Components Delphi Edition 9.3.2 (Dec 17, 2016)

  • Bugfix - TJamFilePreview: Display problems for some file types that were introduced in v9.3.1 have been fixed.
  • Bugfix - TJamShellBreadCrumbbar: Under certain circumstances (Delphi version below XE2, runtime themes enabled) the seperator of the BreadCrumbBar was displayed as an arrow pointing downwards. This has been fixed by using the default breadcrumb style in these cases.
  • Bugfix - TJamShellChangeNotifier: The "Recursive" property is now kept and applied when set at designtime.
  • Bugfix - TJamShellList: The painting of thumbnails of very small images has been fixed.

New in ShellBrowser Components Delphi Edition 9.3.1 (Dec 17, 2016)

  • TJamFileList: The captions of items are set only when the items are displayed. This improves the performance when adding many items to the list.
  • TJamShellList, TJamFileList, and TJamDriveList: The "DefaultColumnWidth" property was added. It allows to set the column width that is applied when the "ViewStyle" property is set to vsList.
  • Bugfix - General: A possible error occurring unpredictably in a system library called by method "GetIdListFromPath" is now prevented.
  • Bugfix - TJamShellTree: It is again possible to set the "SelectedFolder" property in designer.
  • Bugfix - TJamFileList: The current SortColumn that is applied in ViewStyle vsReport is not lost after changing the ViewStyle to something different.
  • Bugfix - TJamShellList, TJamFileList: When setting the "ViewStyle" property to vsIcon while the "Thumbnails" property is true, now correct icons are displayed again.
  • Bugfix - TJamShellList: The stored sort order for a special folder in details view is now restored correctly when re-opening the folder after having displayed a different folder in a different viewstyle.
  • Bugfix - TJamShellList: The "OnOperation" event is now called, when messages are copied from Outlook to a folder using copy-and-paste.
  • Bugfix - TJamShellList: If the folder that is currently listed is renamed, the list automatically displays the renamed folder.
  • Bugfix - TJamFilePreview: MSG files are now displayed correctly when a VCL theme is activated.
  • Bugfix - TJamFolderCombo: The auto suggestion while typing a path now only suggests file system paths but omits the virtual namespace.
  • Bugfix - TJamShellBreadCrumbBar: The "Color" property is now supported.
  • Bugfix - TJamShellBreadCrumbBar, TJamShellCombo: Both components now scale correctly at dpi scalings other than 100%.
  • Bugfix - TJamShellTree: If a displayed folder or file is renamed the concerned subtree is resorted. Recently created folders are also displayed at the correct alphabetical position.
  • Bugfix - TJamShellTree: The "AutomaticRefresh" property now works for multiple roots, not only for the root that was added last.
  • TJamSystemShellView: 2 new methods were added. "DeselectAll()" will clear the selection. "DeselectItem(Index: integer)" will deselect the item with the given index.
  • Bugfix - TJamSystemShellView: If "One-Click" opening of elements was activated in Windows Explorer, the SystemShellView did not consider the clicking position when opening files or folders with a single click. This has been corrected.
  • Bugfix - TJamSystemShellView: Expanding the selection of files that had been added by drag-and-drop by pressing Shift+Up/Down was not working as expected, the selection not starting with the pasted files but the former selection. A bugfix to correct this behavior has been integrated.
  • Several minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 9.3.0 (May 8, 2015)

  • ShellBrowser Delphi now supports RAD Studio/Delphi XE8.
  • TJamShellList, TJamFileList, TJamDriveList, and TJamShellTree: The "Touch" property hs been made available for Delphi XE2 and higher to support touch gestures on Windows 8.
  • TJamShellList, TJamFileList, TJamDriveList, TJamShellTree, and TJamShellCombo: The inherited "StyleElements" property is now available.
  • TJamShellTree, TJamShellList: By turning off the new "ShowShellNames" property, potentially localized folder and object names will be replaced by file system names.
  • TJamItemIdList: Enhanced performance of "Equals" and "CompareTo" methods. TJamSystemShellView.Selected and sorting operations in TJamShellTree perform better now.
  • TJamSystemShellView: Depending on Windows Explorer settings SystemShellView now supports one-click opening of folders and files.
  • TJamSystemShellView: The ViewStyle "vmTile" can be configured with the new "ExtendedTiles" property.
  • TJamShellList: A short delay has been added before the ShellList informs controls linked with a TShellLink on the selection change. This solves the problem that the DoubleClick event for the ShellList was not recognized if a TJamFilePreview was linked and interpreted as two single clicks instead.
  • TJamShellList: If the "AutomaticRefresh" property is true, the ShellList will now also reflect folder changes. In preceding versions only file changes triggered the reloading of the column contents.
  • TJamShellList: The "CheckBoxes" property is now supported without the need to assign a ShellLink.
  • TJamShellList: The captions of items are set only when when the items are displayed. This improves the performance of loading folders containing a huge amount of items.
  • TJamShellTree: It is now possible to set the checkstate to ssDisabled in the "OnAddFolder" event. In the previous version the value was redetermined later.
  • Bugfix - TJamItemIdList: The implementation of the "IsFolder" method is now returning false for e.g. Office documents and PDF files.
  • Bugfix - TJamDriveList: A painting issue with AutoSize column has been fixed.
  • Bugfix - TJamFilePreview: Deleting the file that is currently displayed in a TJamFilePreview component will refresh the component instead of raising an exception.
  • Bugfix - TJamFolderCombo: Network drives that map to a folder are now included if the "IncludeDrives" property is activated.
  • Bugfix - TJamPathEdit: The background of the "Browse for Folder" button is now transparent.
  • Bugfix - TJamShellCombo: The "Color" property now works as expected.
  • Bugfix - TJamShellList: The attribute "I" (= not content indexed) is now displayed in the "Attributes" column.
  • Bugfix - TJamShellList: Enabling checkboxes at designtime works as expected at runtime again.
  • Bugfix - TJamShellList: Pressing "Enter" for the current selection now calls the "OnBeforeShellCommand" once for every file in the selection.
  • Bugfix - TJamShellList: If the "AutomaticRefresh" property is true, the "Filter" property is now respected when receiving and applying shell notifications of file creations or modifications. Likewise the "OnAddItem" is called whenever a file is added or modified. This ensures that all filtering options are re-evaluated when a file changes.
  • Bugfix - TJamShellTree: Checkboxes are now painted correctly when using Delphi themes.
  • Bugfix - TJamShellTree: An access violation has been fixed that occurred when accessing the "FullPath" property while custom drawing ShellTree nodes on Windows XP.
  • Bugfix - TJamShellTree: When files were shown in the ShellTree, "Control Panel" sometimes appeared several times. This has been fixed.
  • Bugfix - TJamSystemShellView: The context menu of the "Recycle Bin" has been corrected: "Restore" and "Properties" now work as expected. However, as a side effect of this bugfix the Recycle Bin's context menu is missing a default entry now. The "Open with" context menu item now works as expected.
  • Bugfix - TJamSystemShellView: The "ViewStyle" property can now be set in "OnBeforeFullRefresh" without an exception occurring.
  • Bugfix - TJamDisconnectDialog: The "OnClose" event is now raised when the dialog is closed on all Windows versions.
  • Bugfix - Fixed C++ Builder installation issues.
  • Several minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 9.2.0 (Oct 10, 2014)

  • ShellBrowser Delphi supports RAD Studio/Delphi XE7.
  • TJamShellList: The network folder is now filled asynchronously.
  • TJamSystemShellView: The new property "IconSize" has been added. It facilitates the configuration of the displayed size of icons from small to extra large independently of the "ViewStyle" property.
  • TJamShellBreadCrumbBar, TJamShellCombo: Special folder names like "My PC", "Downloads" etc. are now recognized as input and are subject to auto-completion.
  • TJamShellList, TJamFileList: When editing a file name only the file name is selected, not the extension.
  • Bugfix - TJamShellBreadCrumbBar: The correct folder icons in the dropdown list are now fetched asynchronously.
  • Bugfix - TJamShellBreadCrumbBar: The component showed a wrong path in edit mode when a BreadCrumbItem had just been expanded. This has been fixed.
  • Bugfix - TJamBrowseForFolder: If the "Options" property contains "bfBrowseIncludeFiles", the small folder selection dialog will be shown, since the other one cannot show folders and files at the same time.
  • Bugfix - TJamShellList: Renaming a file no longer clears the displayed values in the details view anymore.
  • Bugfix - TJamShellTree: Scrollbars now paint correctly on Windows XP.
  • Bugfix - TJamShellTree: The "UseSystemFont" property is set to "false" automatically when the "Font" property is changed.
  • Bugfix - TJamShellTree: Exceptions that may occur when destroying the component while the network folder is still being expanded are now handled.
  • Bugfix - TJamShellTree: A new folder is not shown twice in the ShellTree anymore after being renamed.
  • Bugfix - TJamSystemShellView: Setting the "ShowHidden" property to "false" now also works for folders.
  • Bugfix - TJamSystemShellView: The "ViewStyle" property is now correctly synchronized when changing the view via the context menu.
  • Bugfix - TJamSystemShellView: A possible stack overflow error that could be triggered by setting the "Filter" property in "OnBeforeFullRefresh" is now prevented.
  • Bugfix - TJamSystemShellView: Copy and paste operations of folders inside zip archives now work as expected.
  • Several minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 9.1.3 (Aug 14, 2014)

  • Bugfix - TJamShellList: This version fixes an issue that was introduced with V9.1.2. Setting the viewstyle in a resorted ShellList raised an ArgumentOutOfRange exception.

New in ShellBrowser Components Delphi Edition 9.1.2 (Aug 14, 2014)

  • TJamShellBreadCrumbbar: The control now supports the "UseSystemFont" property that automatically applies the default system font
  • Bugfix - TJamShellBreadCrumbbar: The control will now always accept paths ending on a backslash instead of staying in edit mode under certain circumstances
  • Bugfix - TJamShellBreadCrumbbar: Painting problems in Windows XP have been fixed
  • Bugfix - TJamShellBreadCrumbbar: The "MenuItemClick" event is now raised
  • Bugfix - TJamShellBreadCrumbbar: The control stays in edit mode when the window is resized
  • Bugfix - TJamShellBreadCrumbbar: The control is resized correctly when the font changes at runtime
  • Bugfix - JamItemIdList: The "DisplayName" property now returns correct values on Windows XP
  • Bugfix - TJamSystemShellView: Using context menu commands or invoking them via keyboard on one or more selected elements does not change the current folder of the control anymore
  • Bugfix - TJamShellTree: Renaming a drive will now work as expected, even if the drive is set as root node of the tree
  • Bugfix - TJamShellTree: Performance issues occuring when the value of the "MultipleRoots" property was changed at runtime have been resolved
  • Bugfix - TJamShellList: When a zip archive is opened and the sort column of the previously displayed folder is not available, the zip archive will now be sorted by name
  • Bugfix - TJamDriveList: The current sort order is now maintained after reloading instead of resorting by name
  • Some minor fixes and improvements have been incorporated

New in ShellBrowser Components Delphi Edition 9.1.1 (Jul 22, 2014)

  • TJamShellList, TJamFileList: Custom columns do not need to be placed at the end anymore. Using the "Index" property you can insert them anywhere after the first column.
  • TJamShellListList, TJamFileList: Custom columns are now included in the header context menu, so it is possible to hide and redisplay them.
  • TJamShellTree: Selecting a link to a folder now opens the link destination in a connected TJamShellList component.
  • TJamShellBreadCrumbBar: The dropdown list of the control now contains the same entries as the Windows Explorer (i.e. paths that have been typed before). We also provided the possibility to add custom locations to this list by using the method TJamShellBreadCrumbBar.SetCustomDropDownList.
  • TJamShellBreadCrumbBar: Environment variables can now be entered into the component, they are resolved correctly.
  • Bugfix - General: A bug that made context menu operations stop working asynchronously was fixed.
  • Bugfix - TJamShellList, TJamFileList: SubItems are accessible again, when the "OnAddItem" event is implemented and the list is in report view.
  • Bugfix - TJamShellList, TJamFileList: Setting "UseSystemFont" to true doesn't have an effect on property "RowSelect" anymore.
  • Bugfix - TJamSystemShellView: Selecting many files at once or adding files to the selection will not slow down the list anymore.
  • Bugfix - TJamSystemShellView: Creating folders on cloud directories now works as expected, the item is automatically set to edit mode after creation.
  • Bugfix - TJamSystemShellView: The method "SelectedFilesSize()" does not throw an exception anymore when nothing is selected.
  • Bugfix - TJamSystemShellView: A possible StackOverflow exception occurring with a scaled UI is prevented.
  • Bugfix - TJamSystemShellView: Double-clicking a link to a folder in "Recent Places" will now open the linked folder.
  • Bugfix - TJamSystemShellView: The property "Caption" of a TJamSystemShellItem in the OnAddItem event handler was empty or wrong for drive and recycle bin items. This has been fixed.
  • Bugfix - TJamShellList: A file that is added per drag and drop is now automatically selected in the list.
  • Bugfix - TJamShellList: When changing the view the selection is retained.
  • Bugfix - TJamShellList: The current widths of columns is stored and reapplied when changing the view and resetting it to report.
  • Bugfix - TJamShellTree: The property "SpecialFolder" is now correctly applied at runtime.
  • Bugfix - TJamShellTree: Expanding the network node is now working as expected when the property "MultipleRoots" is set to "mrAuto".
  • Bugfix - TJamShellTree: Opening the desktop in the "Favorites" node now opens the desktop folder in a connected control like TJamShellList.
  • Bugfix - TJamShellTree: Filtering now works correctly on renamed files.
  • Bugfix - ShellBrowser: A problem with icon transparency in the context menu has been fixed.
  • Bugfix - TJamShellBreadCrumbBar: Leaving the BreadCrumbbar by e.g. clicking on the Window title will now end the mode that opens subfolder menus automatically by only moving the mouse over an item.
  • Several minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 9.1 (May 14, 2014)

  • Support for RAD Studio/Delphi XE6 has been added.
  • TJamPathEdit: A new property "ShowImage" has been added. It controls whether the "..." button displays a folder icon instead of dots.
  • Breaking Change - TJamShellTree: When using the property "MultipleRoots" you can now easily configure the TJamShellTree to include root nodes for "Favorites", "Network" and "Libraries".
  • "MultipleRoots" is now a tristate property - "mrSingleRoot" will only display one root for the tree. With the new value "mrAuto" TJamShellTree automatically applies Windows Explorer settings. Using "mrMultipleRoots" you can freely determine the root nodes via code.
  • TJamShellTree: The network folder is now enumerated in the background. Blocking delays that occurred when accessing network paths have been eliminated.
  • FJamFilePreview: Registered PreviewHandlers are now loaded "out of process". This avoids problems regarding bitness inconsistencies between the system, the PreviewHandler and the application hosting the preview (this prevents failures in previewing PDF files with Adobe Acrobat PreviewHandler on Windows 8/64bit in x64 applications).
  • Bugfix - TJamSystemShellView: Opening an item under "Saved Searches" now opens the saved search, instead of bringing up "Pathname not valid".
  • Bugfix - TJamShellBreadCrumbBar: The initial height is now calculated correctly.
  • Bugfix: An application running with elevated rights (behind the UAC) in some cases opened the CD/DVD tray if no media was present in the drive.
  • SF_UNKNOWN has been added to the TJamShellFolder enumeration, it is no longer an alias for SF_FILESYSTEMFOLDER. It is returned in case a folder is not a known special folder and does not have a file system path.
  • Breaking Change: Moved class TJamPathList from unit "ShellBrowser" to unit "JamSelectionList".
  • Breaking Change: Extracted component TJamShellChangeNotifier to new unit "JamShellChangeNotifier".
  • Several minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 9.0.3 (Feb 13, 2014)

  • JamShellBreadCrumbBar: The "Font" property is now supported.
  • JamFilePreview: Added support for some event handlers. Note that currently these handlers are only triggered if the event is not handled by the PreviewHandler already.
  • Bugfix - JamShellList and JamShellTree: Under certain circumstances (depending on Delphi version/Windows version/Windows theme) checkboxes were not visible anymore. This issue has been resolved.
  • Bugfix - JamShellList: When a file is modified, the ShellList automatically updates the changed values (such as size, modification date, attributes, thumbnail).
  • Bugfix - JamShellTree: Drive nodes do not disappear anymore on Windows 8.1 when drives are added/removed at runtime (e.g. by attaching a USB stick)
  • Bugfix - JamThumbnailImage: The "Path" property keeps track of the displayed file if the component is synchronized via a ShellLink control.
  • Bugfix - ShellBrowser controls can now be added to a Win64-only platform project on Delphi XE5.
  • Bugfix - JamFilePreview: The preview of an image is now updated once the image file is changed in the background.
  • Bugfix - JamPathEdit: Setting the "Enabled" property to "false" will not discard the control's color anymore.
  • Bugfix - JamShellBreadCrumbBar: The items in the dropdown list of a breadcrumb item are now explicitly sorted.
  • A few minor fixes and improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 9.0.2 (Dec 30, 2013)

  • Improved support for PDF files in the JamFilePreview component.

New in ShellBrowser Components Delphi Edition 9.0 (Oct 25, 2013)

  • Support for RAD Studio/Delphi XE5 has been added.
  • TJamShellBreadCrumbBar: A new component adding the "breadcrumb" address bar known from Windows Vista and higher.
  • TJamFilePreview: A new component adding the preview pane known from the Windows Explorer. It enables users to view file contents without opening the files.
  • TJamDriveList: The column "file system" is now available.
  • TJamDriveList: The header context menu enabling users to choose visible columns is now integrated.
  • TJamDriveList/TJamFileList/TJamShellList: A new property "ShowHeaderContextMenu" to en-/disable the header contextmenu has been added.
  • TJamDriveList/TJamFileList/TJamShellList: A new event "OnAfterShellColumnChanged" informs when columns have been added or hidden.
  • TJamShellList, TJamFileList, TJamDriveList, TJamShellTree: A new event "OnSort" is triggered when sorting is started or ended, as indicated by the parameter "sortStage" (ssBeforeSort, ssAfterSort).
  • TJamShellList: Custom columns that were added by calling "SetColumnVisibility" are included in the header context menu, too
  • TJamPathEdit: The option to add a new folder via the dialog is now included in the foldermode.
  • TJamDropFiles: Vista-style drag icons and hints are supported.
  • TShellControlHelper: class function "AssociateIconWithExtension" has been added, facilitating the creation of the necessary registry entries to associate a file icon to a file type.
  • TJamSystemShellView: the default viewstate is now "Auto"
  • C++ Builder 2006 is no longer supported.
  • Bugfix: Context menu operations do not block the UI thread anymore (this behavior occurred in Windows Vista and later versions)
  • Bugfix: A painting problem concerning thumbnails of .JPG files in TJamShellList has been fixed.
  • Bugfix: The TJamShellTree is now invalidated at the end of a realignment process, avoiding the appearance of a black area.
  • Bugfix: Checking a node in TJamShellTree with more than 500 children no longer raises an exception.
  • Bugfix: The new structure of node "MyPC" on Windows 8.1 provoked an exception in TShellBrowser and TJamShellList.
  • A few minor improvements and fixes have been incorporated.

New in ShellBrowser Components Delphi Edition 8.1.3 (Jun 26, 2013)

  • Support for RAD Studio/Delphi XE4 has been added.
  • JamShellList, JamShellTree, JamFileList, JamSystemShellView: Verb "copypath" is now supported in InvokeCommandOnSelected(). If used, the path of the currently selected item(s) is copied to the clipboard.
  • Bugfix - Problems concerning the transparency of components (especially in Thumbnails view) using VCL styles have been fixed.
  • Bugfix - JamShellTree: The "OnCompare" event is now fired and can be used to change the sorting.
  • Bugfix - JamShellList: The "OnOperation" event is now fired for deleting and pasting files.
  • Bugfix - JamShellList: The "Del" key is working again when "AutomaticRefresh" is true. This error occurred in Windows Vista and later versions.
  • Bugfix - JamSystemShellView: Column headers are only visible in Details view, even if the ViewStyle is determined automatically.
  • JamFileList: Boolean property TJamSearchOptions.FilesOnly is marked obsolete and is replaced by TJamSearchOptions.FilesAndFolders with the possible values ffFilesOnly, ffFoldersOnly, ffFilesAndFolders.
  • Breaking change - JamShellList: OnThumbnailUpdated now provides the list item instead of the ImageIndex.
  • A few minor improvements and fixes have been incorporated.

New in ShellBrowser Components Delphi Edition 8.1.2 (Mar 6, 2013)

  • Bugfix - JamFileList: When using the Search method, sorting distinguishes between folders and files.
  • Bugfix - JamShellList: Sorting by recently added shell columns works again.
  • Bugfix - JamShellList: The OnBeforeShellCommand event is triggered when entering a folder by doubleclick or 'Enter' key.
  • Bugfix - JamShellTree: Avoiding exceptions during Drag&Drop (Win XP).
  • Several minor improvements and fixes have been incorporated.

New in ShellBrowser Components Delphi Edition 8.1.1 (Feb 21, 2013)

  • Official support for Delphi, C++ Builder XE3 64bit and Windows 8
  • TJamFileList: Reviewed and optimized the sorting process
  • TJamFileList: Reviewed and optimized the search functionality
  • TJamFileList: Property 'ShowContextMenuOnTop' is now available
  • plus several fixes and improvements

New in ShellBrowser Components Delphi Edition 8.1 (Oct 22, 2012)

  • Official support for Delphi XE3 and Windows 8 has been added.
  • TJamShellList, TJamFileList, TJamDriveList: On Windows Vista and later the large drag icons and the feedback text is now shown when dragging items. This was formerly working only when these controls were the drop target and now works also if they are the drag source.
  • TJamShellList, TJamFileList: The handling when activating or deactivating columns has been improved.
  • TJamShellList, TJamFileList: Added event OnBeforeShellColumnChanged which is triggered before the visibility of a column changes and can be used to prevent the change.
  • TJamShellList, TJamFileList: Added a new public property ColumnOrder: Array of Integer, which returns the internal order of the shell columns.
  • TJamShellList: The event OnBeforeShellCommand now includes all paths if multiple items were selected.
  • TJamSystemShellView: Added view mode "Auto" in which the view mode is defined automatically by the content of the folder.
  • TJamSystemShellView: Extra large, small and large icons can be set now as view mode.
  • Added class TShellColumns that contains members for the important shell columns.
  • TJamShellLink: The methods FullRefresh() and SmartRefresh() have been merged to a single method Refresh() with a parameter for the refresh level (rfFull, rfSmart, rfCheckboxes). This allowed us to improve displaying and updating of checkboxes.
  • The help is now installed again as CHM-file instead of multiple HTML-files.
  • TJamShellList: Sorting in Libraries works for all columns now.
  • TJamShellTree: Setting RootedAtFileSystemFolders to a hidden folder works even if ShowHidden property is False.
  • Bugfix: TJamFileList: Renaming in FileList no longer leads to doubled file extension when file extensions are hidden by Windows.
  • Bugfix - TJamSystemShellView: Column headers are only shown in Details view.
  • Bugfix - TJamShellList: Setting view style in OnPathChanged no longer produces a stack overflow.
  • Bugfix -TJamShellList, TJamDriveList: Sorting works again if the ViewStyle is not vsReport.
  • Bugfix - TJamShellList, TJamShellTree: Checkboxes for Libraries that contain more than one folder work correctly now.
  • Bugfix -TJamBrowseForFolder: Properties WindowTitle and DialogButtonCaption work again when bfNewDialogStyle is True.
  • Bugfix - TJamShellChangeNotifier: In rare cases subsequent identical events were ignored.
  • Bugfix - TJamFileList: Sorting works again if accessible and non-accessible items are in the list.
  • Bugfix - TJamShellTree: Fixed situation in which all subfolders of a network share have the same name.
  • Several minor fixes and improvements have been incorporated

New in ShellBrowser Components Delphi Edition 8.0.2 (Feb 17, 2012)

  • TJamShellList: property UseSystemFont can be set to True if ParentFont is True. ParentFont will then be set to False automatically.
  • TJamShellList: value for ParentDoubleBuffered and Font property now persist when closing and reopening the project.
  • Several minor fixes and improvements

New in ShellBrowser Components Delphi Edition 8.0 (Oct 6, 2011)

  • Support for Delphi XE2 and the 64Bit compiler added
  • Windows Shell ItemIdLists are now stored using an interfaced object (performance improvements)
  • property IconSpacing has been added to TJamShellList and TJamFileList
  • help file is generated based on the XML comments from the source code

New in ShellBrowser Components Delphi Edition 7.3.2 (Jul 21, 2011)

  • TJamShellList.SetColumnVisibility() now allows to turn on or off certain columns using ShColumnId
  • Setting TJamFolderCombo.Editable to False now has the intended effect that no edit field is available
  • Occasional "List index out of bounds" errors for the TJamDriveList have been resolved.

New in ShellBrowser Components Delphi Edition 7.2.1 (Oct 19, 2010)

  • keyboard shortcut Alt+Up now goes up one level in TJamShellList and TJamSystemShellView
  • size of file in Windows 7 Libraries folders is now formatted in KB instead of Bytes
  • a few minor fixes and improvements have been incorporated

New in ShellBrowser Components Delphi Edition 7.2 (Sep 29, 2010)

  • Added support for Delphi XE
  • New submenu of background context menu of the TJamShellList control now filled like in the Windows Explorer incl. "New Shortcut" and all file types registered for this menu
  • JamShellList is now resorted if new items have been added due to an automatic update

New in ShellBrowser Components Delphi Edition 7.1.1 (Jul 13, 2010)

  • Added property AutoSizeColumn to JamShellList and JamFileList which adjusts the defined column to fill the remaining horizontal space so that no scrollbar appears.
  • ZIP files now open within the JamShellList if they are double clicked.
  • The support for C++ Builder 6 has been dropped.

New in ShellBrowser Components Delphi Edition 6.4 (Jul 27, 2009)

  • Support for Delphi 2010 was added.
  • Added new component JamImageFromImageList, which allows to display images of an imagelist.
  • During its existence, the JamShellList control now saves and restores column widths not only for file system folder, but for all special folders.

New in ShellBrowser Components Delphi Edition 6.3 (Jul 8, 2009)

  • Added ShowErrorMessages property to the JamThumbnailImage
  • Added property UseSystemFont to the JamShellCombo.
  • Added new public property History to the JamShellList and JamShellTree

New in ShellBrowser Components Delphi Edition 6.2.6 (Mar 31, 2009)

  • JamPathLabel: The filename of a given path will now also be trimmed like in the Windows Explorer.
  • ActiveX: Added property UseFullPathWhenComparing to the JamSearchOptions.
  • Bugfix: The background context menu was not working in the JamSystemShellView.
  • Several improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 6.2.5 (Feb 13, 2009)

  • JamSearchOptions: Added new property UseFullPathWhenComparing.
  • JamFileList and JamShellList: The items in thumbnail mode will now be rearranged automatically.
  • New version 1.7.0.2 of TMS Unicode, which fixes some problems with the Delphi 2009 IDE.

New in ShellBrowser Components Delphi Edition 6.12 (Sep 26, 2008)

  • Improved handling of symbolic links.
  • Updated the included TMS Unicode Controls to V1.6.
  • Bugfix: Improved handling of the Control Panel under Windows Vista for the
  • JamSystemShellView.
  • Bugfix: The context menu in the JamSystemShellView for the special folder SF_PERSONAL
  • works correctly now.
  • Bugfix: The 'open' option of the context menu in the JamSystemShellView works correctly
  • now.
  • Added new option bfReturnInvalidPath to the JamBrowseForFolder dialog, which returns the
  • entered path even if it is not valid.
  • Added two new properties PopupMenu and PopupMenuButton to the JamPathEdit.
  • Files, which have been dropped on the JamShellList, will now be selected after the drop.

New in ShellBrowser Components Delphi Edition 6.1.1 (Jul 5, 2008)

  • The performance of the JamFileList has been improved for adding a huge amount of files.
  • The performance of the JamShellList and the JamShellTree have been slightly improved.
  • Bugfix: An endless loop could occur, when the method IsSpecialObject() was used in the OnAddFolder event of the JamShellTree.

New in ShellBrowser Components Delphi Edition 5.3 (Apr 19, 2007)

  • Added support for Delphi 2007.
  • Latest release of the TNT Unicode Controls have been added.
  • Bugfix: Fixed Drag'n'Drop for JamFileList under Windows 98.
  • Some minor improvements.

New in ShellBrowser Components Delphi Edition 5.21 (Mar 9, 2007)

  • ActiveX: Added method ShowContextMenu() to the JamShellList, JamShellTree, JamFileList
  • and JamDriveList.
  • Added property FlatScrollBars to the JamShellList, JamFileList and JamDriveList.
  • Some minor improvements.

New in ShellBrowser Components Delphi Edition 5.14 (Sep 26, 2006)

  • Added new method JamShellTree.AddHiddenItem() that allows to add hidden elements like administrative shares (ServerC$) to the shell tree, which are not enumerated by the shell.
  • Added new property JamDriveList.StatusBarColor, to change the color of the bars in the JamDriveList.

New in ShellBrowser Components Delphi Edition 5.12 (Jun 28, 2006)

  • Added new property BackgroundImageStyle to the JamShellList, to change the style of the background image to: Tiled, LeftTop or RightBottom
  • The JamFileList and JamDriveList now show the shell hint text.
  • Added new Method AddStrings() to the JamDriveList.
  • Improved the handling of the shell change notifications in the JamDriveList.
  • Added new property ShowShellObjectNames to the JamDriveList, which forces the component to show shell object names for the drives instead of the drive letters.
  • New property ExcludeList added to the JamDriveList. Drives in this list will not be displayed in the list. This can e.g. be useful for excluding floppy drives.
  • Bugfix: When a selection was loaded in the JamSelectionList from an ini-file, the FolderCount property was not set to the correct value.
  • Added new class TJamPathList that can be used to manage a set of unique paths.
  • The methods LoadFromIniFile and SaveToIniFile of the JamSelectionList now support Unicode characters in paths.
  • Several other minor improvements have been incorporated.

New in ShellBrowser Components Delphi Edition 5.11 (Apr 14, 2006)

  • ActiveX Version: The warning, that the control is unsafe, when it is used, doesn't appear anymore.
  • Occasional problems with the painting of the bar charts indicating the free space in the JamDriveList have been fixed.
  • BugFix: When the JamShellTree has been rooted at a normal file system path, the checkbox stayed greyed.
  • BugFix: In some situations the JamFolderSizeThread has returned incorrect results for the count and size of the selected files.
  • Added new property FolderCount to the JamSelectionList, which returns the count of the selected folders.
  • Added new event OnCompletedCalculateFiles to the JamSelectionList, which is triggered, when the thread, which calculates the count and the size of the selected files, is finished.
  • ActiveX: Added .lpk file to use the licensed ShellBrowser Components on webpages.
  • Several other minor improvements have been incorporated.