IUndoRedo.Enabled

Синтаксис Fore

Enabled: Boolean;

Синтаксис Fore.NET

Enabled: Boolean;

Описание

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

Комментарии

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

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

Пример Fore

Для выполнения примера предполагается наличие формы, расположенных на ней компонентов 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» в текст формы будет выводиться описание последнего действия, хранящегося в стеке повтора.

Пример Fore.NET

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

Imports Prognoz.Platform.Forms.Net;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.ForeSystem;

Public Partial Class SAMPLEForm: Prognoz.Platform.Forms.Net.ForeNetForm
    Public Constructor SAMPLEForm();
    Begin
        InitializeComponent();
    End Constructor;
    
    UnRed: IUndoRedo;
    
    Private Sub SAMPLEForm_Load(sender: System.Object; e: System.EventArgs);
    Var
        MB: IMetabase;
        Report: IPrxReport;
    Begin
        MB := self.Metabase;
        Report := MB.ItemById["Report2"].Edit() As IPrxReport;
        UiReportNet1.ReportUi.Instance := Report;
        UnRed := Report.UndoRedo;
        UnRed.Enabled := True;
        UnRed.Limit := 10;
    End Sub;
    
    Private Sub toolStripButton1_Click(sender: System.Object; e: System.EventArgs);
    Begin
        If UnRed.UndoCount > 0 Then
            UnRed.Undo(1);
        End If;
    End Sub;
    
    Private Sub toolStripButton2_Click(sender: System.Object; e: System.EventArgs);
    Begin
        If UnRed.RedoCount > 0 Then
            UnRed.Redo(1);
        End If;
    End Sub;
    
    Private Sub toolStripButton3_Click(sender: System.Object; e: System.EventArgs);
    Begin
        UnRed.Flush();
    End Sub;
    
    Private Sub toolStripButton4_Click(sender: System.Object; e: System.EventArgs);
    Begin
        If UnRed.UndoCount > 0 Then
            text := UnRed.UndoState[UnRed.UndoCount - 1].Action;
        End If;
    End Sub;
    
    Private Sub toolStripButton5_Click(sender: System.Object; e: System.EventArgs);
    Begin
        If UnRed.RedoCount > 0 Then
            text := UnRed.RedoState[UnRed.RedoCount - 1].Action;
        End If;
    End Sub;
    
End Class;

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

См. также:

IUndoRedo