There is the function FindObjectAt.
But the demo app provides the function to drag the dotted rectangle around some objects and all objects that touch the rectangle gets selected.
So is it possible to add a function to SG:
FindObjectRect(TRect,MakeVisibleSelectionFlag,ShiftKeyState)
which does the same by code.
It return a list of the objects found inside.
Another idea comes from autocad.
There you drag a selection-frame around objects, where the drag-direction plays a role. Draging the selection-frame from left-to-right selects all obects that are complete inside the frame. Draging the selection-frame from right-to-left selects all objects which are inside but also all objects which cross the selection-frame (like the current method of SG). Also using a different line type for the different selection-directions would be usefull.