Breakpoint: IMsBreakpoint;
Свойство Breakpoint возвращает точку останова.
Свойство возвращает базовый интерфейс для работы с точкой останова. Для работы с параметрами различных видов точек останова приведите IMsBreakpoint к интерфейсу IMsModelCalendarBreakpoint или IMsDataBreakpoint.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с идентификатором «Button1» и компонента TreeList с идентификатором «TreeList1». В репозитории должен присутствовать контейнер моделирования с идентификатором «MODEL_SPACE», содержащий задачу моделирования с идентификатором «PROBLEM». Также перед выполнением примера необходимо добавить ссылки на системные сборки «Metabase», «Ms».
Пример будет выполняться при нажатии на кнопку.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Mb: IMetabase;
ModelSpaceDescr: IMetabaseObjectDescriptor;
Problem: IMsProblem;
CalcSettings: IMsProblemCalculationSettings;
Calculation: IMsProblemCalculation;
CalculationTree: IMsCalculationTree;
CalcChildren: IMsCalculationTreeNodes;
Begin
Mb := MetabaseClass.Active;
ModelSpaceDescr := Mb.ItemById("MODEL_SPACE");
Problem := Mb.ItemByIdNamespace("PROBLEM", ModelSpaceDescr.Key).Bind As IMsProblem;
CalcSettings := Problem.CreateCalculationSettings;
CalcSettings.FactIncluded := True;
Calculation := Problem.Calculate(CalcSettings);
CalculationTree := Calculation.CalculationTree;
CalcChildren := CalculationTree.Children;
FillCalcList(CalcChildren, Null);
End Sub Button1OnClick;
Sub FillCalcList(Items: IMsCalculationTreeNodes; ParentNode: ITreeListNode);
Var
TreeNodes: ITreeListNodes;
i: Integer;
Item: IMsCalculationTreeNode;
ModelKindItem: IMsCalculationModelTreeNode;
TreeNode: ITreeListNode;
Text: String;
Begin
TreeNodes := TreeList1.Nodes;
For i := 0 To Items.Count - 1 Do
Item := Items.Item(i);
Text := Item.Text;
If Item.Kind = MsCalculationTreeNodeKind.Model Then
Text := Text + " (установлена точка остановы!)";
ModelKindItem := Item As IMsCalculationModelTreeNode;
Debug.WriteLine("Точка остановы: " + ModelKindItem.Breakpoint.Name);
Debug.WriteLine("Сработала в точке: " + ModelKindItem.CurrentPoint.ToString);
Debug.WriteLine("----");
End If;
TreeNode := TreeNodes.AddChild(ParentNode, Text);
FillCalcList(Item.Children, TreeNode);
TreeNode.Expand(False);
End For;
End Sub FillCalcList;
После выполнения примера в компонент TreeList будет выведено дерево расчета задачи моделирования. В окно консоли будет выведена информация об элементах дерева, являющихся точками останова.
См. также: