Wir verzichten auf Cookies für Marketingzwecke. Funktionale Cookies ermöglichen uns, Ihnen den bestmöglichen Service anzubieten. Wenn Sie unsere Dienste weiterhin verwenden, stimmen Sie der Cookie-Nutzung zu. Datenschutz bei JAM OK

FAQs & Knowledge Base

Herzlich Willkommen in unserer Wissensdatenbank. Nutzen Sie die Suchfunktion oder durchstöbern Sie unsere Kategorien, um Antworten auf Ihre Fragen zu erhalten.

Kategorien: ShellBrowser Delphi Components | Alle Kategorien anzeigen

Die folgenden Inhalte sind leider nicht auf Deutsch verfügbar.

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.

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.

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.