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