what is the method you use to save a specific field reference in a variable or custom property?

Josh Mellicker josh at dvcreators.net
Wed Sep 13 13:22:41 CDT 2006


Thanks Ken, this was really helpful.

"chunk expressions will work on the variable itself and not on the  
reference"

(thanks to everyone else too :-)


On a related note, does anyone use something like:

put the text of theDataFldIWant() into tText


FUNCTION theDataFldIWant
   return the long ID of fld "thisFieldHasAReallyLongName" of cd  
"ThisCardHasALongAndDescriptiveName" of stack  
"thisStacksNameIsNotThatLongButIDontWantToClutterUpMyScripts"
END theDataFldIWant



On Sep 12, 2006, at 7:04 PM, Ken Ray wrote:

> On 9/12/06 7:55 PM, "Josh Mellicker" <josh at dvcreators.net> wrote:
>
>> Maybe someone can shed some light on the best way to put a field
>> reference into a variable (or custom property).
>>
>> So my question is, what is the method you use to save a specific
>> field reference in a variable or custom property?
>
> Well, saving the reference is easy (I recommend the long id) ;-)  
> using it is
> another matter. Although there are instances where you can use the  
> object
> reference itself, sometimes you can't and will get an error - for  
> example,
> with fields, you can set direct properties (the lockText of tFld, the
> showBorder of tFld, etc.), without getting an error, but chunk  
> expressions
> will work on the variable itself and not on the reference. Compare:
>
>   -- assume that fld 1 has 3 lines of text
>   put the long id of fld 1 into tFld
>   set the lockText of tFld to true
>   --> works as expected, sets the lockText of the field
>
>   put the the number of lines of tFld
>   --> 1   -- since tFld is a fld ref and a single line of text, it  
> returns 1
>
> So to get around this, you need to use "do" in some instances:
>
>   do "put the number of lines of" && tFld
>   --> 3
>
> Additionally if you use "put", it's not the same as if you'd  
> addressed the
> field directly. Compare:
>
>   put fld 1
>   --> puts the contents of fld 1
>
>   put tFld
>   --> puts the field reference to field 1
>
>   do "put" && tFld
>   --> puts the contents of fld 1
>
>   put the text of tFld
>   --> puts the contents of fld 1
>
> Personally I use "do" whenever *not* not using it fails - I don't  
> think
> there's a downside to always using "do" when you have a long ID as a
> reference, other than that it takes slightly longer to process  
> because it
> needs to interpret it on the fly (which really only shows itself  
> when you
> have it in a loop).
>
> HTH,
>
> Ken Ray
> Sons of Thunder Software
> Web site: http://www.sonsothunder.com/
> Email: kray at sonsothunder.com
>
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution




More information about the use-livecode mailing list