comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » GUI interface update issues
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
GUI interface update issues [message #44532] Tue, 21 June 2005 09:23
Rick Towler is currently offline  Rick Towler
Messages: 821
Registered: August 1998
Senior Member
Hello group,

I have an interesting problem with gui redraw on WinXP which maybe
someone can shed some light on.

I have an application that uses David's progress bar object. We have
some potentially long calculation times and it is important to give a
little feedback. It worked great until I added the ability to call a
new calculation routine written in C as a dlm. If I run the application
the old way (all functions written in IDL) the progress bar and GUI
interface function normally. But if I run the application using the
external routine eventually the GUI interface stops redrawing, the drop
down menu text disappears, and the progress bar fails to update. The
application runs and when calculations are finished it returns to normal
(progress bar is destroyed and interface works as expected) but there is
no feedback while running. A problem since the new calculations can
take hours and hours and it is nice to see where it is in the process.

The program is structured like so:

;-------------
setup stuff

for loop begin

progressBar->update

if (use_dlm) then begin
myDLM_proc, param1, param2, OUT1=out1, OUT2=out2...
endif else begin
IDLbased_proc, param1, param2, OUT1=out1, OUT2=out2...
endelse

for loop begin

if (use_dlm) then begin
anotherDLM_proc, param1, param2, OUT1=out1,OUT2=out2...
endif else begin
anotherIDLbased_proc, param1, param2, OUT1=out1,OUT2=out2...
endelse

endfor

endfor
;------------

Actually a lot more is going on but you get the idea.

And to elaborate on what I mean by "eventually the gui stops
responding". If I start the application and run a short calculation (~2
minutes) the first time the gui functions normally. But with every
subsequent run the progress bar moves maybe 20% of the way then I lose
the gui. If I close and restart the application the same thing happens,
first one works, then problems). If I run a long calculation (hours)
the progress bar never moves past the first tick (maybe 1%).

Why does IDL stop updating the gui? Any ideas? While the functions in
the dlm are compute intensive, they aren't particularly complicated and
only rely on some simple macros in an .h file. Just a *lot* of looping
over a moderate amount of data.

-Rick
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: Problem with IDLWAVE in XEmacs 21.5.18
Next Topic: How to calculate the curve area?

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 19:18:19 PDT 2025

Total time taken to generate the page: 0.00463 seconds