This example will show the context menu for the selected items in a TJamShellList, after the user released the right mouse button:
procedure TMainForm.ShellListViewMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var Item : TListItem; begin if (Button!=mbRight) or (OtherCondition) then exit; Item := List.GetItemAt(X,Y); if not Assigned(Item) then exit; ShellListView.ShowContextMenu(ShellListView.ClientToScreen(Point(X,Y))); end;