Navigation  without Java Scripts

How to update multiple dialog windows?

Question: I recently constructed a program to track time-on-task with respect to
a number of related and/or unrelated tasks simultaneously (any of which
may be timing  or "taking a break" at any particular time).  I am using
Win95 on a 200Mz, 64MbRAM Pentium.

The structure I devised was simple:  one very small task window which is
the vehicle for opening/closing/editing an arbitrary number of modeless
dialogs (one per task).

A frustrating problem arose when trying to update these windows (12
second intervals).  My first strategy was to set a timer for taskwin and
then update all dialogs (their handles having been stored as facts upon
creation) using bactracking.  This worked fine until I did any sort of
serious multitasking (I tend to use Norton3, askSam3, Quattro8,
WPerfect8, and Winfax8 at all times--these are large programs).  At
unpredictable intervals my VP program would hang and require a reset
(I use Norton 3 for this purpose).

Noting that Win95, at least, allows for a rather large number of timers,
I then changed the program such that a separate  timer was created for
taskwin and for each dialog as part of the e_create event.  This works
fine and to date I have had no hangs.

Question #1:  Is this a VP problem (I am at VP 5.02)? or an OS problem?

Question #2:  Do I need to explicitly kill each timer when a dialog
window is closed, or does the timer "go away" when the dialog window is
closed?  How can I check for this? (Assuming a computer/Win95 stays up,
I have no wish to clog up systems with thousands of timers over some
period of time as a result of opening and closing dialogs.)

Answer: If you update all dialogs through one timer you can have problems due to you
try to exchange information among a big number of tasks.
If you create many timers, your e_Timer events do not come simultaneously,
so you exchange information at each time only between your main prolog
program and one of child tasks.

Please use many timers.

You should kill each timer after closing of dialog.
The common place for this is e_Destroy event of the appropriate window or
dialog.

Yuri Iliin
VPI Group, Prolog Development Center Ltd.