Thanks Dar - I guess your 'A' is the way to go, and I'm doing it (more or 
less). I don't see how to do 'B' in a way that very simply returns control to 
the original caller (CardX) without extra code in the handler asking "do I have 
to go back to CardX or not?", which I think would be even more messy than 'A'. 
Anyway the horse has probably been flogged enough. Thanks also to Peter Haworth 
for reminding folks that I started all this because the LC documentation led me 
along. I think it is at least arguably wrong, and I will consider it a bit and 
then post a comment.

Cheers

Graham

On Sun, 3 Jun 2012 14:28:58 -0600, Dar Scott <d...@swcp.com> wrote:
> 
> I hope I'm not adding more confusion.
> 
> I see a couple directions for a solution.  There are probably other ways.
> 
> A.  In your behavior scripts sprinkle 'of me' throughout.  
> 
> B.  Lock screen and move to the card at the start of the handler and then 
> move back and unlock at the end.
> 
> Dar
> 
> If the latter, then if you do have to make changes, 
> On Jun 3, 2012, at 2:04 PM, Graham Samuel wrote:
> 
>> Thanks again to Mark, Dar and Ken to replying. What a lot of good advice! 
>> Let's hope I'm clever enough to follow it. While I'm studying your comments, 
>> I thought perhaps a little more explanation is in order, because I still 
>> don't think I've explained myself properly. If you're getting bored, stop 
>> reading!
>> 
>> In some ways, what I'm doing is a bit like running several spreadsheets. 
>> There are several datasets, each one represented by a small set of cards. 
>> Each card has its own behavior, but of course this behavior is repeated for 
>> all cards of the same function, so that for example there's a data set
>> 
>> Set_1_CardA
>> Set_1_CardB
>> ---
>> Set_1_Cardn
>> 
>> and other datasets with the same pattern, e.g.
>> 
>> Set_4_CardA
>> Set_4_CardB
>> ---
>> Set_4_Cardn
>> 
>> All the "CardA" cards have the same behavior, and this works beautifully 
>> because any object references in the behavior script operate in the context 
>> of the particular card that's being used, so I don't have to work out which 
>> card I'm operating on when I'm running the behavior script - that's the 
>> intention of behaviors. Say that in a particular card type, perhaps CardB, 
>> there is a handler (say "doSomeSums") that was conceived as operating on 
>> that card. Its job is to do some calculations on the the fields of the card 
>> and stick something in some other fields to show totals etc. The user 
>> invokes this card to do data entry, and the handler shows him the results. 
>> Every time new data is inserted, the calculation is re-run within the 
>> context of the card. Some of these results may depend on information on 
>> other cards in the set. So far so good.
>> 
>> Now I find I have another card type (say CardX) that, as it were, presents a 
>> summary of summaries. Because I am not quite sure if the user has actually 
>> visited all the necessary cards in the set, and I'm therefore not sure if 
>> the intermediate results have been generated as I want, I want to go round 
>> the houses again, running "doSomeSums" or the equivalent on the various 
>> cards in the dataset - but I want to do this without CardX losing control. 
>> That's where the 'send' commands come in. I just want to cycle round all 
>> these calculating handlers in the different card types, executing them 
>> within the context of the appropriate card in each case, to make sure that 
>> all the fields that CardX needs within the entire dataset are completely up 
>> to date. (Spreadsheets do similar things all the time - and they make 
>> intelligent guesses about the required order of evaluation of cells, but I'm 
>> not going that far.) While processing for CardX and displaying its results, 
>> I am not interested in !
>> opening the other cards at all - the user might do that at some point, but 
>> then my summary calculations would have to be re-done anyway.
>> 
>> I simply want to run "doSomeSums" and its friends knowing that within the 
>> handler, where there are lines like
>> 
>> put fld "AA" into fld "BB"
>> 
>> they will not need further qualification because the context has been set 
>> for them.
>> 
>> I think from what I've been told (but I really am still studying it) that 
>> this is just plain impossible in LC; so I need to rewrite the handlers in 
>> the behaviors to be more context-aware, possibly using the techniques 
>> suggested. It's not really that hard, but it doesn't have the generality I'd 
>> hoped for.
>> 
>> Sorry for the bandwidth
>> 
>> Graham
> 

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to