473,224 Members | 1,582 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,224 software developers and data experts.

does vb2005 have builtin UnDo feature for apps? or do I have to wr

Hello,

Does vb2005 have a built-in UnDo feature / object for applications so that I
can undo actions like other windows apps? Or do I have to write my own UnDo
routine?

If vb2005 does have a builtin Undo feature / object / command -- how to
implement it? invoke it?

If there is no builtin undo feature - is there a recommended way to write an
undo action? what would this way be?

Thanks,
Rich
Mar 15 '07 #1
4 1566

"Rich" <Ri**@discussions.microsoft.comwrote in message
news:D5**********************************@microsof t.com...
Hello,

Does vb2005 have a built-in UnDo feature / object for applications so that
I
can undo actions like other windows apps? Or do I have to write my own
UnDo
routine?

If vb2005 does have a builtin Undo feature / object / command -- how to
implement it? invoke it?

If there is no builtin undo feature - is there a recommended way to write
an
undo action? what would this way be?

Thanks,
Rich
I have seen code for what you are looking for. Here are the steps.

1. Define a set of actions which can happen that will "Do" things.

2. Each action will have a Do and an UnDo routine

3. Then ensure that all updates (Do's) get executed by a kind of funnel
routine. This routine will both cause the action to be performed and if
that action is performed log the action in a collection somewhere in your
application. The application should be a stack FIFO.

4. Now you could use the CLT-Z hot key to reverse each action. Use a Pop to
get the latest action from the stack, and that Pop will remove it from the
stack.

That is the framework for what you are attempting.

Lloyd Sheen

Mar 15 '07 #2
Thanks for your reply. This sounds kind of interesting, except that the last
time I did anything which involved the "words" stack/push/pop - was in C++
in the classroom environment about 10 years ago.

When you say stack - are you refering to the Heap stack? or are you using
"Stack" metaphorically? As in - I log each action in a collection object or
a datatable or something where for example - a user updates a field in a row
in some table on the database but needs to undo that action - so the app
looks at the last row in the collection datatable where I have stored the
criteria used to update this field and what the value was before the update
and restore the previous value?

My goal is to not re-invent the Undo Wheel if it already exists in VB2005.
If I can use the Heap to reverse an action - that would be great. But if
that isn't what you are refering to, then I was planning on writing my own
undo routine where I store each action as I described above stuff to their
previous states - which would actually be a new action.

If you ARE referring to the Heap, could you refresh my brain on how to push
and pop stuff on the heap?

Thanks,
Rich

"Lloyd Sheen" wrote:
>
"Rich" <Ri**@discussions.microsoft.comwrote in message
news:D5**********************************@microsof t.com...
Hello,

Does vb2005 have a built-in UnDo feature / object for applications so that
I
can undo actions like other windows apps? Or do I have to write my own
UnDo
routine?

If vb2005 does have a builtin Undo feature / object / command -- how to
implement it? invoke it?

If there is no builtin undo feature - is there a recommended way to write
an
undo action? what would this way be?

Thanks,
Rich

I have seen code for what you are looking for. Here are the steps.

1. Define a set of actions which can happen that will "Do" things.

2. Each action will have a Do and an UnDo routine

3. Then ensure that all updates (Do's) get executed by a kind of funnel
routine. This routine will both cause the action to be performed and if
that action is performed log the action in a collection somewhere in your
application. The application should be a stack FIFO.

4. Now you could use the CLT-Z hot key to reverse each action. Use a Pop to
get the latest action from the stack, and that Pop will remove it from the
stack.

That is the framework for what you are attempting.

Lloyd Sheen

Mar 16 '07 #3

"Rich" <Ri**@discussions.microsoft.comwrote in message
news:32**********************************@microsof t.com...
Thanks for your reply. This sounds kind of interesting, except that the
last
time I did anything which involved the "words" stack/push/pop - was in
C++
in the classroom environment about 10 years ago.

When you say stack - are you refering to the Heap stack? or are you using
"Stack" metaphorically? As in - I log each action in a collection object
or
a datatable or something where for example - a user updates a field in a
row
in some table on the database but needs to undo that action - so the app
looks at the last row in the collection datatable where I have stored the
criteria used to update this field and what the value was before the
update
and restore the previous value?

My goal is to not re-invent the Undo Wheel if it already exists in VB2005.
If I can use the Heap to reverse an action - that would be great. But if
that isn't what you are refering to, then I was planning on writing my own
undo routine where I store each action as I described above stuff to their
previous states - which would actually be a new action.

If you ARE referring to the Heap, could you refresh my brain on how to
push
and pop stuff on the heap?

Thanks,
Rich

"Lloyd Sheen" wrote:
>>
"Rich" <Ri**@discussions.microsoft.comwrote in message
news:D5**********************************@microso ft.com...
Hello,

Does vb2005 have a built-in UnDo feature / object for applications so
that
I
can undo actions like other windows apps? Or do I have to write my own
UnDo
routine?

If vb2005 does have a builtin Undo feature / object / command -- how
to
implement it? invoke it?

If there is no builtin undo feature - is there a recommended way to
write
an
undo action? what would this way be?

Thanks,
Rich

I have seen code for what you are looking for. Here are the steps.

1. Define a set of actions which can happen that will "Do" things.

2. Each action will have a Do and an UnDo routine

3. Then ensure that all updates (Do's) get executed by a kind of funnel
routine. This routine will both cause the action to be performed and if
that action is performed log the action in a collection somewhere in your
application. The application should be a stack FIFO.

4. Now you could use the CLT-Z hot key to reverse each action. Use a Pop
to
get the latest action from the stack, and that Pop will remove it from
the
stack.

That is the framework for what you are attempting.

Lloyd Sheen

The Stack I am talking about is a "Collection" class in Dot.Net V2.0. Check
out System.Collections.Generic.Stack(Of T). The 'T' is the type of object
you are storing. If you create a set of Action objects then they should all
inherit from a base class that has the methods defined that you will use
'Do' and UnDo'. Then the declaration for the Stack would be

Dim MyStack as System.Collections.Generic.Stack(Of BaseClassForActions)

Then to add a new action you create the action (after it is succesfully
completed) to the stack with the following code (assuming an class named
ActionAdd has been defined and has a method Do which returns a boolean
indicating the success of the action) :

Dim MyAction as new ActionAdd
MyAction.NewText = 'NewText'
if MyAction.Do then
' action worked
MyStack.Push(MyAction)
end if
Now if you want to handle an UnDo the code would be as follows:

Dim UnDoAction as BaseClassForActions ' Note we use the baseclass so that
all action objects returned from a Pop will have the UnDo method

if MyStack.count 0 then
UnDoAction = MyStack.Pop
UnDoAction.UnDo
end if

This should provide a start for the general framework. The actual action
objects are according to the type of application you have.

Lloyd Sheen

Mar 16 '07 #4
Thanks. This sounds like a little more fun than I was planning on. I will
give this a try on a test app.

"Lloyd Sheen" wrote:
>
"Rich" <Ri**@discussions.microsoft.comwrote in message
news:32**********************************@microsof t.com...
Thanks for your reply. This sounds kind of interesting, except that the
last
time I did anything which involved the "words" stack/push/pop - was in
C++
in the classroom environment about 10 years ago.

When you say stack - are you refering to the Heap stack? or are you using
"Stack" metaphorically? As in - I log each action in a collection object
or
a datatable or something where for example - a user updates a field in a
row
in some table on the database but needs to undo that action - so the app
looks at the last row in the collection datatable where I have stored the
criteria used to update this field and what the value was before the
update
and restore the previous value?

My goal is to not re-invent the Undo Wheel if it already exists in VB2005.
If I can use the Heap to reverse an action - that would be great. But if
that isn't what you are refering to, then I was planning on writing my own
undo routine where I store each action as I described above stuff to their
previous states - which would actually be a new action.

If you ARE referring to the Heap, could you refresh my brain on how to
push
and pop stuff on the heap?

Thanks,
Rich

"Lloyd Sheen" wrote:
>
"Rich" <Ri**@discussions.microsoft.comwrote in message
news:D5**********************************@microsof t.com...
Hello,

Does vb2005 have a built-in UnDo feature / object for applications so
that
I
can undo actions like other windows apps? Or do I have to write my own
UnDo
routine?

If vb2005 does have a builtin Undo feature / object / command -- how
to
implement it? invoke it?

If there is no builtin undo feature - is there a recommended way to
write
an
undo action? what would this way be?

Thanks,
Rich

I have seen code for what you are looking for. Here are the steps.

1. Define a set of actions which can happen that will "Do" things.

2. Each action will have a Do and an UnDo routine

3. Then ensure that all updates (Do's) get executed by a kind of funnel
routine. This routine will both cause the action to be performed and if
that action is performed log the action in a collection somewhere in your
application. The application should be a stack FIFO.

4. Now you could use the CLT-Z hot key to reverse each action. Use a Pop
to
get the latest action from the stack, and that Pop will remove it from
the
stack.

That is the framework for what you are attempting.

Lloyd Sheen


The Stack I am talking about is a "Collection" class in Dot.Net V2.0. Check
out System.Collections.Generic.Stack(Of T). The 'T' is the type of object
you are storing. If you create a set of Action objects then they should all
inherit from a base class that has the methods defined that you will use
'Do' and UnDo'. Then the declaration for the Stack would be

Dim MyStack as System.Collections.Generic.Stack(Of BaseClassForActions)

Then to add a new action you create the action (after it is succesfully
completed) to the stack with the following code (assuming an class named
ActionAdd has been defined and has a method Do which returns a boolean
indicating the success of the action) :

Dim MyAction as new ActionAdd
MyAction.NewText = 'NewText'
if MyAction.Do then
' action worked
MyStack.Push(MyAction)
end if
Now if you want to handle an UnDo the code would be as follows:

Dim UnDoAction as BaseClassForActions ' Note we use the baseclass so that
all action objects returned from a Pop will have the UnDo method

if MyStack.count 0 then
UnDoAction = MyStack.Pop
UnDoAction.UnDo
end if

This should provide a start for the general framework. The actual action
objects are according to the type of application you have.

Lloyd Sheen

Mar 16 '07 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Enigman O'Maly | last post by:
I've written, er, that is, recorded and re-written a lot of little useful macros to help me with a spreadsheet dealing with financial investments. Very handy they are, yes, but sometimes I wish I...
2
by: Tony Nelson | last post by:
I'm looking for a "pythonic" GTK Undo library/class. It would have a framework for Undo/Redo, and would provide Undo/Redo for TextView, Entry, and containers and other classes. In a "batteries...
1
by: lbbs | last post by:
Will access allow you to undo more than one step. On mine it seams that you can only undo the last thing you did. In excel for example you can undo at least a dozen steps backwards. In...
11
by: Mad Joe | last post by:
I'm using a richTextBox for editing a source code (with Syntax Highlighting) of my own programming language... How come that myRichTextBox doesn't respond to Undo/Redo functions by using default...
11
by: Brian W | last post by:
Yet another editor problem To reproduce do the following 1) Open a Webform and switch to HTML edit mode 2) Enter the Following (include spaces) This is some text before <asp:hyperlink...
2
by: Omar Abid | last post by:
Hi, This the best site where you can find Hi members, We are happy to tell that if you search for : jobs with high wage or to debug a program or to find a good source code and to make a good...
12
by: rdemyan via AccessMonster.com | last post by:
I'm having a complicated linking problem. Before I get into the particulars, I'd like to know how Access links to the back-end file at startup, AFTER I've distributed my application to the client....
113
by: John Nagle | last post by:
The major complaint I have about Python is that the packages which connect it to other software components all seem to have serious problems. As long as you don't need to talk to anything outside...
1
by: =?Utf-8?B?UmljaA==?= | last post by:
Hello, I just upgraded the motherboard and cpu on my computer (core2Duo). I also imaged the contents of my old harddrive to a new one(500g) - Windows XP sp2 (version2002). Everything appears...
1
isladogs
by: isladogs | last post by:
The next online meeting of the Access Europe User Group will be on Wednesday 6 Dec 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, Mike...
0
by: veera ravala | last post by:
ServiceNow is a powerful cloud-based platform that offers a wide range of services to help organizations manage their workflows, operations, and IT services more efficiently. At its core, ServiceNow...
0
by: VivesProcSPL | last post by:
Obviously, one of the original purposes of SQL is to make data query processing easy. The language uses many English-like terms and syntax in an effort to make it easy to learn, particularly for...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 3 Jan 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). For other local times, please check World Time Buddy In...
0
by: abbasky | last post by:
### Vandf component communication method one: data sharing ​ Vandf components can achieve data exchange through data sharing, state sharing, events, and other methods. Vandf's data exchange method...
2
by: jimatqsi | last post by:
The boss wants the word "CONFIDENTIAL" overlaying certain reports. He wants it large, slanted across the page, on every page, very light gray, outlined letters, not block letters. I thought Word Art...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
0
Git
by: egorbl4 | last post by:
Скачал я git, хотел начать настройку, а там вылезло вот это Что это? Что мне с этим делать? ...
1
by: davi5007 | last post by:
Hi, Basically, I am trying to automate a field named TraceabilityNo into a web page from an access form. I've got the serial held in the variable strSearchString. How can I get this into the...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.