Code example:

procedure TMainFrm.Button1Click(Sender: TObject);  
var  
  i:integer;  
  AShape:TMyShape;  
begin  
  AShape:=MyCAD1.GetSelectedShape;  
  If AShape.HasChildshapes then  
    For i:=0 to High(AShape.ChildShapesNo) do  
      ShowMessage((AShape.Owner as TMyCAD).GetShapeByNo(AShape.ChildShapesNo[i]).Name);  
end;