Visual Basic |
---|
Public Event ObjectBeforeModify( _ ByVal pObject As TDMSObject, _ ByRef bCancel As Boolean _ ) |
- pObject
- Объект, который был изменен.
- bCancel
- TRUE - одновременно отменить изменение объекта и закрытие окна свойств.
1. Событие является отменяемым: присвоением параметру bCancel значения TRUE можно отменить сохранение изменений атрибутов объекта, закрытие окна свойств объекта также будет отменено. В результате пользователь может только закрыть окно свойств объекта без сохранения изменений. Внимание: отмена события никак не влияет на значения табличных атрибутов - они обновляются немедленно в ходе редактирования.
2. Событие генерируется только в случае, если какие-либо параметры объекта были изменены через Окно свойств (редактирование атрибутов или состава, изменение файлового состава, создание версий и т.п.). Если изменения были произведены на Панели свойств (без открытия окна свойств), то событие не наступит. Событие генерируется только один раз - перед закрытием окна свойств объекта, в отличие от события FormAttributeChange Событие.
3. Событие не может быть сгенерировано программно.
4. Обработчик может быть размещен в скриптах объекта, профиля и/или общесистемном. Если обработчики определены на всех уровнях, то последовательность их вызова такова:
- скрипт объекта;
- скрипт профиля пользователя;
- общесистемный скрипт.
Если на каком-либо уровне событие было отменено (параметру bCancel присвоено значение TRUE), то обработчики события, размещенные на последующих уровнях, вызваны не будут.
5. Схему последовательности генерации событий при редактировании атрибутов объекта в окне свойств см. на рисунке:
VB Script (Visual Basic) | ![]() |
---|---|
'====================================================================== 'Текст обработчика может быть размещен в скрипте объекта, 'профиля или общесистемном скрипте. Sub Object_BeforeModify(Obj, Cancel) 'Проверить тип объекта - редактирование объектов типа "Тест" запретить If Obj.ObjectDefName = "OBJ_TEST" Then msg = "Свойства объектов этого типа менять нельзя." MsgBox msg, vbInformation, "Редактирование объекта" Cancel = True End If End Sub '====================================================================== |