FAQ & Knowledge Base

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:

  • Using the FileNameFormat property to control whether file extensions are generally displayed or not
  • Using the "OnAddItem" event to further modify the caption. The only restriction here is, that you cannot set the caption to an empty string.

    Example:

    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:

  • Set the "FileSystemOnly" property of the ShellList to true
  • Implement the "OnAddItem" event and exclude zip files:

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):

  • Extract the ZIP file
  • Open "Packages\RAD Studio 10.?\JamShellBrowserDesign.dproj",
  • Right click on "JamShellBrowserDesign.bpl" in the Project Manager
  • Choose "Install".

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.

All entries (Page 4 / 10)