IUndoRedo.Enabled

Синтаксис

Enabled: Boolean;

Описание

Свойство Enabled определяет доступность стека изменений (отмены/повтора) для пользователя.

Комментарии

При значении False стек отмены не используется. Для задействования стека изменений установите в свойстве Enabled значение True. После этого все действия, производимые пользователем, будут сохраняться в стеке и при необходимости могут быть отменены/повторены. Количество действий, которые могут быть сохранены в стеке, ограничивается количеством, заданным в свойстве Limit.

Для отмены произведенных действий используйте метод Undo, для повтора отмененных действий - метод Redo.

При изменении значения данного свойства автоматически изменится значение свойства Enable в стеках изменений всех дочерних объектов.

Пример

Для выполнения примера предполагается наличие формы, расположенных на ней компонентов ReportBox и UiReport и панели инструментов «Toolbar1», содержащей пять кнопок. Для кнопок создайте обработчики событий. Компонент UiReport является источником данных для ReportBox.

Class SAMPLEForm: Form
    ReportBox1: ReportBox;
    UiReport1: UiReport;
    Toolbar1: Toolbar;
    ToolbarButton1: ToolbarButton;
    ToolbarButton2: ToolbarButton;
    ToolbarButton3: ToolbarButton;
    ToolbarButton4: ToolbarButton;
    ToolbarButton5: ToolbarButton;
    UnRed: IUndoRedo;

    Sub SAMPLEFormOnCreate(Sender: Object; Args: IEventArgs);
    Var
        MB: IMetabase;
        Report: IPrxReport;
    Begin
        MB := MetabaseClass.Active;
        Report := MB.ItemById("Report_1").Edit As IPrxReport;
        UiReport1.Instance := Report;
        UnRed := Report.UndoRedo;
        UnRed.Enabled := True;
        UnRed.Limit := 10;
    End Sub SAMPLEFormOnCreate;

    Sub ToolbarButton1OnClick(Sender: Object; Args: IEventArgs);
    Begin
        If UnRed.UndoCount > 0 Then
            UnRed.Undo;
        End If;
    End Sub ToolbarButton1OnClick;
    
    Sub ToolbarButton2OnClick(Sender: Object; Args: IEventArgs);
    Begin
        If UnRed.RedoCount > 0 Then
            UnRed.Redo;
        End If;
    End Sub ToolbarButton2OnClick;
    
    Sub ToolbarButton3OnClick(Sender: Object; Args: IEventArgs);
    Begin
        UnRed.Flush;
    End Sub ToolbarButton3OnClick;
    
    Sub ToolbarButton4OnClick(Sender: Object; Args: IEventArgs);
    Begin
        If UnRed.UndoCount > 0 Then
            text := UnRed.UndoState(UnRed.UndoCount - 1).Action;
        End If;
    End Sub ToolbarButton4OnClick;
    
    Sub ToolbarButton5OnClick(Sender: Object; Args: IEventArgs);
    Begin
        If UnRed.RedoCount > 0 Then
            text := UnRed.RedoState(UnRed.RedoCount - 1).Action;
        End If;
    End Sub ToolbarButton5OnClick;

End Class SAMPLEForm;

После выполнения примера при нажатии кнопки «Button1» будет произведена отмена последнего выполненного действия; при нажатии кнопки «Button2» будет произведен повтор отмененного действия; при нажатии кнопки «Button3» будет произведена очистка стека изменений; при нажатии кнопки «Button4» в текст формы будет выводиться описание последнего действия, хранящегося в стеке отмены; при нажатии кнопки «Button5» в текст формы будет выводиться описание последнего действия, хранящегося в стеке повтора.

См. также:

IUndoRedo