Enabled: Boolean;
Enabled: Boolean;
Свойство Enabled определяет доступность стека изменений (отмены/повтора) для пользователя.
При значении False стек отмены не используется. Для задействования стека изменений установите в свойстве Enabled значение True. После этого все действия, производимые пользователем, будут сохраняться в стеке и при необходимости могут быть отменены/повторены. Количество действий, которые могут быть сохранены в стеке, ограничивается количеством, заданным в свойстве Limit.
Для отмены произведенных действий используйте метод Undo, для повтора отмененных действий - метод Redo.
Для выполнения примера предполагается наличие формы, расположенных на ней компонентов 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» в текст формы будет выводиться описание последнего действия, хранящегося в стеке повтора.
Для выполнения примера предполагается наличие формы, расположенных на ней компонентов 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» в текст формы будет выводиться описание последнего действия, хранящегося в стеке повтора.
См. также: