I tried to attach and  .ijs  file and it didn't work, so here it is:

NB. WhimsyCalculus(WhimsyTOT98)     2/20/2001
require 'gui/gtkwd'
Debugwd_gtkwd_=:1
require 'gl2 trig'

NB.bind=: [. @ ("_)
each=: (&.>)

range=: 3 : '(>./y)-<./y'
lint=: 13 : '(range y) % x'
ap=: 13 :'(<./y)+0,+/\x#x lint y' 
rot=:2 2"_ $ 1 _1 1 1"_ * 2 1 1 2"_ o. ]

boat=:_2+0.5*4 2 3 5 6 4 4 6 4,:3 3 2 2 3 3 7 4 4 
Fred=:_1.6+0.4*(18 9 9 6 0 3 0 6 12 18,:12 18 15 12 18 12 6 9 6 12)%3
ladybug=:0.2*0 _6 _5 _4 _2 0 2 3 3 2 6 2 2 6 2 3 3 2 0 _2 _4 _5 _6 0,:0 _1 _2 
_3 _4 _4 _3 _2 _1 0  _1 0 0 1 0 1 2 3 4 4 3 2 1 0
dragonfly=:0.1* 0 6 10 6 0 2 6 0 _6 _6 0 _24 0 _6 _6 0 6 2 0 6 10  6 0,:0 0 4 0 
0 8 12 0 12 6 0 0 0 _6 _12 0 _12 _8 0 0 _4 0 0
turtle=:0.3*6 5 4 2 3 2 3 2 0 _2 _3 _5 _3 _2 _3 _5 _5 _3 _2 _3 _5 _3 _2 0 2 3 2 
3 2 4 5 6,:0 1 0 2 4 6 4 2 3 2 4 3 4 2 1 0 0 _1 _2 _4 _3 _4 _2 _3 _2 _4 _6 _4 
_2 0 _1 0

sline=: 3 : 0"1 2
0 0 0 sline y
:
glrgb x
glpen 1 0
gllines ,y
glshow ''
)

sfill=: 3 : 0
if. _1 e. y do. glbrushnull ''
    else. glrgb y
    glbrush '' 
end. 
)

spoly=: 3 : 0"1 2 
glpolygon ,y
glshow ''
:
sfill x 
spoly y
)

spixel=: 3 : 0"1
glpixel y
glshow ''
:
glrgb x 
spixel y 
)

size=: 3 : '500+50*|: y'

see=: 3 : 0
0 0 0 see y
:
xx=:0
yy=:0
d=:0
)

swim=: 3 : 0
0 0 0 swim y
:
t=:24 ap _2p1 2p1
xx=: t
yy=: 1 o. t
d=: 2 o. t
p=:xx,:y
)

dance=: 3 : 0
0 0 0 dance y
:
t=:24 ap _3p1 3p1 
xx=:t - 2 * 1 o. t
yy=:1 - 2 * 2 o. t
d=:(2 * 1 o. t) % 1 - 2 * 2 o. t
)

x3=: 3 : '8 * (r=. 1 o. 2 * y) * 2 o. y'
y3=: 3 : '8 * (r=. 1 o. 2 * y) * 1 o.y'

  loop=: 3 : 0 
0 0 0 loop y
:
t=:48 ap 0 2p1
xx=:x3 t
yy=:y3 t
dy=:((1 o. 2*t)*2 o.t)+(1 o.t)*2*2 o. 2*t
dx=:(-(1 o. 2*t)*1 o.t)+(2 o.t)*2*2 o. 2*t
1E_5(<1)}dx
d=:dy%dx
)

fade=: 3 : 0 
200 330 100  fade y
:
t=:120 ap _2p1 2p1
xx=:4 * 2 o. t 
y=:t + 1 o. 3 * t 
d=:(-1+3 * 2 o.3* t,0)%4* 1 o. 0,t
kk=:1.5
)

TOT98=: 0 : 0
pc tot98;picon fred\fred.ico 0;pn "Tool of Thought X, A Whimsyware Product from 
Stochastic Services";
xywh 245 10 65 40;cc lis0 listbox ws_vscroll;
xywh 245 55 65 40;cc lis1 listbox ws_vscroll;
xywh 245 100 65 40;cc lis2 listbox ws_vscroll;
xywh 245 150 30 30;cc show button bs_ownerdraw;cn "fred\ss.ico";
xywh 280 150 30 30;cc pain button bs_ownerdraw;cn "fred\ssg.ico";
xywh 245 185 65 15;cc clear button;cn "Clear";
xywh 245 205 65 15;cc cancel button;cn "Close"; 
xywh 3 3 220 220;cc g isigraph;
pas 6 6;pcenter;
)

