Skip to main content

What's Going On? : Letting the users know

As many UX (user experience) people will point out, the good ol' WAIT WINDOW command, while useful for showing progress, isn't very visually pleasing.

Many developers skip the WAIT WINDOW and favor a progress bar but as Andy Kramek has pointed out on his blog, when you're scanning through a 20,000 record table, tracking the percentage complete can slow you down.

While it's nice to show the actual percentage, even Vista now just shows an animated therm that really doesn't show progress.

What alternatives are there?

MSGSVC has a useful therm approach - which can display an animated icon.But it uses a Timer and those can take up valuable resources.

I've recently taken to putting up a form with an animated GIF on it among other things. I used to use the animated AVI file approach that MS recommended years ago but the big problem there is that it's too hard to create a nice AVI or the tools just aren't there to do it. (My users are getting tired of seeing the flying folders when I'm working - if anyone knows of a good resource for useful AVI animations for developers, please let me know).

Doesn't the animated GIF use resources? Yes, it does. So I've built it as a COM EXE and call it as its own tool.

LOCAL loForm
loForm = CREATEOBJECT("_akdisp.showani")
loForm.DisplayForm("Updating files...")

The showAni method simply displays a form in the center of the screen with an animated GIF on it.

Then when I'm done,


Are there problems with this approach? Oh yeah, it's set to always appear on top so the user could, in theory, flip back into the main application and not see anything. In addition, I have to register the EXE which could be a problem with certain user permissions but I haven't seen any.

The reason I ask is that I'm thinking of various projects that might prove useful on VFPX. A revised set of UI classes might be useful or maybe I can coerce Emerson into putting something into this themed controls library.

What tools do *you* use to give users feedback?


Kevin Ragsdale said…

Glyfx has three nice sets of animations available at

And, they're on sale this week -- 50% off -- you can get all 3 sets for $28...
I use the _thermometer class (in _therm.vcx, distributed with the FoxPro Foundation Classes), because I like having the percentage completed displayed along with the moving bar.

For looping through large tables, I don't update the _thermometer every time. For instance:

* Update every 100 records:
lnCounter = lnCounter + 1
IF MOD(lnCounter, 100) = 0

* Do stuff...

The MOD() is called every time, but I figure it's less resource intensive than updating the _therm every time...

Popular posts from this blog

Programmers vs. Developers vs. Architects

I received an email this morning from Brandon Savage's newsletter. Brandon's a PHP guru (works at Mozilla) but his newsletter and books have some great overall perspectives for developers of all languages. However, this last one (What's the difference between developers and architects?) kind of rubs me the wrong way. Either that, or I've just missed the natural inflation of job descriptions. (maybe, it's like the change in terminology between Garbage man and Waste Engineer or Secretary and Office Administrator)

So maybe it's just me - but I think there's still a big difference between Programmer, Developer and then of course, architect. The key thing here is that every role has a different perspective and every one of those perspectives has value. The original MSF create roles like Product Manager, Program Manager, Developer, Tester, etc - so every concept may pigeon hole people into different roles. But the statements Brandon makes are often distinctions I…

Security in Windows 10

 discusses some Windows 10 privacy settings and their implications.

"Finally, we will access, disclose and preserve personal data, including your content (such as the content of your emails, other private communications or files in private folders), when we have a good faith belief that doing so is necessary." "In other words, Microsoft won't treat your local data with any more privacy than it treats your data on its servers and may upload your local data to its servers arbitrarily"
I did a quick install on a VM choosing the Express settings. When I fully deploy this on a real workstation, I will likely choose to wade through all of the individual pages, as David recommends.

Of course, losing one's privacy is nothing new - it's happening all over the place (despite Santa Ana's police force's lawsu…


I'm not TRYING to be "fanboy-flame bait" but what I saw yesterday was a typical "Do it this way, now do it this way and then we'll go back to this way" all over again.... a move similar to what Microsoft does to developers on an ongoing basis.

Remember the first iPhone? Smooth and curved, at least as far as it could be back then. I still pull out my 3G and can see the curves on it.

Then the 4 came out and "boxy" was all the rage. Everything should be "tight with corners"

Now iPhone 6.... smooth and curvy is back. Granted I don't have the actual device yet, but that's the message.

Guess that means the iPhone 8 will be back to boxy.

And honestly, Apple Watch is not worth "one more thing" --- especially when everyone knows it's going to be shown. "One more thing" would be something no one saw coming.  The device itself ? Very interesting and yes, definitely lots of potential but "one more thing" wor…