IAuditFiltersContainer.Callback

Синтаксис

Callback: IOperationCallback;

Описание

Свойство Callback определяет действие, выполняемое при возникновении конфликта во время загрузки контейнера.

Пример

Для выполнения примера предполагается наличие файла «C:\Filter.xml», содержащего более одного фильтра протокола доступа.

Class MyOperationCallback: OperationCallback

Parent: IWin32Window;

 

Public Sub OnOperation(Operation: Integer; O1: Variant; O2: Variant; Var State: Integer);

Var

YesPress: Boolean;

Begin

YesPress := False;

If WinApplication.YesNoCancelBox("Заменить наименование '" + (O1 As IAuditFilterObject).Name + "' на '" + (O2 As IAuditFilterObject).Name + "'?", YesPress)

Then

State := YesPress ? CallbackOperationState.Replace : CallbackOperationState.Skip;

Else

State := CallbackOperationState.Stop;

End If;

End Sub OnOperation;

 

End Class MyOperationCallback;

 

Sub Main;

Var

FilCon, FilConDef: IAuditFiltersContainer;

FilObj, FilObjDef: IAuditFilterObject;

par: integer;

Begin

FilCon := New AuditFiltersContainer.Create;

FilCon.LoadFromFile("C:\Filter.xml");

FilCon.Callback := New MyOperationCallback.Create;

FilConDef := New AuditFiltersContainer.Create;

FilConDef.Load;

FilCon.Callback.OnOperation(0, FilCon.Filters.Item(1), FilConDef.Filters.Item(0), par);

If par = 1 Then

FilObj := FilCon.Filters.Item(1).Edit;

FilObjDef := FilConDef.Filters.Item(0);

FilObj.Name := FilObjDef.Name;

FilObj.Save;

FilCon.SaveToFile("C:\NameRepl.xml");

End If;

End Sub Main;

При выполнении примера, будет сгенерирован конфликт при загрузке файла. Пользователю будет предложено решение конфликта.

См. также:

IAuditFiltersContainer