tot98_run=: 3 : 0
forms=:;:'boat Fred ladybug dragonfly turtle '
paths=:;:'see swim dance loop fade '
colors=:;:'red green blue yellow orange '
red=:255 0 0
green=:0 255 0
blue=:0 0 255
yellow=:255 255 0
orange=:255 126 0
wd TOT98
wd 'set lis0 ',;forms, each LF
wd 'setfont lis0 "MS Sans Serif" 11 bold'
wd 'set lis1 ',;paths, each LF
wd 'setfont lis1 "MS Sans Serif" 11 bold'
wd 'set lis2 ',;colors, each LF
wd 'setfont lis2 "MS Sans Serif" 11 bold'
wd 'setfont clear "MS Sans Serif" 11'
wd 'setfont cancel "MS Sans Serif" 11'
smoutput 'a0'
label_there.
smoutput 'a1'
while. 1 do. 
smoutput 'a2'
   wd 'wait'
   k=:wd 'q'
   smoutput 'a3'
   if.
   smoutput 'a4'
      (*/'show' = 4{.>9{{:"1 k) +. */'pain' = 4{.>9{{:"1 k
   do.
      if.
         */'pain' = 4{.>9{{:"1 k
      do.   
         wd ".'glrgb ',":?3#255
         glbrush ''
         glflood 100 120 0 127 255
      end.
      if. 
         */'see' = 3{.>14{{:"1 k
      do.
         xx=:0
         yy=:0
         d=:0
         s=:2*".>16{{:"1 k 
         0 0 0 sline size s
         (".uuu=:>12{{:"1 k) spoly size s
         glshow ''
         goto_there.
      end.
      ".(col=:>12{{:"1 k),' ',(path=:>14{{:"1 k),' ',who=:>16{{:"1 k 
      p=:xx,:yy
      cc=:0
      while. cc<$,yy do. r=:rot _3 o. cc{d
         if. */'loop'=4{.iii=:>14{{:"1 k do.
            s=:((r +/ . *".who)*cc{*dx)+ (_1 {.$".who)#"1,.cc{"1 p
         end.
         if. (*/'swim'=4{.>14{{:"1 k) +. (*/'danc'=4{.>14{{:"1 k) do.
            s=:(r +/ . *".who)+(_1 {.$".who)#"1,.cc{"1 p
         end.
         if. */'fade'=4{.>14{{:"1 k do.
            s=:(r +/ .* kk * 
(".who)*(_1{.$".who)#"1,.*2#cc{(-*t)*_1+2*(|t)<1p1)+ (_1 {.$".who)#"1,.cc{"1 p
            kk =:0.97*kk
         end.
         0 0 0 sline size s
         (".col) spoly size s 
         glshow ''
         255 255 255 sline size s
         255 255 255 spoly size s
         glshow ''
         cc=:cc+1
     end.  
     kk=:1.5
     goto_there.
   end.
   if. */'clea'= 4{.>9{{:"1 k do. glclear '' end.
   if. */'canc' = 4{.>9{{:"1 k do. goto_here. end.
end.  
wd 'pshow;'
label_here.
tot98_close ''
)

tot98_cancel_button=:tot98_close

tot98_close=: wd bind 'pclose'

tot98_run''

Maybe the problem will jump out for you.

Linda

-----Original Message-----
From: programming-boun...@jsoftware.com 
[mailto:programming-boun...@jsoftware.com] On Behalf Of Linda Alvord
Sent: Tuesday, February 21, 2012 5:51 AM
To: 'Programming forum'
Subject: Re: [Jprogramming] Control error when loading script into ijx window 
(J602)

All my code is really ancient code and it worked.  I was frustrated that I 
could not make things work anymore when changes were made. Maybe you can find 
my problem in the attached script. 

Linda

-----Original Message-----
From: programming-boun...@jsoftware.com 
[mailto:programming-boun...@jsoftware.com] On Behalf Of bill lam
Sent: Tuesday, February 21, 2012 5:17 AM
To: programming@jsoftware.com
Subject: Re: [Jprogramming] Control error when loading script into ijx window 
(J602)

I guess these are really ancient codes.  the wd'wait' is rarely used in modern 
J base libary or addons code, and the gtkwd does not support it.  And wd'q' 
will raise domain error if there is no event after the previous wd'q'

You code fragment is incomplete so that I cannot know what it is suppose to do. 
You should put event-driven code inside either form_default or 
form_child_button. eg, if there is a button with an id 'foo'

form_foo_button=: 3 :0
  k=. wdq
  if.  (*/'show' = 4{.>9{{:"1 k) +. */'pain' = 4{.>9{{:"1 k do.
     if.  */'pain' = 4{.>9{{:"1 k
.....     
)

Often wdq need not used, because the value of child will be automatically 
assigned.  Please read the chapter on 'window driver'
in "j user manual" accessible from j602 help for some background.

Втр, 21 Фев 2012, Linda Alvord писал(а):
> Here is the code that causes my trouble.  I have Debugwd_gtkwd_=:1 way at the 
> beginning.
> 
> wd 'setfont clear "MS Sans Serif" 11'
> wd 'setfont cancel "MS Sans Serif" 11'
> smoutput 'a0'
> label_there.
> smoutput 'a1'
> while. 1 do. 
> smoutput 'a2'
>    wd 'wait'
>    k=:wd 'q'
>    smoutput 'a3'
>    if.
>    smoutput 'a4'
>          (*/'show' = 4{.>9{{:"1 k) +. */'pain' = 4{.>9{{:"1 k
>    do.
>       if.
>          */'pain' = 4{.>9{{:"1 k
>       
> here's where I go astray:
> 
> wd 'setfont clear "MS Sans Serif" 11'
> wd 'setfont cancel "MS Sans Serif" 11'
> smoutput 'a0'
> label_there.
> smoutput 'a1'
> while. 1 do. 
> smoutput 'a2'
>    wd 'wait'
>    k=:wd 'q'
>    smoutput 'a3'
>    if.
>    smoutput 'a4'
> 
> since I haven't used this code since J4 I can't remember what I would get in 
> 'q' but I must have been able  to collect some data I wanted but I don't know 
> what it was back then.
> 
> Any ideas?
> 
> Linda
> 
> 
> -----Original Message-----
> From: programming-boun...@jsoftware.com 
> [mailto:programming-boun...@jsoftware.com] On Behalf Of bill lam
> Sent: Tuesday, February 21, 2012 1:49 AM
> To: programming@jsoftware.com
> Subject: Re: [Jprogramming] Control error when loading script into ijx 
> window (J602)
> 
> I would suspect H L C are undefined.  My general approach is to insert 
> smoutput before and after every control switch, eg
> 
> smoutput 'a1'
> for_i. i.(#a) do.
> smoutput 'a2'
> 
>   currHi=. ". > (i { H)
>   currLo=. ". > (i { L)
>   currCl=. ". > (i { C)
> 
>   if. (0=i) do.
> smoutput 'a3'
>     diffHi=. 0
>     diffLo=. 0
>   else.                      <-------- control error here
> smoutput 'a4'
>     prevHi=. ". > ((i-1) { H)
>     prevLo=. ". > ((i-1) { L)
>     diffHi=. currHi - prevHi
>     if. 0<:diffHi do. pivotHi=. currHi end.
> smoutput 'a5'
>     diffLo=. prevLo - currLo
>     if. 0<:diffLo do. pivotLo=. currLo end.
> smoutput 'a6'
>   end.
> 
> smoutput 'a7'
>   if. diffLo>diffHi do.
> smoutput 'a8'
>     if. currLo <: ( pivotHi * (1-swing) ) do.
> smoutput 'a9'
>       xx=. xx , currLo
> 
> Втр, 21 Фев 2012, PackRat писал(а):
> > When loading a script to test, I get an immediate "control error" 
> > when I give the command to load it.  The following is the portion of 
> > the script that has all of the control structures.  I've drawn an 
> > arrow pointing to the line where the error is supposed to have 
> > occurred.  I'm probably "blind" to the error because I'm just not seeing 
> > the problem.
> > 
> > ================================================================
> > 
> > for_i. i.(#a) do.
> > 
> >   currHi=. ". > (i { H)
> >   currLo=. ". > (i { L)
> >   currCl=. ". > (i { C)
> > 
> >   if. (0=i) do.
> >     diffHi=. 0
> >     diffLo=. 0
> >   else.                      <-------- control error here
> >     prevHi=. ". > ((i-1) { H)
> >     prevLo=. ". > ((i-1) { L)
> >     diffHi=. currHi - prevHi
> >     if. 0<:diffHi do. pivotHi=. currHi end.
> >     diffLo=. prevLo - currLo
> >     if. 0<:diffLo do. pivotLo=. currLo end.
> >   end.
> > 
> >   if. diffLo>diffHi do.
> >     if. currLo <: ( pivotHi * (1-swing) ) do.
> >       xx=. xx , currLo
> >     else.
> >       xx=. xx , ( {: xx )    NB. repeat previous value
> >     end.
> >   else.
> >     if. currHi >: ( pivotLo * (1+swing) )
> >       xx=. xx , currHi
> >     else.
> >       xx=. xx , ( {: xx )    NB. repeat previous value
> >     end.
> >   end.
> > 
> > end.
> > 
> > ================================================================
> > 
> > The same error (at the same line) occurs if the following lines:
> > 
> >   if. 0<:diffHi do. pivotHi=. currHi end.
> >   . . .
> >   if. 0<:diffLo do. pivotLo=. currLo end.
> > 
> > are instead expanded to:
> > 
> >   if. 0<:diffHi do.
> >     pivotHi=. currHi
> >   end.
> >   . . .
> >   if. 0<:diffLo do.
> >     pivotLo=. currLo
> >   end.
> > 
> > 
> > I would appreciate any assistance in "opening my eyes"--thanks in 
> > advance!
> > 
> > 
> > Harvey
> > 
> > --------------------------------------------------------------------
> > -- 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
> ----------------------------------------------------------------------
> 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to