Some problems with background behaviour

Peter Brigham MD pmbrig at gmail.com
Thu Apr 8 16:23:28 EDT 2010


Sorry, the last line of the preopencard handler should be deleted (it  
uses a virtual setprop handler that was not included and is only  
useful for optionMenus, which is what I chiefly use).

***********

Be aware that using the menuhistory in the handlers I originally  
suggested depends on the contents of the button remaining unchanging,  
since the menuhistory returns the number of the line selected. If you  
are working with a pulldown menu that will be changing its contents  
then you'll have to store and retrieve not the menuhistory for each  
card but the content of the selection:

on menuPick pItemName
    put the short id of of this card into cID
    put the menuhistory of me into lineNbr
    set the bValue[cID] of me to pItemName
    /* pItemName = text of choice */
    set the label of me to pItemName
end menuPick

on preopencard
    put the short id of this card into cID
    put the number of this card into fld "pg"
    put the bValue[cID] of btn "pullDown" into bVal
    /* bVal is the text of the user selection for this card */
    if bVal = empty then
       set the label of btn "pullDown" to "choose..."
       /* or whatever, for cards where the user has
          not chosen a value yet */
    else
       put the text of btn "pullDown" into bContents
       set the wholematches to true
       put lineoffset(bVal,bContents) into lineNbr
       if lineNbr = 0 then
          /* not found, menu was changed */
          set the label of btn "pullDown" to "choose..."
          /* or whatever */
       else
          lock messages
          /* do this if you want to avoid triggering a menupick
             msg, if you perform other actions in menupick that
             you don't want triggered on changing cards */
          set the menuhistory of btn "pullDown" to lineNbr
          set the label of btn "pullDown" to bVal
          unlock messages
       end if
    end if
end preopencard

-- Peter

Peter M. Brigham
pmbrig at gmail.com
http://home.comcast.net/~pmbrig

On Apr 8, 2010, at 11:38 AM, Peter Brigham MD wrote:

> On Apr 8, 2010, at 4:12 AM, planix wrote:
>
>> ... Unfortunately, I think the problem I have is actually that one  
>> of my
>> "fields" is a dropdown list- so a button. It seems that these do  
>> propogate
>> across all backgrounds. So, I will work on remembering the state of  
>> the
>> dropdown buttons for each card, setting them back to a default  
>> condition
>> when the card is closed, and then re-instating the state from a card
>> specific custom property in a pre-open statement. This will be a  
>> lot easier
>> using the modular approach to groups as backgrounds.
>>
>> Though if someone has some example code of this sort of management  
>> of button
>> status I would be grateful for a link.
>
> Try this. Put the preopencard handler in the stack script, and the  
> menupick handler in your pulldown button.
>
> on menuPick pItemName
>  put the short id of of this card into cID
>  put the menuhistory of me into lineNbr
>  set the bValue[cID] of me to lineNbr
>  set the label of me to pItemName
> end menuPick
>
> on preopencard
>  put the short id of this card into cID
>  put the bValue[cID] of btn "pullDown" into bVal
>  if bVal = empty then
>     set the label of btn "pullDown" to "choose..."
>     -- or whatever, for cards where the user has
>     -- not chosen a value yet
>  else
>     set the menuhistory of btn "pullDown" to bVal
>  end if
> end preopencard
>
> I wish that it were an option in Rev to set the sharedtext (or some  
> equivalent) of a pulldown/popup menu to false, so this could be done  
> authmatically. Until then, the above works fine.
>
> -- Peter
>
> Peter M. Brigham
> pmbrig at gmail.com
> http://home.comcast.net/~pmbrig
>
>
>



More information about the use-livecode mailing list