TabBeforeObjectAngleChangeEventArgs.Create

Синтаксис Fore

TabBeforeObjectAngleChangeEventArgs(TabSheet: ITabSheetBox;
                       Object: ITabObject;
                       Type: TabObjectChangeType;

                       Angle: Double;

                       Cancel: Boolean);

Синтаксис Fore.NET

TabBeforeObjectAngleChangeEventArgs(TabSheet: Prognoz.Platform.Interop.Tab.TabSheetBox;
                       Object: Prognoz.Platform.Interop.Tab.ITabObject;
                       Type: Prognoz.Platform.Interop.Tab.TabObjectChangeType;

                       Angle: double;

                       Cancel: boolean);

Параметры

TabSheet. Компонент, для которого генерируется событие;

Object. Объект, для которого генерируется событие;

Type. Тип изменения, которое происходит с объектом;

Angle. Угол, на который был повёрнут объект;

Cancel. Признак того, отменять ли вращение объекта.

Описание

Конструктор Create создаёт аргумент события, возникающего при вращении объекта.

Комментарии

По умолчанию аргументы события генерируются автоматически при наступлении события. Конструктор требуется для вызова события вручную. Подробнее о ручной генерации событий вы можете узнать в разделе «Генерация событий вручную».

Значение параметра Angle всегда положительное и отсчитывается по часовой стрелке. Например, если объект повернули по часовой стрелке на 15 градусов, то параметр должен принимать значение 15, а если повернули на 15 градусов против часовой стрелки - то значение 345.

Возможные значения параметра Cancel:

Пример Fore

Для выполнения примера предполагается наличие формы, содержащей компоненты:

  1. TabSheetBox с идентификатором «TabSheetBox1». Для данного компонента должен быть назначен обработчик события OnBeforeObjectChange.

  2. UiReport с идентификатором «UiReport1», являющийся источником данных для «TabSheetBox1». Также «UiReport1» должен быть активен и содержать загруженный регламентный отчет с фигурами на активном листе.

Sub UserProc;
Var
    Tab: ITabSheet;
    Object: ITabObject;
    Argument: TabBeforeObjectAngleChangeEventArgs;
Begin
    Tab := TabSheetBox1.Source.GetTabSheet;
    Object := Tab.Objects.Item(0);
    Argument := New TabBeforeObjectAngleChangeEventArgs.Create(TabSheetBox1, Object, TabObjectChangeType.Angle, 15False);
    TabSheetBox1.OnBeforeObjectChange(TabSheetBox1, Argument);
End Sub UserProc;

В результате выполнения процедура вызовет событие OnBeforeObjectChange в компоненте «TabSheetBox1».

Пример Fore.NET

Для выполнения примера предполагается наличие формы, содержащей компоненты:

  1. TabSheetBoxNet с идентификатором «tabSheetBoxNet1».

  2. UiReportNet с идентификатором «uiReportNet1», являющийся источником данных для «tabSheetBoxNet1». Также «uiReportNet1» должен быть активен и содержать загруженный регламентный отчет с фигурами на активном листе.

Для события Shown для формы должен быть назначен обработчик TabBeforeObjectAngleChangeEventArgs_Create_FormForm_Shown.

В примере будет создан и вызван пользовательский обработчик для события OnBeforeObjectChange в компоненте «tabSheetBoxNet1».

Imports Prognoz.Platform.Interop.Tab;

// Пользовательский обработчик события OnBeforeObjectChange
Public Sub UserOnBeforeObjectChange(Sender: Object; Args: ITabObjectChangeEventArgs);
Begin
    Select Case Args.Type
    Case TabObjectChangeType.toctAngle:
        System.Diagnostics.Debug.WriteLine("Объект '" + Args.Object.Id + "' повернули");
    Case TabObjectChangeType.toctRect:
        System.Diagnostics.Debug.WriteLine("Объект '" + Args.Object.Id + "' переместили или изменили его размер");
    End Select;
End Sub UserOnBeforeObjectChange;
    
// Назначаем событию OnBeforeObjectChange пользовательский обработчик UserOnBeforeObjectChange
Private Sub TabBeforeObjectAngleChangeEventArgs_Create_FormForm_Shown(sender: System.Object; e: System.EventArgs);
Begin
    tabSheetBoxNet1.OnBeforeObjectChange += New Prognoz.Platform.Forms.Net.TabSheetBoxNet.OnBeforeObjectChangeEventHandler(UserOnBeforeObjectChange);
End Sub;
    
// Вызываем пользовательский обработчик события OnBeforeObjectChange
Public Sub UserProc();
Var
    Tab: ITabSheet;
    tObject: ITabObject;
    Argument: TabBeforeObjectAngleChangeEventArgs = New TabBeforeObjectAngleChangeEventArgs.Create();
Begin
    Tab := tabSheetBoxNet1.Source.GetTabSheet();
    tObject := Tab.Objects.Item[0];
    Argument.Create(tabSheetBoxNet1.CtrlBox As TabSheetBox, tObject, TabObjectChangeType.toctRect, 15False);
    UserOnBeforeObjectChange(tabSheetBoxNet1, Argument);
End Sub UserProc;

В результате выполнения процедура UserProc вызовет пользовательский обработчик UserOnBeforeObjectChange для события OnBeforeObjectChange в компоненте «tabSheetBoxNet1».

См. также:

TabBeforeObjectAngleChangeEventArgs