TabBeforeObjectAngleChangeEventArgs(TabSheet: ITabSheetBox;
Object:
ITabObject;
Type:
TabObjectChangeType;
Value: IGxRectF;
Cancel: Boolean);
TabBeforeObjectAngleChangeEventArgs(TabSheet: Prognoz.Platform.Interop.Tab.TabSheetBox;
Object:
Prognoz.Platform.Interop.Tab.ITabObject;
Type:
Prognoz.Platform.Interop.Tab.TabObjectChangeType;
Value: Prognoz.Platform.Interop.Drawing.IGxRectF;
Cancel: boolean);
TabSheet. Компонент, для которого генерируется событие;
Object. Объект, для которого генерируется событие;
Type. Тип изменения, которое происходит с объектом;
Value. Новое положение и размер объекта;
Cancel. Признак того, отменять ли вращение объекта.
Конструктор Create создаёт аргумент события, возникающего до перемещения объекта или изменения его размеров.
По умолчанию аргументы события генерируются автоматически при наступлении события. Конструктор требуется для вызова события вручную. Подробнее о ручной генерации событий вы можете узнать в разделе «Генерация событий вручную».
Возможные значения параметра Cancel:
True. Перемещение или изменение размеров объекта будет отменено;
False. Перемещение или изменение размеров объекта будет выполнено.
Для выполнения примера предполагается наличие формы, содержащей компоненты:
TabSheetBox с идентификатором «TabSheetBox1». Для данного компонента должен быть назначен обработчик события OnBeforeObjectChange.
UiReport с идентификатором «UiReport1», являющийся источником данных для «TabSheetBox1». Также «UiReport1» должен быть активен и содержать загруженный регламентный отчет с фигурами на активном листе.
Добавьте ссылку на системную сборку Drawing.
Sub UserProc;
Var
Tab: ITabSheet;
tObject: ITabObject;
Rect: IGxRectF;
Argument: TabBeforeObjectRectChangeEventArgs;
Begin
Tab := TabSheetBox1.Source.GetTabSheet;
tObject := Tab.Objects.Item(0);
Rect := New GxRectF.Create(10, 10, 60, 60);
Argument := New TabBeforeObjectRectChangeEventArgs.Create(TabSheetBox1, tObject, TabObjectChangeType.Rect, Rect, False);
TabSheetBox1.OnBeforeObjectChange(TabSheetBox1, Argument);
End Sub UserProc;
В результате выполнения процедура вызовет событие OnBeforeObjectChange в компоненте «TabSheetBox1».
Для выполнения примера предполагается наличие формы, содержащей компоненты:
TabSheetBoxNet с идентификатором «tabSheetBoxNet1».
UiReportNet с идентификатором «uiReportNet1», являющийся источником данных для «tabSheetBoxNet1». Также «uiReportNet1» должен быть активен и содержать загруженный регламентный отчет с фигурами на активном листе.
Для события Shown для формы должен быть назначен обработчик TabBeforeObjectRectChangeEventArgs_Create_FormForm_Shown.
В примере будет создан и вызван пользовательский обработчик для события OnBeforeObjectChange в компоненте «tabSheetBoxNet1».
Imports Prognoz.Platform.Interop.Drawing;
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 TabBeforeObjectRectChangeEventArgs_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;
Rect: GxRectFClass = New GxRectFClass.Create();
Argument: TabBeforeObjectRectChangeEventArgsClass = New TabBeforeObjectRectChangeEventArgsClass.Create();
Begin
Tab := tabSheetBoxNet1.Source.GetTabSheet();
tObject := Tab.Objects.Item[0];
Rect.Create(10, 10, 60, 60);
Argument.Create(tabSheetBoxNet1.CtrlBox As TabSheetBox, tObject, TabObjectChangeType.toctRect, Rect, False);
UserOnBeforeObjectChange(tabSheetBoxNet1, Argument);
End Sub UserProc;
В результате выполнения процедура UserProc вызовет пользовательский обработчик UserOnBeforeObjectChange для события OnBeforeObjectChange в компоненте «tabSheetBoxNet1».
См. также: