Knowledge Base

ShellBrowser Delphi Components

Please enter your query or select one of the above categories.

All entries (Page 3 / 5)

Is it possible to control, if the shell context menu is added above or below the Delphi TPopupMenu?

Yes, you can control this behaviour using the ShowContextMenuOnTop property of the visual shell controls.

What is the easiest way to copy a file to the clipboard?

Place a TShellBrowser component on the form, and use code like the one in the example for ShellBrowser.InvokeContextMenuCommand.

Is it possible to use ShellBrowser with the TMS Unicode Components?

ShellBrowser Components V5 and V6 were using TMS Unicode to get Unicode support in the controls derived from Delphi's TTreeView and TListView controls.
Since Delphi 2009 and later support Unicode natively, the dependency on TMS Unicode was removed in V7. So the ShellBrowser controls V7 and later do not interfere with TMS Unicode.

How can I use Drag&Drop between the ShellBrowser Components and Delphi's TListView / TListBox?

Unfortunately it is not possible to mix OLE Drag&Drop and Delphi Drag&Drop, because they work completely different.
The ShellBrowser components can interact with all other OLE enabled applications like Explorer, Word etc. All ShellBrowser Components can interact which each other with the OLE Drag&Drop.

The JamShellChangeNotifier is not firing events, e.g. for file creation, when our application is running on Windows XP. But it works great on Windows Vista and later. Why?

The JamShellChangeNotifier is a wrapper around a Windows API that notifies about changes in the file system that could be interesting for Explorer-like applications.
Microsoft has documented that changes in a folder may be merged to a single neFolderUpdate (numeric id = 15) event. This event supplies only the path to the folder, in that the changes occurred. We noticed that these events are generated much more relaible on Windows Vista and later than on Windows XP.

How can I extract the information in column XY that I see in the JamShellList in Details mode?

You may use TShellBrowser.GetColumnText.

Do we have to pay additional royalty fees for EXE files that we distribute and that use the ShellBrowser Components?

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

Which operating systems are supported?

All current versions of Windows are supported. See here for further information.


I get the error message "Fatal Error: File not Found: ShellControls.obj" during compilation. What is the problem?

The ShellBrowser package is missing in the runtime packages list of Delphi. You then need to add it manually under Project / Project Options / Packages / Runtime packages. If you are not using runtime packages, the the path with the .OBJ file is simply missing in the Library Path of your Project Options.

Which IDEs are supported?

ShellBrowser is compatible with all current RAD Studio versions. See here for further information.

After assigning the event OnCheckStateChanged of the TJamShellList, I get a compiler error: "Undeclared identifier, TJamSelectionState"

You just need to add JamSelectionList to your uses clause, because Delphi won't do this programmatically for data types.

When I try to compile my C++ Builder project, I get the error message "Undefined structure '_STRRET'" in the Shell_Win32.hpp. How can this be solved?

Due to some changes to the Shell API header files, you have to add the conditional define NO_WIN32_LEAN_AND_MEAN to the Conditional Defines section of project options of all your projects. Otherwise the header files containing the Windows Shell related stuff won't be included completely and your project won't compile. IMPORTANT: Please also make sure to add the path to the header files of ShellBrowser to the Include Path of each of your projects!