I don't see why form timer will not work when a form does not have input focus. You can verify this by running shader together with another demo at the same time.
I am unfamiliar with opengl or shading language. Perhaps you can help to write a more impressive demo. Thanks. 01.06.2014, в 0:01, "'Pascal Jasmin' via Beta" <[email protected]> написал(а): > > > regarding the shader demo, I guess its related to gl_paint only working with > active window rather than any bug in the timer code? > > I will note that its extremely unusual to intend for a form's timer event to > get suspended on losing focus, and I'd suggest the demo would be more > impressive to see multiple spinning cubes. > > > > ----- Original Message ----- > From: bill lam <[email protected]> > To: 'Pascal Jasmin' via Beta <[email protected]> > Cc: > Sent: Saturday, May 31, 2014 10:27:45 AM > Subject: Re: [Jbeta] [Jprogramming] opportunity to show off jhs or qt > > I disagree. It would be written differently if intended to run multiple > instances. > > I have difficulty to follow your timer example, in contrast, > Joe's is more readable to me. ymmv. > > Сб, 31 май 2014, JBeta написал(а): >> There is a bug in the shader demo. When you launch 2 instances only the >> window with mousefocus gets timer events. >> >> >> Thanks to Joe, here is a class that allows "formless timers". It can be >> coinserted into another locale (renaming new if name conflict). kill works >> without needing stop. the stop,resume,kill verbs can be copied into a " >> real form" locale, as long as it holds/sets a form variable, and probably >> provide more reliable way to stop/resume timers from multiple form instances. >> >> cocurrent 'timer' >> create =: 3 : 0 >> form=: 'a', (> 18!:5 '') >> wd 'pc ' , form >> resume y >> >> ) >> stop =: 3 : 0 >> >> wd 'psel ' , form >> wd 'ptimer 0' >> ) >> resume =: 3 : 0 >> wd 'psel ' , form >> wd 'ptimer ', ": y >> ) >> kill =: 3 : 0 >> wd 'psel ' , form >> wd 'pclose' >> codestroy '' >> ) >> timerexample =: 3 : 'smoutput (> 18!:5 '''') ,'': '', ": (6!:0) ''''' >> loc_z_=: (,&'_'@[ ,&'_'@, ":@>@])"1 0 >> >> new =: 3 : 0 >> '' new y >> : >> o =. y conew (> 18!:5 '') >> if. 0=#x do. x =.'timerexample' loc o end. >> ('a', (> o), '_timer__o') =: 3 : (x , ' ''''') >> o >> ) >> >> a =. 'smoutput (> 18!:5 '''') ,'': '', ": (6!:0)' new_timer_ 5000 >> b =. new_timer_ 6000 NB. uses locale's timerexample >> (overridable) as callback >> >> >> kill__a '' >> stop__b '' >> resume__b 3000 >> kill__b '' >> ________________________________ >> From: Joe Bogner <[email protected]> >> To: Pascal Jasmin <[email protected]> >> Cc: "[email protected]" <[email protected]> >> Sent: Saturday, May 31, 2014 5:46:51 AM >> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >> >> >> >> You can use 'wd psel' to set the current form instance which is then used by >> 'wd ptimer 0' >> >> NB. run two timers >> NB. works on j802 beta from 5/28 >> wd 'pc c' >> wd 'ptimer 1000' >> >> c_timer =: 3 : 'smoutput@:<''c'';(6!:0) ''''' >> >> wd 'pc d' >> wd 'ptimer 1000' >> >> d_timer =: 3 : 'smoutput@:<''d'';(6!:0) ''''' >> >> wd 'psel c' >> >> wd 'ptimer 0' NB. stop c >> >> wd 'psel d' >> >> wd 'ptimer 0' NB. stop d >> >> wd 'psel c' >> wd 'ptimer 1000' NB. resume c >> >> >> determined from source: >> http://www.jsoftware.com/download/j802/qtide/jqt-source.tar.gz >> >> A tip I used while testing is to use f8 to paste from keyboard. This keeps >> the output from interfering with the input >> >> >> >> >> >> On Sat, May 31, 2014 at 12:26 AM, Pascal Jasmin <[email protected]> >> wrote: >> >> >>> >>> skipping the pshow command, >>> >>> I can get both of your timers to run, but can only get one of them to stop. >>> It appears as though >>> wd 'ptimer xx' affects the most recent wd 'pc X' command, so for instance, >>> this sequence of commands: >>> >>> >>> c_timer =: 3 : 'smoutput@:<''c'';(6!:0) ''''' >>> >>> d_timer =: 3 : 'smoutput@:<''d'';(6!:0) ''''' >>> wd 'pc c' >>> wd 'ptimer 6000' >>> NB. runs as expected >>> wd 'ptimer 0' NB. stops as expected. >>> wd 'pc d' >>> wd 'ptimer 6000' NB. runs only d >>> wd 'pc c' >>> NB. still runs only d >>> wd 'ptimer 6000' NB. will run both on independent timers >>> >>> wd 'timer 0' NB.only stops C >>> wd 'pc d' >>> wd 'timer 0' NB. still d won't stop. >>> >>> erase 'd_timer' NB. stops d >>> >>> using pshow and pclose doesn't change the result. >>> >>> it turns out that I can get my object instance timers to also run, but have >>> the same problems stopping them... except its worse due to difficulty >>> setting timer off. >>> >>> a =. 6000 conew't' >>> b =. 7000 conew't' >>> runs both ok. >>> stop__a '' NB. stops b... the last pc command. >>> kill__b '' NB. runs ok apparently. But does not stop a timer >>> >>> cannot run stop__a '' or kill__a '' effectively. erase 'a' does nothing. >>> Quitting J is easiest, even this direct command fails >>> >>> kill_0_'' >>> |pclose : no parent selected: wd >>> >>> though this works: (where 0 is first locale...one part of smoutput) >>> erase 'a0_timer_0_' >>> >>> _________________________ >>> From: Joe Bogner <[email protected]> >>> To: Pascal J <[email protected]> >>> Sent: Friday, May 30, 2014 11:20:26 PM >>> >>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>> >>> >>> >>> [off list] >>> >>> Hey Pascal, did you try the code that I posted with multiple timers? That >>> worked for me... I didn't run yours but perhaps it's something with the >>> locales... Just wanted to check first to see if you were successful with a >>> more basic implementation of multiple timers >>> >>> >>> >>> >>> >>> On Fri, May 30, 2014 at 11:00 PM, 'Pascal Jasmin' via Programming >>> <[email protected]> wrote: >>> >>> thank you Bill and Joe, with new version it works. Also wd 'pshow' is not >>> necessary. >>>> >>>> multiple timers may not work though. >>>> >>>> cocurrent 't' >>>> create =: 3 : 0 >>>> ('a', (> 18!:5 ''), '_timer') =: 3 : 'smoutput (> 18!:5 '''') ,'': '', ": >>>> (6!:0) ''''' >>>> wd 'pc ' , 'a', (> 18!:5 '') >>>> resume y >>>> ) >>>> NB. a_timer =: 3 : 'smoutput (> 18!:5 '''') ,'': '', ": (6!:0) ''''' >>>> stop =: 3 : 0 >>>> wd 'ptimer 0' >>>> ) >>>> resume =: 3 : 0 >>>> wd 'ptimer ', ": y >>>> ) >>>> kill =: 3 : 0 >>>> wd 'pclose' >>>> codestroy '' >>>> ) >>>> >>>> a =. 4000 conew 't' NB. will start timer >>>> >>>> stop__a '' NB. will stop timer >>>> >>>> a >>>> ┌─┐ >>>> │1│ >>>> └─┘ >>>> >>>> ] b =. 4000 conew 't' NB. will start new timer ... replacing old. >>>> ┌─┐ >>>> │2│ >>>> └─┘ >>>> NB. you will see that only timer from b runs. resume__a 2000 will run >>>> the timer from b. This error will repeat if you create a 3rd instance. >>>> Only timer from last instance runs, even though they all have different >>>> "forms" a1 and a2. stop__a '' will stop the timer even if only b is >>>> running. >>>> >>>> a1_timer__a '' NB. a1 comes from using the locale number for variable a >>>> 1: 2014 5 30 22 28 48.138 >>>> >>>> a2_timer__b '' NB. a2 comes from using the locale number for variable b >>>> 2: 2014 5 30 22 29 17.594 >>>> >>>> If you kill either a or b, then resume__a 3000 will fail, as both "forms" >>>> are killed. >>>> >>>> resume__a 3000 >>>> |ptimer : no parent selected: wd >>>> >>>> >>>> Perhaps this is related to my poor understanding of how to run multiple >>>> copies of a form? >>>> >>>> >>>> >>>> ----- Original Message ----- >>>> From: Joe Bogner <[email protected]> >>>> To: [email protected] >>>> Cc: >>>> >>>> Sent: Friday, May 30, 2014 9:21:00 PM >>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>> >>>> Pascal, you need to update to the latest. >>>> >>>> Engine: j701/2011-01-10/11:25 >>>> >>>> Library: 8.02.06 >>>> >>>> Qt IDE: 1.1.2/5.3.0 >>>> >>>> Platform: Win 32 >>>> >>>> Installer: J802 install >>>> >>>> InstallPath: c:/users/joe/j802 >>>> >>>> >>>> >>>> This works on the latest >>>> >>>> >>>> NB. run two timers >>>> >>>> NB. works on j802 beta from 5/28 >>>> >>>> wd 'pc c' >>>> >>>> wd 'pshow' NB. shows empty form >>>> >>>> wd :: empty 'ptimer 1000' >>>> >>>> >>>> c_timer =: 3 : 'smoutput@:<''c'';(6!:0) ''''' >>>> >>>> >>>> wd 'pc d' >>>> >>>> wd 'pshow' NB. shows empty form >>>> >>>> wd :: empty 'ptimer 1000' >>>> >>>> >>>> d_timer =: 3 : 'smoutput@:<''d'';(6!:0) ''''' >>>> >>>> >>>> >>>> This worked on the previous >>>> >>>> >>>> >>>> NB. worked previous j802 beta >>>> >>>> wd 'pc a' >>>> >>>> wd 'cc g opengl version 2.0 flush' >>>> >>>> wd 'pshow' NB. shows empty form >>>> >>>> wd 'set g timer 1000' >>>> >>>> a_g_timer =: 3 : 'smoutput@:<''a'';(6!:0) ''''' >>>> >>>> >>>> wd 'pc b' >>>> >>>> wd 'cc g opengl version 2.0 flush' >>>> >>>> wd 'pshow' NB. shows empty form >>>> >>>> wd 'set g timer 1000' >>>> >>>> b_g_timer =: 3 : 'smoutput@:<''b'';(6!:0) ''''' >>>> >>>> >>>> >>>> >>>> I was stuck on it too >>>> >>>> >>>> >>>> On Fri, May 30, 2014 at 9:12 PM, 'Pascal Jasmin' via Programming < >>>> [email protected]> wrote: >>>> >>>>> Engine: j701/2011-01-10/11:25 >>>>> Library: 8.02.06 >>>>> Qt IDE: 1.1.1/5.3.0 >>>>> Platform: Win 64 >>>>> >>>>> >>>>> ----- Original Message ----- >>>>> From: bill lam <[email protected]> >>>>> To: "[email protected]" <[email protected]> >>>>> Cc: >>>>> Sent: Friday, May 30, 2014 8:12:21 PM >>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>> >>>>> what is your JVERSION ? >>>>> >>>>> 31.05.2014, в 8:03, "'Pascal Jasmin' via Programming" < >>>>> [email protected]> написал(а): >>>>> >>>>>> the shader demo works. cube rotates, etc... >>>>>> >>>>>> when I try those 3 lines from the base locale (jqt802 console session), >>>>> the error shown occurs. >>>>>> >>>>>> >>>>>> ----- Original Message ----- >>>>>> From: bill lam <[email protected]> >>>>>> To: "[email protected]" <[email protected]> >>>>>> Cc: >>>>>> Sent: Friday, May 30, 2014 8:00:24 PM >>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>> >>>>>> did the cube rotate? did you test on the latest j802/jqt beta? >>>>>> >>>>>> 31.05.2014, в 7:48, "'Pascal Jasmin' via Programming" < >>>>> [email protected]> написал(а): >>>>>> >>>>>>> from base, >>>>>>> >>>>>>> wd 'pc a;' NB. or 'pc a' >>>>>>> wd 'pshow' NB. shows empty form >>>>>>> wd 'ptimer 2000' >>>>>>> |ptimer : parent command not found: ptimer: wd >>>>>>> >>>>>>> >>>>>>> a_timer_base_ >>>>>>> 3 : 'smoutput@:(6!:0) ''''' >>>>>>> >>>>>>> is this something related to base locale? >>>>>>> >>>>>>> shader demo works ok. >>>>>>> >>>>>>> >>>>>>> ----- Original Message ----- >>>>>>> From: bill lam <[email protected]> >>>>>>> To: "[email protected]" <[email protected]> >>>>>>> Cc: >>>>>>> Sent: Friday, May 30, 2014 6:40:53 PM >>>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>>> >>>>>>> You didn't even create a form. To recap, a form is created using wd cmd >>>>> eg >>>>>>> >>>>>>> wd'pc foo' >>>>>>> >>>>>>> the locale of a form is the current locale when that wd'pc foo' is >>>>> executed. >>>>>>> >>>>>>> 31.05.2014, в 0:49, "'Pascal Jasmin' via Programming" < >>>>> [email protected]> написал(а): >>>>>>> >>>>>>>> sorry for previous message, was running timer and not ptimer. >>>>>>>> >>>>>>>> It does not appear as though you can get a timer into an arbitrary >>>>> locale by just doing wd 'pc a' there. The form has to be visible, or >>>>> needs >>>>> an initial show? >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ----- Original Message ----- >>>>>>>> From: 'Pascal Jasmin' via Programming <[email protected]> >>>>>>>> To: "[email protected]" <[email protected]> >>>>>>>> Cc: >>>>>>>> Sent: Friday, May 30, 2014 12:23:37 PM >>>>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>>>> >>>>>>>> Nice, thank you. >>>>>>>> >>>>>>>> You can also use a timer in any arbitrary locale (I think) >>>>>>>> >>>>>>>> a_timer_ =: show_base_ >>>>>>>> wd_a_ 'timer 2000' >>>>>>>> >>>>>>>> or >>>>>>>> >>>>>>>> aa =. conew 'a' >>>>>>>> wd__aa 'timer 2000' >>>>>>>> >>>>>>>> acts a little weird with just one plot window, but that might be plot >>>>> related? >>>>>>>> >>>>>>>> >>>>>>>> ----- Original Message ----- >>>>>>>> From: bill lam <[email protected]> >>>>>>>> To: 'Pascal Jasmin' via Programming <[email protected]> >>>>>>>> Cc: >>>>>>>> Sent: Friday, May 30, 2014 11:19:17 AM >>>>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>>>> >>>>>>>> Oh sorry! I thought ptimer was documented but not yet. Basically >>>>>>>> it is very simple, if your form id is 'foo' then the name of the >>>>>>>> timer callback verb is 'foo_timer' in the form's locale. Each form >>>>>>>> has its own timer. wd'ptimer xx' will start or stop timer attached >>>>>>>> to the current form. Unlike the old wd timer, form timers will not >>>>>>>> break existing code. In qt shader demo, the cube is rotated by a >>>>>>>> form timer. >>>>>>>> >>>>>>>> Пт, 30 май 2014, jprogramming написал(а): >>>>>>>>> good news about wd 'timer' for forms. A wishlist would include a way >>>>> for minimal library load for jconsole support. >>>>>>>>> >>>>>>>>> I don't see it mentioned here though >>>>> http://www.jsoftware.com/jwiki/System/ReleaseNotes/J802 >>>>>>>>> >>>>>>>>> I did see that the timer qt demo app has been updated, but its hard >>>>> to understand without a "qtdemo form" >>>>>>>>> >>>>>>>>> there is no mention of wd 'ptimer' here: >>>>> http://www.jsoftware.com/jwiki/Guides/Window%20Driver/Command%20Reference >>>>>>>>> >>>>>>>>> >>>>>>>>> ----- Original Message ----- >>>>>>>>> From: bill lam <[email protected]> >>>>>>>>> To: [email protected] >>>>>>>>> Cc: >>>>>>>>> Sent: Friday, May 30, 2014 10:08:14 AM >>>>>>>>> Subject: Re: [Jprogramming] opportunity to show off jhs or qt >>>>>>>>> >>>>>>>>> sleep will halt current thread, not a feature of jqt. One can >>>>>>>>> use wd'timer' to fire event. Furthermore J802 introduce form timer >>>>>>>>> for each form, see high-lights. >>>>>>>>> >>>>>>>>> Пт, 30 май 2014, Raul Miller написал(а): >>>>>>>>>> I made the hour hand be a 24 hour hour-hand. To make it the more >>>>> typical 12 >>>>>>>>>> hour hour-hand, change 2r24p1 2r60p1 2r60p1 to 2r12p1 2r60p1 2r60p1. >>>>>>>>>> >>>>>>>>>> And the window freezing issue is a "feature" of jqt. To avoid that >>>>> issue >>>>>>>>>> with current versions of jqt, always close (or position) the plot >>>>> window >>>>>>>>>> before starting the clock. >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Raul >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Fri, May 30, 2014 at 4:43 AM, Jan-Pieter Jacobs < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Nice! >>>>>>>>>>> I tried your code in JQT (on windows 8), some remarks: >>>>>>>>>>> >>>>>>>>>>> The hour hand is pointing about the exact oposite direction it >>>>> should. >>>>>>>>>>> Somehow, switching windows also causes the plot window to freeze, >>>>> and J to >>>>>>>>>>> become unresponsive >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Jan-Pieter >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 2014-05-30 3:18 GMT+02:00 Raul Miller <[email protected]>: >>>>>>>>>>> >>>>>>>>>>>> Here's another approach (beware of email induced line wrap in >>>>> definition >>>>>>>>>>> of >>>>>>>>>>>> show): >>>>>>>>>>>> >>>>>>>>>>>> N=:0.01*i.629 >>>>>>>>>>>> O=: [: j./ 1 2 o./ ] >>>>>>>>>>>> delay=:6!:3 NB. "sleep" >>>>>>>>>>>> >>>>>>>>>>>> show=: [: plot (O N),N*/~0.07 0.11 0.15(*O) 2r24p1 2r60p1 >>>>> 2r60p1*_3{.6!:0 >>>>>>>>>>>> bind '' >>>>>>>>>>>> >>>>>>>>>>>> show@delay@1:^:9e9'' >>>>>>>>>>>> >>>>>>>>>>>> I think this should work with both jqt and the j602 ide. >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Raul >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Thu, May 29, 2014 at 1:39 PM, David Lambert < >>>>> [email protected]> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> http://rosettacode.org/wiki/Draw_a_clock#J >>>>>>>>>>>>> >>>>>>>>>>>>> The next author need only replace the draw dyad, or rewrite the >>>>>>>>>>>>> contribution. >>>>>>>>>>>>> x is the current session time, y is the session time when the verb >>>>>>>>>>>> starts. >>>>>>>>>>>>> >>>>>>>>>>>>> round=: [: <. 0.5&+ >>>>>>>>>>>>> PICTURES=: u:16b2190+i.4 NB. arrows >>>>>>>>>>>>> draw=: [: smoutput PICTURES ((|~ #)~ { [) [: round - >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>> ---------------------------------------------------------------------- >>>>>>>>>>>>> For information about J forums see >>>>> http://www.jsoftware.com/forums.htm >>>>>>>>>>>>> >>>>>>>>>>>> >>>>> ---------------------------------------------------------------------- >>>>>>>>>>>> For information about J forums see >>>>> http://www.jsoftware.com/forums.htm >>>>>>>>>>>> >>>>>>>>>>> >>>>> ---------------------------------------------------------------------- >>>>>>>>>>> For information about J forums see >>>>> http://www.jsoftware.com/forums.htm >>>>>>>>>>> >>>>>>>>>> >>>>> ---------------------------------------------------------------------- >>>>>>>>>> For information about J forums see >>>>> http://www.jsoftware.com/forums.htm >>>>>>>>> >>>>>>>>> -- >>>>>>>>> regards, >>>>>>>>> ==================================================== >>>>>>>>> GPG key 1024D/4434BAB3 2008-08-24 >>>>>>>>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 >>>>>>>>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 >>>> >>>> >>>> >>>>> >>>>> >>>>> >>>>>> >>>>>> >>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>> For information about J forums see >>>>> http://www.jsoftware.com/forums.htm >>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>> For information about J forums see >>>>> http://www.jsoftware.com/forums.htm >>>>>>>> >>>>>>>> -- >>>>>>>> regards, >>>>>>>> ==================================================== >>>>>>>> GPG key 1024D/4434BAB3 2008-08-24 >>>>>>>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 >>>>>>>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 >>>>>>>> ---------------------------------------------------------------------- >>>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>>>> ---------------------------------------------------------------------- >>>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>>>> ---------------------------------------------------------------------- >>>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>>> ---------------------------------------------------------------------- >>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>>> ---------------------------------------------------------------------- >>>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>> ---------------------------------------------------------------------- >>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>>> ---------------------------------------------------------------------- >>>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>> ---------------------------------------------------------------------- >>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>> ---------------------------------------------------------------------- >>>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>>> >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > > -- > regards, > ==================================================== > GPG key 1024D/4434BAB3 2008-08-24 > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
