Hello and welcome to our Knowledge Base. Our experts provide answers to the most frequently asked questions of our customers. Start your information search here to find your answer quickly and easily.
Please enter your query or select one of the above categories.
Knowledge Base ShellBrowser Delphi Components
|All entries (Page 1 / 5)|
We are urgently working towards finishing ShellBrowser 11.2 that will support the new RAD Studio version.
A prerelease version will be available beginning of week 22, please get in contact with ShellBrowser support to receive a link.
ShellBrowser uses registered preview handler shell extensions for the FilePreview component. Some of these extensions belong to Windows, others are installed with third party applications.
If the FilePreview is not working, please check the following list:
- Does Windows Explorer preview the files correctly? If no, there is either no preview handler installed, or it is not working correctly. Try updating the respective program.
- If the problem occurs in a x86 application, please try compiling a 64-bit version.
- The FilePreview component works asynchronously. Depending on the context (versions of Windows, Rad Studio and the PreviewHandler, but also the layout of the form containing the Preview) some Preview Handler may not work or show visual glitches.
Try forcing the loading of the preview into the main thread, by implementing the OnLoadPreview event of the Preview.
- If all of this fails, don't hesitate to contact the support. In this case, please provide details on the error: versions of Windows, the IDE and the program that provides the PreviewHandler.
To set a different selection in the ShellTree, there are the following possibilities:
ShellTree.SelectedFolder := c:\;
ShellTree.SpecialFolder := Jam.Shell.Types.SF_DOWNLOADS;
There are several measures you can take, depending on the components you are using:
To avoid, that a user manually opens a folder you have different options of interception:
- if the components share a TJamShellLink, you can use its OnNavigating event to control the opening of folders
- some controls have additional own events that serve the same purpose. See https://knowledgebase.jam-software.com/6774?language=EN
When configuring TJamExplorerBrowser to only include the FolderView, it looks much like the TJamShellList.
TJamExplorerBrowser wraps a Windows system component, and thus it will look exactly like Windows File Explorer.The TJamShellList on the other hand derives a VCL ListView control, that tries to resemble Windows File Explorer as much as possible. While it misses some aspects of this, it can on the other hand be customized more widely visually and functionally.
Privileged processes do not receive Drag&Drop from non-privileged processes for security reasons. This could be the case if you start your IDE or your executable as admin.
To expand these nodes, you may use code like this:
procedure TMainForm.FormShow(Sender: TObject);
i := 0;
while (i < ShellTree.Items.Count) do
if (ShellTree.Items[i].AbsoluteItemIdList.SpecialFolder in [SF_FAVORITES, SF_LIBRARIES]) then
You can use the TJamShellTree.OnChanging event like this:
forbiddenPath: String = 'C:\Windows';
procedure TMainForm.ShellTreeChanging(Sender: TObject; Node: TTreeNode; var AllowChange: Boolean);
shellNode := node as TJamShellTreeNode;
if (ShellBrowser.SamePath(shellNode.FullPath, forbiddenPath)) then
AllowChange := false;
To achieve the same result in the JamShellList, use the TJamShellList.PathChanged event:
forbiddenPath: String = 'C:\Windows';
procedure TMainForm.ShellListPathChanged(Sender: TObject);
if (ShellBrowser.SamePath(ShellList.Path, forbiddenPath)) then
ShellList.Path := lastPath
lastPath := ShellList.Path;
You can also use the OnBeforeShellCommand event and use the AllowExecute parameter to prevent the execution. The Command parameter when opening a folder might be "default" or "open".
You can use the OnAddFolder event with a statement like this:
CanAdd := not (GetDriveType(PChar(Path)) in [DRIVE_REMOVABLE]);
This will exclude the floppy drive. It is also possible to exclude other drives like the CD-ROM (DRIVE_CDROM).
JAM Software GmbH
Am Wissenschaftspark 26
Commercial register number:
HRB 4920 (AG Wittlich)