Join The Works program to have access to the most current content, and to be able to ask questions and get answers from Revelation staff and the Revelation community

At 17 NOV 2003 11:58:41AM Oystein Reigem wrote:

I have this MDI frame with many buttons. Each button runs some process (by a quickevent running a handler in the MDI frame's commuter function). Very few of the handlers do all the work themselves but send events and messages to other parts of the system (to other handlers in the frame's commuter, or to handlers in a child window's commuter). Now there seems to be a problem when users click too fast between buttons. Sometimes the first button's process isn't finished when the second button's process starts running. This is a problem because the second process often will need the result of the first one.

Here's one example of a problematic situation: The first process changes the active child to a different child. The process takes a second or so because of cleanup in connection with the old child, and initialization for the new child. The second process needs the new child open and fully initialized to work properly. If the user is too quick with the second button the second process might find the wrong child, or no child, or the right child with a wrong value of some property, etc.

Any ideas on how to solve this problem? Is there some general way? Or must each case be dealt with separately?

- Oystein -


At 17 NOV 2003 11:58AM Donald Bakke wrote:

Oystein,

Yes, I would disable the menu items as well. Personally I wouldn't worry about the flicker. If you don't visually indicate that the button/function is disabled then users are going to become puzzled and annoyed that they have to click twice on a button in order to get it to work.

I see this "disable button" method used quite a bit. In fact, I have just noticed how often it gets used by MailWasher.

[email protected]

SRP Computer Solutions, Inc.


At 17 NOV 2003 11:58AM Donald Bakke wrote:

Oystein,

With what little I know regarding your situation one suggestion is to programmatically disable any buttons you don't want clicked on until the system is ready.

[email protected]

SRP Computer Solutions, Inc.


At 17 NOV 2003 11:58AM Oystein Reigem wrote:

Don,

Thanks.

That solution occurred to me after I posted.

But the case might be a bit more complicated than I described. I have menu items duplicating the buttons, and the menu items have shortcut keys.

Should I just disable the menu choices too? Would that be your reply now I've told everything? :-)

Also - how should I disable the buttons? If I do it for real my buttons will flicker. (The same for menus if I disable at the menu level instead of the item level.) Perhaps I could cheat? I could let the buttons stay enabled as such - just don't execute their code. I could have this global "disable" variable I set and then check in each button's handler. What about that?

- Oystein -


At 17 NOV 2003 11:58AM Oystein Reigem wrote:

Don,

There are some details I haven't mentioned, with possible complications, but I think I'll try your method and see what happens.

Thanks.

- Oystein -

View this thread on the Works forum...

  • third_party_content/community/commentary/forums_works/44f1e71a7921bb5485256de1005d43b5.txt
  • Last modified: 2023/12/30 11:57
  • by 127.0.0.1