Create(Sheet: ITabSheetBox; Object: ITabObject; Rect: IGxRectF; Side: TabObjectResizingSide; [Cancel: Boolean]);
Create(Sheet: Prognoz.Platform.Interop.Tab.ITabSheetBox; Object: Prognoz.Platform.Interop.Tab.ITabObject; Rect: Prognoz.Platform.Interop.Drawing.IGxRectF; Side: Prognoz.Platform.Interop.Tab.TabObjectResizingSide; Cancel: boolean)
Sheet. Компонент, для которого генерируется событие;
Object. Объект, для которого генерируется событие;
Rect. Координаты прямоугольной области, занимаемой объектом;
Side. Сторона, которая была изменена;
Cancel. Признак отмены изменения размера объекта.
Конструктор Create создает аргумент события, происходящего при каждом изменении размера объекта.
Для выполнения примера предполагается наличие формы, содержащей компоненты TabSheetBox с наименованием TabSheetBox1 и UiReport с наименованием UiReport1, являющийся источником данных для TabSheetBox1. В свойстве Active компонента UiReport1 установите значение True. UiReport1 должен содержать загруженный регламентный отчет с фигурами на активном листе.
В примере будет создан и вызван пользовательский обработчик для события OnObjectResizing в компоненте TabSheetBox1.
Вместо компонентов Fore используйте их Fore.NET аналоги.
Добавьте ссылки на системные сборки: Drawing, Tab, Ui.
// Создаем пользовательский обработчик события OnObjectResizing
Sub UserOnObjectResizing(Sender: Object; Args: ITabObjectResizingEventArgs);
Begin
Args.Cancel := Not WinApplication.ConfirmationBox("Изменить размеры объекта: " + Args.Object.Id + "?");
End Sub UserOnObjectResizing;
// Вызываем пользовательский обработчик события OnObjectResizing
Public Sub UserProc;
Var
Tab: ITabSheet;
rObject: ITabObject;
Rect: IGxRectF;
Argument: TabObjectResizingEventArgs;
Begin
Tab := TabSheetBox1.Source.GetTabSheet;
rObject := Tab.Objects.Object("PrxShape1");
Argument := New TabObjectResizingEventArgs.Create(TabSheetBox1, rObject, Rect, TabObjectResizingSide.Left, False);
UserOnObjectResizing(TabSheetBox1, Argument);
End Sub UserProc;
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Tab;
Imports Prognoz.Platform.Interop.Ui;
…
// Создаем пользовательский обработчик события OnObjectResizing
Sub UserOnObjectResizing(Sender: Object; Args: ITabObjectResizingEventArgs);
Var
WinAppCls: WinApplicationClass = New WinApplicationClassClass();
Begin
Args.Cancel := Not WinAppCls.ConfirmationBox("Изменить размеры объекта: " + Args.Object.Id + "?", New IWin32WindowForeAdapter(Self));
End Sub UserOnObjectResizing;
// Назначаем событию OnObjectResizing пользовательский обработчик UserOnObjectResizing
Private Sub TabOnObjectResizingEventArgs_Create_FormForm_Shown(sender: System.Object; e: System.EventArgs);
Begin
TabSheetBoxNet1.OnObjectResizing += New Prognoz.Platform.Forms.Net.TabSheetBoxNet.OnObjectResizingEventHandler(UserOnObjectResizing);
End Sub;
// Вызываем пользовательский обработчик события OnObjectResizing
Public Sub UserProc();
Var
Tab: ITabSheet;
rObject: ITabObject;
Rect: GxRectFClass = New GxRectFClass.Create();
Argument: TabObjectResizingEventArgsClass = New TabObjectResizingEventArgsClass.Create();
Begin
Tab := TabSheetBoxNet1.Source.GetTabSheet();
rObject := Tab.Objects.Object["PrxShape1"];
Argument.Create(TabSheetBoxNet1.CtrlBox As TabSheetBox, rObject, Rect, TabObjectResizingSide.torsLeft, False);
UserOnObjectResizing(TabSheetBoxNet1, Argument);
End Sub UserProc;
В результате выполнения процедура UserProc вызовет пользовательский обработчик UserOnObjectResizing.
См. также: