Help for a non-code newbie!

Dar Scott dsc at swcp.com
Tue Jul 22 19:46:04 EDT 2003


On Monday, July 21, 2003, at 03:29 PM, Lars Brehmer wrote:

> 1. Is there a way to hide multiple objects without a line for each one  
> in the handler?

Any time you find you are repeating the same bunch of line over and  
over, you have an opportunity to create a separate custom handler.

For example:

on hidePies
   hide field "Apple"
   hide field "Pumpkin"
   hide field "Cherry"
end hidePies

Break out such code so that the piece (of code, not pie) has meaning to  
you.

You can even pass parameters, like this:

on changePie showing
   set the visible of field "Apple" to showing
   set the visible of field "Pumpkin" to showing
   set the visible of field "Cherry" to showing
end changePie

It costs little to show when something is already visible.  The same  
applies to hide when it is not visible.  If you find that the state of  
how things are visible can be defined either in one or more global or  
script local variables, or in handler parameters, then you can have one  
handler that updates all visibility, even those that don't need to be  
changed.

on updateVisibilities  kitchenClosed, beforeNoon, bossIsAround
    ...
end updateVisibilities

Use this whenever the visibilities need to change.  When you learn  
about openCard, you may decide to put it into that handler, too.

> If I have to have a code line for each object and there are 8 fields  
> and 8 buttons on each card, the stack gets real big real fast.

Hmmm.  This looks like a opportunity for sharing code and maybe even  
objects.

Handlers that are used by all cards (and their objects) can be put into  
the stack script.  If the card is not specified in such handlers, then  
control references (such as field) apply to those on the current card.

A group can be shared on multiple cards.  If you want the text in  
fields in the shared group to be different on each card, then make sure  
"share text" is unchecked in the Property Inspector.  One way to share  
is to remove the group (not delete!) and then place (not paste) it on  
each card it should be on.  Do not delete a shared group unless you  
really want to get rid of all uses.  The script of the group is  
available to all objects in the group.

Wherever you find a lot of repetition, you might find a solution that  
shares handlers or objects.  Think about what all those cards have in  
common.  ...about what all those fields have in common.  Ask the list  
with details if you need more info.  There are ways to share handlers  
and objects in other ways.

Dar Scott






************************************************************************ 
****
   Dar Scott Consulting    http://www.swcp.com/dsc/    Programming  
Services
************************************************************************ 
****




More information about the use-livecode mailing list