FindByKey(BreakpointKey: Integer): IMsBreakpoint;
BreakpointKey. Breakpoint key.
The FindByKey method searches for a breakpoint in the collection by its key.
If the breakpoint with specified key is not found, the method returns Null.
Executing the example requires that the repository contains a modeling container with the MODEL_SPACE identifier. This container must have a modeling problem with the PROBLEM identifier that calculates a model with the MODEL identifier. The example uses the MCallback class described in IMsproblemCalculationCallback.OnBreak.
Also, before starting the procedure add links to the Metabase, Ms system assemblies.
Sub Main;
Var
Mb: IMetabase;
ModelSpaceDescr: IMetabaseObjectDescriptor;
Problem: IMsProblem;
CalcSettings: IMsProblemCalculationSettings;
CallBack: MCallback;
Calculation: IMsProblemCalculation;
Breakpoints: IMsBreakpoints;
Breakpoint: IMsBreakpoint;
CalendarBreakpoint: IMsModelCalendarBreakpoint;
Model: IMsModel;
Begin
Mb := MetabaseClass.Active;
ModelSpaceDescr := Mb.ItemById("MODEL_SPACE");
Problem := Mb.ItemByIdNamespace("PROBLEM", ModelSpaceDescr.Key).Edit As IMsProblem;
CalcSettings := Problem.CreateCalculationSettings;
CallBack := New MCallback.Create;
CalcSettings.Callback := CallBack;
CalcSettings.FactIncluded := True;
Calculation := Problem.Calculate(CalcSettings);
Breakpoints := Calculation.Breakpoints;
Breakpoints.Clear;
Breakpoint := Breakpoints.Add(MsBreakpointKind.ModelCalendar);
CalendarBreakpoint := Breakpoint As IMsModelCalendarBreakpoint;
CalendarBreakpoint.Name := "CalendarBreakpoint";
Model := Mb.ItemByIdNamespace("MODEL", ModelSpaceDescr.Key).Edit As IMsModel;
CalendarBreakpoint.Model := Model;
CalendarBreakpoint.CalendarPoint := DateTime.ComposeDay(2012, 01, 01);
Calculation.Run;
Breakpoint := Breakpoints.FindByKey(0);
If Breakpoint <> Null Then
Breakpoint.Enable := False;
End If;
Calculation.Resume;
End Sub Main;
After executing the example the breakpoint that is triggered if the MODEL model is calculated for 01.01.2012 is set for the problem. The problem calculation is started. Then, if a point with the 0 key is found, it is deactivated.
See also: