Knowledge Base

ShellBrowser Delphi Components



Hallo und herzlich Willkommen in unserer Wissensdatenbank.
Unsere Fachexperten liefern hier Antworten auf die häufigsten Fragen unserer Kunden.
Beginnen Sie Ihre Informationssuche hier, um schnell und einfach auch Ihre Antwort zu finden.
Geben Sie bitte einen Suchbegriff ein oder wählen Sie eine der obenstehenden Kategorien aus.



Alle Einträge (Seite 3 / 5)

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!

I want to get the file extension although it`s hidden in the Windows Explorer, but the function ShellBrowser.GetShellObjectName returns the file name without caption. How can I retrieve the complete filename including the extension?

This is the intended behavior of the ShellBrowser.GetShellObjectName method. To get a file system name please use the ShellBrowser.ObjectName property.

How can I get a list of all checked items in a JamShellTreeList?

If you want to iterate over the list of all selected items, you can use the method FindNext() of the JamSelectionList, e.g.: 

JamShellTree.ShellLink.SelectionList.FindNext;

This returns the names of the selected files and folders. When all items have been enumerated, an empty string will be returned.

If you want to get a list of the selected items, you can use the Paths property of the JamSelectionList.