IWxShape.ConnectedCPs

Синтаксис

ConnectedCPs(ConnectionPointIndex: Integer; ConnectedCPShapeIndex: Integer): Integer;

ConnectedCPs[ConnectionPointIndex: integer; ConnectedCPShapeIndex: integer]: integer;

Параметры

ConnectionPointIndex. Индекс точки соединения исходного объекта (на изображении данная точка отображена красным цветом);

ConnectedCPShapeIndex. Индекс фигуры, соединенной с объектом в точке ConnectionPointIndex (на изображении таких фигур две : A и B).

Описание

Свойство ConnectedCP возвращает индекс точки соединения фигуры, соединенной с исходным объектом в заданной точке.

ConnectionPointIndex (точка соединения) отображена красным цветом. Фигуры, соединенные с объектом в данной точке две: А и B. Для обоих фигур свойство вернет индекс «0».

Индексы точек соединения исходного объекта изображены черным цветом.

Индексы точек соединения фигур, соединенных с объектом в точке ConnectionPointIndex, изображены синим и зеленым цветом.

Пример

Для выполнения примера в репозитории предполагается наличие рабочего пространства с идентификатором «WSP», содержащего несколько соединенных фигур.

Добавьте ссылки на системные сборки: Andy, Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    ws: IWxWorkspace;
    i, j, ISh: Integer;
    Shape: IWxShape;
Begin
    MB := MetabaseClass.Active;
    
// Получаем рабочее пространство
    ws := MB.ItemById("WSP").Edit As IWxWorkspace;
    Shape := ws.Shapes.Item(
0);
    
For i := 0 To Shape.ConnectionPointsCount - 1 Do
        
If Shape.ConnectedCpShapesCount(i) > 0 Then
            
For j := 0 To Shape.ConnectedCpShapesCount(i) - 1 Do
                ISh := Shape.ConnectedCPs(i, j);
                Debug.WriteLine(
"Индекс точки соединения " + ISh.ToString + " для объекта с ConnectedCPShapeIndex = " + j.ToString);
            
End For;
        
End If;
    
End For;
    
// Сохраняем изменения
    (ws As IMetabaseObject).Save;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Andy;
 
Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    ws: IWxWorkspace;
    i, j, ISh: Integer;
    Shape: IWxShape;
    WinAppCls: WinApplicationClass = 
New WinApplicationClassClass();
    
//WinApp: WinApplication = New WinApplicationClass_2();
Begin
    MB := Params.Metabase;
    
// Получаем рабочее пространство
    ws := MB.ItemById["WSP"].Edit() As IWxWorkspace;
    Shape := ws.Shapes.Item[
0];
    
For i := 0 To Shape.ConnectionPointsCount - 1 Do
        
If Shape.ConnectedCpShapesCount[i] > 0 Then
            
For j := 0 To Shape.ConnectedCpShapesCount[i] - 1 Do
                ISh := Shape.ConnectedCPs[i, j];
                System.Diagnostics.Debug.WriteLine(
"Индекс точки соединения " + ISh.ToString() + " для объекта с ConnectedCPShapeIndex = " + j.ToString());
            
End For;
        
End If;
    
End For;
    
// Сохраняем изменения
    (ws As IMetabaseObject).Save();

В процессе выполнения примера будут поэтапно выдаваться сообщения, содержащие индекс точки соединения фигуры, соединенной с исходным объектом в точке ConnectionPointIndex.

См. также:

IWxShape