Tell
A tell block , like an if block, comes in two forms: a genuine block and a single-line version. The block form is like this:
tell target
-- code targeting this target
end tell
The single-line version is like this:
telltarget
tocommand
A tell block performs two distinct functions:
It determines (at runtime) the target of the commands within the block.
It dictates (at compile time) the source that will be used for the resolution of the terminology that appears within the block.
The fact that a tell block does both these things makes a certain sense. After all, if you're going to be sending messages to the Finder, you're probably going to want to use the Finder's terminology. Nevertheless, the two functions are distinct, and it is possible to do either one without the other:
To target an application without resolving any terminology, address it entirely by means of
of
, without usingtell
:get frontmost of application "Finder" -- false
That works because the term
frontmost
is defined by AppleScript itself, so there is no terminology to resolve; the Finder is targeted and a reply comes back.To resolve an application's terminology without targeting it, use a terms block (see the next section, "Using Terms From"):
using terms from application "Finder" set f to a reference to folder 1 end using terms from
That works because the terms block uses the Finder's dictionary to resolve the term
folder
; the Finder is not targeted (we're just forming a reference).
If the target
in a tell block is an ...
Get AppleScript: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.