Welcome to our Knowledge Base. Search or browse through the topics below to find answers to your questions.
Categories: ShellBrowser Delphi Components | Show all categories
Depending on what you try to do, there are several options:
procedure TMainForm.ShellListAddItem(Item: TJamShellListItem;
var CanAdd: Boolean);
begin
if not Item.IsFolder and not String.IsNullOrEmpty(Item.AbsoluteItemIdList.Name) then
Item.Caption := Item.AbsoluteItemIdList.Name;
end;
Unfortunately Windows doesn't offer an API for this function, so it is indeed not part of ShellBrowser currently. Note, that commands executed via ShellBrowser can be undone in Windows Explorer though.
Please check the compatibility page for supported RAD Studio versions.
Existing customers have the ability to download older versions of the controls in our customers area. However these old versions come without technical support and won't receive updates any more.
An ItemIdList is a type derived from the PIDL that is used by the Windows Shell. It fulfills the same functions as a file system path, but is also available for elements that do not have a file system path, such as virtual elements (like e.g. the "This PC" folder) or files that reside on an attached mobile phone.
You can easily create ItemIdLists from a file system path using the respective constructors.
Getting the path from an ItemIdList can be done using the "Path" or "DisplayPath" properties of an ItemIdList.
Also, whenenver a ShellBrowser component is associated with a path, most likely the ItemIdList can also be accessed via respective "FolderIdList" or "AbsoluteItemIdList" properties (e.g. for ListItems, TreeNodes, etc.).
For further documentation see:
TJamItemIdList (ShellBrowser Delphi components)
ItemIdList (ShellBrowser.NET and ShellBrowser.WPF Components)
No actually it's not, since zip archives can be enumerated as well - the filter will be applied to the contents of the zip file.
If you want to change this, you can either:
procedure TMainForm.ShellListAddItem(Item: TJamShellListItem;
var CanAdd: Boolean);
begin
if (Item.IsFolder and Item.AbsoluteItemIdList.HasAttributes(SFGAO_STREAM)) then
CanAdd := false;
end;
You can add the ftp server as "network address" via the context menu of "This PC" (e.g. in Windows Explorer). This will include it as folder and ShellBrowser components will be able to use it the same way as Windows Explorer.
You need to synchronize the TJamShellSearchEdit component (or the TJamShellBreadCrumbbar containing the search pane) with a TJamShellList or an ExplorerBrowser control using a TJamShellLink. This will present the results of the search in the linked control.
If you have restricted the folders accessible for your application via the TJamShellLink.OnNavigating event, be sure to allow the SearchFolder to be opened:
procedure TForm1.JamShellLink1Navigating(Sender: TObject;
const pFolder: IItemIdList; var pCancel: Boolean);
begin
pCancel := not (TJamItemIdList.Create(AllowedPathBranch).IsParentOf(pFolder, true)) and not (IsSearchFolderPath(pFolder.DisplayPath));
end;
The searchfolder is a special folder that holds the temporary search result.
Different classes offer methods to execute commands (e.g. InvokeCommandOnSelected, or InvokeCommand.
Formally, these method usually require a TShellCommand as parameter.
However, this type can be assigned a string or a TShellAction, so both
ShellList.InvokeCommandOnSelected('properties')
as well as
ShellList.InvokeCommandOnSelected(saProperties)
will display the property dialog for the selected elements.
TShellAction is an enumeration of frequently used commands. For less common context menu items, you can pass the verb as string.
Tip:
To find out the verb of an existing context menu item, implement the OnBeforeShellCommand event - it passes the verb of the selected menu item.
The path of ShellBrowser is missing in the library path of Delphi. You may need to add it manually under
Tools / Environment Options / Library / Library Path.
When you have used our installer:
In RAD Studio choose: Components > Install Packages > Add... > "%BDSCOMMONDIR%\BPL\JamShellBrowserDesign.bpl"
When using the ZIP file download (source code customers only):
Both approaches will only work in case the ShellBrowser version supports the version of RAD Studio you are using. So when using the latest version of RAD Stusio make sure to have the latest version of ShellBrowser.