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:
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")
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;
lSpace := ListView_GetItemSpacing(ListView1.Handle, 0);
lVert := HiWord(lSpace);
lHoriz := LoWord(lSpace);
ListView_SetIconSpacing(ListView1.Handle, lHoriz, lVert - 10); //unit CommCtrl
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.
Take a look at the "FileDialogFrame" sample application that is shipped with ShellBrowser.
Specifically you have to:
If you are already using VCL Styles Utils, please make sure to use the Jam Software fork and activate the following line in the "VCL.Styles.Utils.inc" file that you can find in the VCL Styles Utils source code directory:
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.EndsWith('.log', True) then