How to set subobject properties

JACanterbury jacanterbury at gmail.com
Fri Dec 2 11:47:19 UTC 2011


Hi David,

Thanks for your thoughts and pointers to other resources which look
useful.

Certainly the 'attribute' approach has merits for transparency and
simplicity but as I said, I was interested to use this as an
opportunity to stretch my e-prime knowledge. I knew the information
was out there but with e-prime it seems that unless you know exactly
what you're looking for already, then finding it is harder work than
it ought to be.

I will report back when I get a solution!

cheers,

John

On Dec 1, 10:20 pm, David McFarlane <mcfar... at msu.edu> wrote:
> John,m
>
> At 12/1/2011 07:18 AM Thursday, you wrote:
>
> >I want to set subobject properties on the fly rather than hard code
> >them in the properties box. (eg set an image's size and position on a
> >slide object)
>
> >I suppose I could define extra attributes in the list and set their
> >values with setattrib() and then in the properties box for the image
> >refer to [width] etc but I'd like to use this as an opportunity to
> >learn a bit more.
>
> Well, this is already the correct solution, for at least three reasons...
>
> (1) Using attribute references documents your parameter values in the
> logged data file.  Presumably, you want those values logged with the
> data anyway.  In that case, you will already use c.SetAttrib just to
> log the values (BTW, you do *not* need to create attributes in a List
> before you set them with c.SetAttrib, just go right ahead and use
> c.SetAttrib in inline code), and as long as your program does that
> already, you might as well just use those as an attribute references
> (e.g., "[width]") to manipulate sub-object properties.
>
> (2) Using attribute references better documents what happens within
> your sub-objects.  If you start monkeying with sub-object properties
> directly with code, then nothing in the sub-object itself will
> reflect that, which could be misleading to anyone who later looks at
> your program (including you two weeks from now).  It is poor
> programming practice to obfuscate program behavior like that.  If you
> use an attribute reference in your sub-object property, then that
> alerts the reader that that value is subject to change, and to look
> for the definition of the attribute somewhere else in the program.
>
> (3) It is usually easier and cleaner to manipulate sub-object
> properties by means of attribute references rather than directly.  In
> fact, I would hazard that the designers of E-Prime specifically added
> this facility as a convenience to users, so to circumvent that rather
> destroys the purpose of the facility -- it would be like getting an
> underground garden sprinkler system installed, and then asking,
> "Where is the garden hose, and how do I hook it up to the
> spigot?"  Remember, for better or worse, this is E-Prime, *not* pure
> VBA (much less C or C++).
>
> Nevertheless, you might have a legitimate reason to manipulate
> sub-objects directly in code, or you might just be determined to do
> things the wrong way.  In that case...
>
> >The Reference manual lists loads of funciton s eg CSlideImage but I
> >can't find any documentation any where that explains what they do or
> >how to use them.
>
> Contrary to what you may expect based on the title, the "Reference
> Guide" is *not* the E-Prime technical reference.  You will find what
> counts as a technical reference in the E-Basic Help facility, which
> you may access from the Help menu in E-Studio, or from the E-Prime
> menu off the Windows Start menu.  Slide sub-object topics (e.g.,
> SlideText) there will include examples of E-Basic code.  Bear in
> mind, however, that the E-Prime documentation is incomplete, and
> sometimes misleading or just plain wrong, so keep your wits about you
> and test everything for yourself.
>
> >Can anyone help/point me in the right direction?
>
> See also my two essays at
> <http://groups.google.com/group/e-prime/browse_thread/thread/5425e0396...>http://groups.google.com/group/e-prime/browse_thread/thread/5425e0396...
> and
> <http://groups.google.com/group/e-prime/browse_thread/thread/b0ce54870...>http://groups.google.com/group/e-prime/browse_thread/thread/b0ce54870...
> .
>
> -- David McFarlane

-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To post to this group, send email to e-prime at googlegroups.com.
To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com.
For more options, visit this group at http://groups.google.com/group/e-prime?hl=en.



More information about the Eprime mailing list