Call a function on another card

Peter Bogdanoff bogdanoff at me.com
Thu Feb 23 17:51:07 EST 2017


Bob,

This is a good question. In my case, each card script has script local variables that are used only for that card.

In this unusual case (I’m creating a text search method) I need to access the contents of those variables from another stack.

I indeed would like to move common handlers to a stack or library script, but these handlers use many local variables relevant to the individual cards. I have not yet thought of a simple way to use common handlers without a LOT of passing of local variable data.

Instead of local variables, I suppose I could set custom properties in the library stack for each bit of data. But it seems awkward to me to have in the library script:

put the FieldTextArray of stack “MLib” into tVar # Stored in a custom property
return tVar [“HTML”] 
	then in the card script:
set the htmlText of field “Text” to it 

	instead of simply (in the card script):
set the htmlText of field “Text” to sFieldTextData [“HTML”]  # Card local variable

And then, custom properties would have to be emptied after each session.

Peter


On Feb 23, 2017, at 2:03 PM, Bob Sneidar via use-livecode <use-livecode at lists.runrev.com> wrote:

> When I encounter situations like these, I begin to ask myself why the handler is in a card script. If it needs to be accessible from other cards, it should probably be moved to the stack script, or put into a button and inserted into front or back. I have 3 buttons I use for this effect: Utilities, Validations and Database Functions. Utilities and Database functions I insert into back. The validations I insert into front in case I want to intercept things like openField or selectionChanged and do things before passing them on. 
> 
> Bob S
> 
> 
>> On Feb 23, 2017, at 13:21 , Peter Bogdanoff via use-livecode <use-livecode at lists.runrev.com> wrote:
>> 
>> Yes, thank you, that works. I used:
>> 
>> dispatch function "getPageNumber" to card "MITA" of stack "MITA" with tID
>> 
>> What came back was in “the result”
>> 
>> “it” contained “handled”
>> 
>> pb
>> 
>> On Feb 23, 2017, at 12:54 PM, Mike Bonner via use-livecode <use-livecode at lists.runrev.com> wrote:
>> 
>>> Will this work for you?
>>> dispatch function "myFunction" to card "myCard"
>>> 
>>> put the result into tResult
>>> 
>>> Parameters can also be passed using the "with" extension. Unlike the
>>> "call", "send" and "value" handlers, the parameters are sent directly to
>>> the target handler, rather than being extracted from the string used to
>>> call the handler. This negates the need to surround our parameters in
>>> quotes and also allows us to pass arrays
>>> 
>>> On Thu, Feb 23, 2017 at 1:32 PM, Peter Bogdanoff via use-livecode <
>>> use-livecode at lists.runrev.com> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I’m reading on
>>>> http://lessons.livecode.com/m/4071/l/11787-how-to-call-a-
>>>> function-or-command-in-another-object
>>>> 
>>>> this:
>>>> put value("myFunction(hello, world)", group "myGroup" of card "myCard")
>>>> into tResult
>>>> 
>>>> I want to use a variable as a parameter instead of “hello, world” as in
>>>> the page example.
>>>> 
>>>> These don’t work:
>>>> put value(“getPageNumber (tID)", card "MITA" of stack "MITA") into tResult
>>>> put value("getPageNumber" & (tID), card "MITA" of stack "MITA") into
>>>> tResult
>>>> 
>>>> What do I do?
>>>> 
>>>> Peter Bogdanoff
>>>> _______________________________________________
>>>> use-livecode mailing list
>>>> use-livecode at lists.runrev.com
>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>> 
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list