TabBeforeObjectAngleChangeEventArgs(TabSheet: ITabSheetBox;
Object:
ITabObject;
Type:
TabObjectChangeType;
Angle: Double;
Cancel: Boolean);
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:
True. Вращение объекта будет отменено;
False. Вращение объекта будет выполнено.
Для выполнения примера предполагается наличие формы, содержащей компоненты:
TabSheetBox с идентификатором «TabSheetBox1». Для данного компонента должен быть назначен обработчик события OnBeforeObjectChange.
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, 15, False);
TabSheetBox1.OnBeforeObjectChange(TabSheetBox1, Argument);
End Sub UserProc;
В результате выполнения процедура вызовет событие OnBeforeObjectChange в компоненте «TabSheetBox1».
Для выполнения примера предполагается наличие формы, содержащей компоненты:
TabSheetBoxNet с идентификатором «tabSheetBoxNet1».
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, 15, False);
UserOnBeforeObjectChange(tabSheetBoxNet1, Argument);
End Sub UserProc;
В результате выполнения процедура UserProc вызовет пользовательский обработчик UserOnBeforeObjectChange для события OnBeforeObjectChange в компоненте «tabSheetBoxNet1».
См. также: