IDE hangs up

J. Landman Gay jacque at hyperactivesw.com
Thu Jun 2 12:14:12 EDT 2005


On 6/2/05 7:35 AM, Jon wrote:

> Here is the contents of the script page for the main stack.  When I 
> resize the stack, the IDE hangs up and has to be killed from the Task 
> Manager.  <Ctrl>-"." and <Alt>-"." and like that there do nothing.  
> Putting a breakpoint on the call to DoResizeStack does not prevent the 
> hang. I assume something is getting called repeatedly/recursively, but 
> with the debugger failing, I can't figure out what is going on.
> 
> Any hints?

There are a lot. ;) I'll comment your script:


on resizeStack
  DoResizeStack -- this is a command handler call, not a function
end resizeStack

Command handlers are written the way you have done it. Functions 
generally return a value to the calling handler are are written in this 
format:  put myFunction() into tResult. If there are values to be passed 
to the function, you add them inside the parentheses: get 
myFunction(val1,val2) into tResult. Note that functions must be called 
with a place to put the returned value; i.e., my example uses the 
varialbe tResult to store the returned value of the function call.

Your command syntax is appropriate; you should not be using a function 
here. So what needs to change is your handler syntax, like this:

on DoResizeStack -- using "on" makes it a command handler
  set left of "image" to 8
-- here you have not told Rev what object to operate on. What is 
"image"? You can refer to objects by name, ID, or number, but you need 
to indicate what object should be manipulated. The line should be:

set the left of img "imgName" to 8

or you could use:

set the left of img 1 to 8 -- OR:
set the left of img ID 1005 to 8

Any of these will work, but you do need to let Rev know what object you 
are setting.

The same applies for all lines in the script that use "set":
  set the top of img "imgName" to 20
  put the width of img "imageName" -16 into ww
  put the height of img "imageName" - 32 into wh
  put the formattedwidth of img "imageName" into fw
  put the formattedheight of img "imageName" into fh
  put fh / fw into iRatio
  put h / w into wRatio
  if iRatio > wRatio then
    -- image is taller than space available: need empty space to right of
image
    set the height of img "imageName" to h
    put h / iRatio into w
    set the width of img "imageName" to w
  else
    -- need space under image
    set the width of img "imageName" to w
    put w * iRatio into h
    set the height of img "imageName" to h
  end if
end DoResizeStack

I have added "the" to all the properties referenced in the script, that 
is, "the height", "the width". Technically this isn't necessary but I 
find it to be good form.

I am not sure why Rev would hang -- you should have seen  a syntax error 
somewhere I think. But I suspect it didn't know what to do when you 
called a command handler but wrote a function. Just a guess.

-- 
Jacqueline Landman Gay         |     jacque at hyperactivesw.com
HyperActive Software           |     http://www.hyperactivesw.com


More information about the use-livecode mailing list