procedure Clear;
procedure DelRedoStack;
procedure SetMemo(const Value: TCustomMemo);
+ function GetCanRedo: Boolean;
public
constructor Create(AOwner: TComponent); override;
procedure Deleted(const str: string; pos: integer; top: Boolean);
published
property Memo: TCustomMemo read FMemo write SetMemo;
property CanUndo: Boolean read GetCanUndo;
+ property CanRedo: Boolean read GetCanRedo;
end;
implementation
end;
end;
+function TUndoClass.GetCanRedo: Boolean;
+begin
+ result:=FReStack.Count > 0;
+end;
+
function TUndoClass.GetCanUndo: Boolean;
begin
result := FStack.Count > 0;
Left = 87
Top = 0
Action = Action5
+ Enabled = False
ImageIndex = 1
end
object ToolButton4: TToolButton
Left = 200
Top = 88
Bitmap = {
- 494C0101060008007C0010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 494C010106000800800010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000002000000001002000000000000020
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
procedure TForm1.Action3Execute(Sender: TObject);
begin
Undo.Execute;
+ ToolButton11.Enabled := Undo.CanRedo;
end;
procedure TForm1.Action4Execute(Sender: TObject);
procedure TForm1.Action5Execute(Sender: TObject);
begin
Undo.ReDo;
+ ToolButton11.Enabled := Undo.CanRedo;
end;
procedure TForm1.arrloop(item: TTreeNode; arr: TJSONArray);
procedure TForm1.inputsub(Key: Char);
begin
- delstr := Memo1.SelText;
- delpos := Memo1.SelStart;
- charmodi := false;
- if delstr <> '' then
- Undo.Deleted(delstr, Memo1.SelStart, false);
- if Key = Char(VK_RETURN) then
- Undo.Returned(delpos)
- else
- Undo.Inputted(Key, delpos);
- Undo.UpCount;
+ delstr := Memo1.SelText;
+ delpos := Memo1.SelStart;
+ charmodi := false;
+ if delstr <> '' then
+ Undo.Deleted(delstr, Memo1.SelStart, false);
+ if Key = Char(VK_RETURN) then
+ Undo.Returned(delpos)
+ else
+ Undo.Inputted(Key, delpos);
+ Undo.UpCount;
end;
procedure TForm1.loop(item: TTreeNode; JSON: TJSONObject);