//using the new BeforeCommand event procedure TMainForm.ShellListBeforeCommand(Sender: TObject; var pCommandArgs: TBeforeCommandEventArgs); begin //always open folder internally, instead of opening a File Explorer instance. if (pCommandArgs.Command = TShellAction.saOpen) and (pCommandArgs.CommandSource = TCommandSource.ContextMenu) and (pCommandArgs.Items.Count = 1) and (pCommandArgs.Items[0].IsFolder) then begin pCommandArgs.Cancel := true; ShellList.FolderIdList := pCommandArgs.Items[0]; end; end;