ShellBrowser Delphi Components
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.
All entries (Page 1 / 5)
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.
Assign the OnKeyDown event with this content:
if Key = vk_Return then Key := 0;
To prevent the automatic handling of a double click, simply add an OnDblClick event handler. Or, you can use the OnBeforeShellCommand event and use the AllowExecute parameter to prevent the execution. The Command parameter when opening a file will be "default" or "open".
The thumbnails are generated through the same Windows API function that the Windows Explorer uses, and so the ShellBrowser components will show similar thumbnails like the Windows Explorer. To provide thumbnails for a certain file format that Windows does not support out of the box, it is best to register a thumbnail provider in the system.
Another option is to use the OnThumbnailUpdated event of the TJamShellList control, which allows you to change the generated thumbnail.
TShellBrowser.SetThumbnailProvider() allows you to set one application-wide thumbnail provider that is called if the system does not supply one.
Each Windows Shell extension may define which columns will be displayed for its view.To add or remove specific columns, use the OnCreateColumns event in combination with SetColumnVisibility.
uses ShellBrowser; procedure TForm1.JamShellListCreateColumns(Sender: TObject);
with JamShellList do
You can use the TJamShellTree.OnChanging event like this:
uses ShellBrowser;To achieve the same result in the JamShellList, use the TJamShellList.PathChanged event:
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;
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".
This message is triggered by a handled excpetion. In the default configuration, RAD Studio stops on all exceptions, if handled or not. The end-user will not see errors like this for handled excpetions. Using exceptions for error handling is common in modern programming languages.
We recommend turning off this option:
"Tools > Options > Debugger Options > Language Exceptions > Notify on Language Exceptions".
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.