PointCount: Integer;
Свойство PointCount возвращает общее количество шагов, которые будут пройдены при расчете задачи в контейнере моделирования. Свойство зависит от количества объектов, участвующих в расчете.
Public Class MCallback: Object, IMsProblemCalculationCallback
Public Calculation: IMsProblemCalculation;
Public Sub OnError(Message: String);
Begin
Debug.WriteLine(Message);
End Sub OnError;
Public Sub OnFinish;
Begin
Debug.WriteLine("Расчет задачи завершен");
Calculation := Null;
End Sub OnFinish;
Public Sub OnMessage(Message: String);
Begin
Debug.Write(DateTime.Now);
Debug.WriteLine(": " + Message);
End Sub OnMessage;
Public Sub OnModelCalculation(Model: IMsModel);
Begin
Debug.WriteLine("Расчет модели: " + (Model As IMetabaseObject).Id);
End Sub OnModelCalculation;
Public Sub OnStep;
Begin
Debug.WriteLine("Выполнено шагов: " + Calculation.PointPassed.ToString + " из " + Calculation.PointCount.ToString);
End Sub OnStep;
End Class MCallback;
Sub Main;
Var
MB: IMetabase;
MObj: IMetabaseObject;
Problem: IMsProblem;
CallBack: MCallback;
CalcSett: IMsProblemCalculationSettings;
Calculation: IMsProblemCalculation;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemByIdNamespace("PROBLEM_1", MB.ItemById("KONT_MODEL").Key).Edit;
Problem := MObj As IMsProblem;
CallBack := New MCallback.Create;
CalcSett := Problem.CreateCalculationSettings;
CalcSett.Callback := CallBack;
Calculation := Problem.Calculate(CalcSett);
CallBack.Calculation := Calculation;
Calculation.Run;
MObj.Save;
End Sub Main;
После выполнения примера будет осуществлен расчет задачи с идентификатором "PROBLEM_1". Для отслеживания событий, происходящих во время расчета, используется объект пользовательского класса "MCallback". При отработке события OnStep в консоль будет выводиться количество пройденных шагов расчета.
См. также: