CreateObjectChangeArgs(TabSheet: ITabSheetBox;
Object:
ITabObject;
Type:
TabObjectChangeType);
CreateObjectChangeArgs(TabSheet: Prognoz.Platform.Interop.Tab.TabSheetBox;
Object:
Prognoz.Platform.Interop.Tab.ITabObject;
Type:
Prognoz.Platform.Interop.Tab.TabObjectChangeType);
TabSheet. Компонент, для которого генерируется событие;
Object. Объект, для которого генерируется событие;
Type. Тип изменения, которое происходит с объектом.
Конструктор CreateObjectChangeArgs создаёт аргумент события, возникающего при изменении объекта.
По умолчанию аргументы события генерируются автоматически при наступлении события. Конструктор требуется для вызова события вручную. Подробнее о ручной генерации событий вы можете узнать в разделе «Генерация событий вручную».
Для выполнения примера предполагается наличие формы, содержащей компоненты:
TabSheetBox с идентификатором «TabSheetBox1». Для данного компонента должен быть назначен обработчик события OnAfterObjectChange.
UiReport с идентификатором «UiReport1», являющийся источником данных для «TabSheetBox1». Также «UiReport1» должен быть активен и содержать загруженный регламентный отчет с фигурами на активном листе.
Sub UserProc;
Var
Tab: ITabSheet;
Object: ITabObject;
Argument: TabObjectChangeEventArgs;
Begin
Tab := TabSheetBox1.Source.GetTabSheet;
Object := Tab.Objects.Item(0);
Argument := New TabObjectChangeEventArgs.CreateObjectChangeArgs(TabSheetBox1, Object, TabObjectChangeType.Angle);
TabSheetBox1.OnAfterObjectChange(TabSheetBox1, Argument);
End Sub UserProc;
В результате выполнения процедура вызовет событие OnAfterObjectChange в компоненте «TabSheetBox1».
Для выполнения примера предполагается наличие формы, содержащей компоненты:
TabSheetBoxNet с идентификатором «tabSheetBoxNet1».
UiReportNet с идентификатором «uiReportNet1», являющийся источником данных для «tabSheetBoxNet1». Также «uiReportNet1» должен быть активен и содержать загруженный регламентный отчет с фигурами на активном листе.
Для события Shown для формы должен быть назначен обработчик TABOBJECTCHANGEEVENTARGS_CREATEOBJECTCHANGEARGS_FORMForm_Shown.
В примере будет создан и вызван пользовательский обработчик для события OnAfterObjectChange в компоненте «tabSheetBoxNet1».
Imports Prognoz.Platform.Interop.Tab;
…
// Пользовательский обработчик события OnAfterObjectChange
Public Sub UserOnAfterObjectChange(Sender: Object; Args: TabObjectChangeEventArgs);
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 UserOnAfterObjectChange;
// Назначаем событию OnAfterObjectChange пользовательский обработчик UserOnAfterObjectChange
Private Sub TABOBJECTCHANGEEVENTARGS_CREATEOBJECTCHANGEARGS_FORMForm_Shown(sender: System.Object; e: System.EventArgs);
Begin
tabSheetBoxNet1.OnAfterObjectChange += New Prognoz.Platform.Forms.Net.TabSheetBoxNet.OnAfterObjectChangeEventHandler(UserOnAfterObjectChange);
End Sub;
// Вызываем пользовательский обработчик события OnAfterObjectChange
Public Sub UserProc();
Var
Tab: ITabSheet;
Object: ITabObject;
Argument: TabObjectChangeEventArgsClass;
Begin
Tab := tabSheetBoxNet1.Source.GetTabSheet();
Object := Tab.Objects.Item[0];
Argument := New TabObjectChangeEventArgsClass.Create();
Argument.CreateObjectChangeArgs(tabSheetBoxNet1.CtrlBox As TabSheetBox, Object, TabObjectChangeType.toctAngle);
UserOnAfterObjectChange(tabSheetBoxNet1, Argument);
End Sub UserProc;
В результате выполнения процедура UserProc вызовет пользовательский обработчик UserOnAfterObjectChange для события OnAfterObjectChange в компоненте «tabSheetBoxNet1».
См. также: