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

No. The ShellBrowser components are royalty free. That means after you purchased them, you may distribute compiled projects without additional costs or fees.

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.

Known issues concerning commonly used Preview Handlers:

* The Microsoft Excel preview handler will not show files having an uppercase file extension ("Sample.XLSX")

* The Adobe Acrobat preview handler will not display files containing a hashtag ("Sample#1.pdf")

Unfortunately this is beyond the scope of ShellBrowser components. You have to write a "shortcut menu handler" or other type of shell extension to do so.

See the Microsoft documentation for an overview.

In icon based viewstates (viewstyle = vsIcon) you can use the Win32 function "ListView_SetIconSpacing" to determine horizontal and vertical spacing in the ListView.

The following code reduces the vertical space by 10 Pixels:

var lSpace, lVert, lHoriz: DWord;
begin
  lSpace := ListView_GetItemSpacing(ListView1.Handle, 0);
  lVert := HiWord(lSpace);
  lHoriz := LoWord(lSpace);
  ListView_SetIconSpacing(ListView1.Handle, lHoriz, lVert - 10); //unit CommCtrl
  ListView1.Invalidate();
end;

Note, that this might result in overlapping items.

Starting with ShellBrowser v11.4, and if you are using Delphi 10 Seattle or higher, you can use VCL Styles Utils and DDetours to fix the problems.

* Get a copy of both projects via Git.

* Add <vcl-styles-utils>\Common and <DDetours>\Source to the search path of your project.

Now, ExplorerBrowser should be themed correctly according to the VCL style that was set.

During your maintenance period, they are located at Downloads -> Older versions in the customer area, if you are logged in to your customer account.

You should be able to find the installation files and keys of the two last major versions there.

Starting with Windows 10 Cloud storage providers can integrate access into Windows File Explorer via shell extensions.

Also ShellBrowser relies on the availability of the needed extensions.

The ExplorerBrowser component matches Windows Explorer very closely offering the same views and columns.

Other ShellBrowser controls such as the ShellListView/TJamShellList are normally able to operate normally with cloud storage views, however some columns might be presented differently (e.g. the synchronization state is presented as textual information rather than an icon).

ShellBrowser relies on the Windows notification system to monitor changes. Sometimes individual notifications are summarized into bigger chunks. It depends on the size of the folder, the number of affected elements and also the type of folder whether this happens or not. Unfortunately this behavior cannot be influenced.

Per default, the shell components handle zip files as folders, that can be enumerated too. There might be use-cases where this is not wanted.
If you want to treat the them as normal files instead, set the "FileSystemOnly" property of the respective component to True.

To block opening in general, simply implement an empty event handler for the OnDefaultAction event of the TJamExplorerBrowser control that contains only the code "exit;".

You may also do this conditionally:

  if JamExplorerBrowser1.SelectedFiles[0].EndsWith('.log', True) then
    exit
  else
    JamExplorerBrowser1.InvokeCommand('')

All entries (Page 1 / 10)