>>>I need something visual that has almost no overhead that I can use to show a user that processing is still going on. I want it to look nice, but be very simple. I thought about just popping up a little modal window. Or maybe taking over their mouse cursor, but Foxpro doesn't always do well with that one. Any ideas?
>>
>>What about nice progress bar by Carlos Alloatti? I don't think it's much overhead since it's Windows API based.
>
>Before I check it out, is it SQL dependent? Do I need to put a bunch of call in my existing code for it to know how much has processed? I don't need something necessarily that shows progress, just let's them know things are still going on.
In the ctl32_progressbar, you can set the ctlMarquee style to .T. and show a progressbar just like the one shown when XP or Vista are starting.
Depending on the kind of "processing" you are doing, the progresbar may or may not update, you just have to try it:
Local llAutoYield, lnx, lnfoo
Thisform.ctl32_progressbar1.ctlMarquee = .T.
m.llAutoYield = _vfp.AutoYield
_vfp.AutoYield = .T.
For lnx = 1 To 10000000
m.lnfoo = Rand()
Endfor
Thisform.ctl32_progressbar1.ctlMarquee = .F.
_vfp.AutoYield = m.llAutoYield
This will work, a little bit jerky sometimes maybe, but it works.
The ctl32 controls are not activex, but they need _vfp.autoyield set to .F. to work properly while handling window messages. That prevents the progressbar from updating properly sometimes