FAQs & 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

Using the TJamShellList you can add custom columns to add custom content.

Please check the project "CustomColumns" in the examples subfolder of the installation directory for more information.

The issue with selecting the element by typing is, that it will only work for elements that have a caption. For performance reasons in the ShellList, loading the caption only occurs when the item is scrolled into view.

However you can force loading the caption sooner by implementing the "OnAddItem" event:

procedure TMainForm.ShellListAddItem(Item: TJamShellListItem;  
var CanAdd: Boolean);
begin  
  Item.Caption := Item.Caption;
end;

In this case the Item.Caption will be assigned when the item is added, so that the incremental search will subsequently work.

Another option to find an item manually, is to use the features that our controls inherited from the TListView control:

var Item := ShellList.FindCaption(0, 'notepad.exe', False, False);
if Assigned(Item) then 
  Item.MakeVisible(False);

If you want to slelect the item, use code like this:

ShellList.SelectedFiles.Add('notepad.exe');

Please contact the support at shellbrowser@jam-software.com.

It would be most helpful if you could provide a callstack so that we know which function is causing the delay.

From within the RAD Studio debugger, please take the following actions:

When the application freezes, click Run > Program Pause in RAD Studio and take a screenshot of the call stack of the main thread (RAD Studio > View > Debug Window > Call Stack).

If the call stack window is empty, please ensure that these options are set at "Project > Options > Delphi Compiler > Compiling":

Code Generation > Stack Frames: True

Debugging > Debug information: True

Debugging > Use debug DCUs: True

In case the call stack window is still empty, please do the following:

After clicking Program Pause, please open View > Debug Windows > Threads, double click each thread, which hopefully shows the call stack of each thread in the Call Stack window. Please search the main thread that way, which contains Application.Run in the call stack, and send us a screenshot of this threads call stack.

You can also use a tool like MadExcept and use the "MadTraceProcess32" or "MadTraceProcess64" tool to inspect the state and receive call stacks of the running threads.

This seems to be configuration issue with the 64-bit Outlook PreviewHandler.

Check the following registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\CLSID\{53BEDF0B-4E5B-4183-8DC9-B844344FA104}

The AppID key should contain

AppID = {6d2b5079-2f0b-48dd-ab7f-97cec514d30b}

You can implement the OnNavigating event (ShellBrowser Delphi Components) or NavigationPending event (ShellBrowser .NET or WPF) respectively. Using the event handler's parameters you can check the path and stop the navigation.