recursal/Fanatic-Fandom huggingface dataset:
ClickH

Returns the horizontal position of the most recent mouse click.Syntax:

```
clickH()

```

Examples:

```
the clickH

```

```
put the clickH div 2 into whichHalf

```

Use the **clickH** function to find out where the user last clicked.

The returned value is the horizontal distance in pixels from the left
edge of the clicked stack to the location of the click. (Use the
clickStack function to identify which stack was clicked.)

The click location is the position of the mouse pointer when the user
pressed the mouse button, not when the user released the button. In
particular, inside a mouseDown handler, the clickH returns the position
of the mouse as it was when the mouseDown action ocurred.

This function is equal to item 1 of the clickLoc function.

See also: clickV (function),mouseH (function),stack (object),
BackKey

Sent to the current card of the defaultStack when the hardware back button is pressed.Syntax:

```
backKey

```

Examples:

```
on backKey
  answer "You pressed the back key" with "Okay"
end backKey

```

Handle the **backKey** message to perform an action when the back button
is pressed.

The **backKey** message is sent to the current card of the default stack
when the hardware back button is pressed.

If this message is passed or not handled, then the engine
automatically quits.

See also: default stack (property),
BottomMargin

Specifies how close text within an object(glossary) can come to the object's lower edge, and how close objects in a group(command) can come to the group's lower edge.Syntax:

```
set the bottomMargin of {<button> | <field> | <group>} to <pixels>

```

Examples:

```
set the bottomMargin of field "List" to 0

```

Use the **bottomMargin** property to change the amount of blank space
between an object's bottom edge and its contents.

The **bottomMargin** property of a field or button specifies how
many blank pixels are left between the object's bottom edge
and the lower edge of its text. The **bottomMargin** of a group(command)
specifies how far the group's bottom edge extends
below its lowest object(glossary).

An object's **bottomMargin** property is equal to item 4 of its
margins property.

See also: field (object),wideMargins (property),pixels (property),bottom (property),margins (property),
BrowserBeforeNavigateFrame

Sent when a browser is about to navigate to a new url in a frameSyntax:

```
XBrowser_BeforeNavigateFrame <url>, <instanceId>

```

Examples:

```
on browserBeforeNavigateFrame pInstanceId, pUrl
  if not browserFrameNavAllowed() then
    global browserCancel
    put true into browserCancel
  end if
end browserBeforeNavigateFrame

```

The **browserBeforeNavigateFrame** message is sent to the current card of
a stack containg a browser object when the browser object is about to
navigate to a new url in a frame. i.e. a change in the url in the target
browser has been requested but not yet actioned.

If the target is the main frame of the browser then the
browserBeforeNavigate message is sent instead.

To prevent the navigation occuring, set the global variable
browserCancel to true

For general information on using the browser library, see the
notes in the revBrowserOpen function reference.

Parameters:

* instanceId: The integer identifier of the browser object ]]\*Note:\* For generalinformation on using the browser library, see the notes in therevBrowserOpen function reference.
* url: The new url that is about to be navigated to in the frame

See also: browserBeforeNavigate message (message),browserBeforeNavigate (message),browserDownloadRequest (message),browserNavigateCompleteFrame (message),
BrowserStartedLoading

Sent when the given url has started to load.Syntax:

```
browserStartedLoading <url>

```

Examples:

```
on browserStartedLoading pURL
  put "loading" && pURL && "..." into field "status"
end browserStartedLoading

```

Handle the **browserStartedLoading** message to perform an action when a
URL has started to load in a mobile browser created using
mobileControlCreate.

The **browserStartedLoading** message is sent to the object containing the
script that created the browser control after a request has been allowed
and the URL has started loading.

Parameters:

* url: The URL that has started to load.

See also: mobileControlSet (command),mobileControlGet (function),mobileControlTarget (function),mobileControls (function),browserLoadRequest (message),browserLoadFailed (message),browserFinishedLoading (message),
Access

work with MS Access, connect to it using ODBC. Use the same syntax as you would use for Microsoft SQL server.

Actually, it can be a bit tricky. Here's a hint if running into problems:

```
   put "DSNName" into connDSN       -- the name of a prefab ODBC connection DSN
   put "MyDataBase" into connDB     -- optional, if used omit the ".mdb" here!
   put empty into connUser          -- or Username, if needed
   put empty into connPass          -- or Password, if needed

   get RevOpenDatabase("odbc", connDSN, connDB, connUser, ConnPass)
   if it is not a number then       -- throw an error

```

**Summary:**

1. The first parameter is "odbc" as expected.
2. The second parameter is the name of a pre-made ODBC DSN.
3. The third parameter can be left blank, as the database name is in the DSN already. But if it is used (for instance for clarity), **the extension must be omitted!**
4. Even if parameters 3 to 5 are optional, at least empty **must** be provided.

So the shortest working format is:

```
get RevOpenDatabase("odbc", "DSNName",,,)

```
Abs

Returns the absolute value of a number.Syntax:

```
abs(<number>)

```

Examples:

```
abs(14)

```

```
the abs of -14

```

```
abs(firstNum - secondNum)

```

```
abs(secondNum - firstNum)

```

Use the **abs** function if you need to know the magnitude of the number
and are not concerned about whether it is negative or not.

The absolute value of a number is that number's distance from zero. If
the number is positive, its absolute value is just the number; if the
number is negative, its absolute value is the negative of the
number. Because of this, the absolute value of a number is always
positive.

Parameters:

* number: A positive or negative number, or any expression that evaluates to anumber.
* Returns: The **abs** function returns a positive number.

See also: round (function),
Addover

Verwenden Sie das Schlüsselwort addOver, um die Farbe eines Objekts mit den darunter liegenden Farben zu kombinieren.

Die ink -Eigenschaft bestimmt, wie die Farben eines Objekts mit den Farben der Pixel unter dem Objekt kombiniert werden, um zu steuern, wie die Farbe des Objekts angezeigt wird. Wenn der addOver-Modus verwendet wird, wird jede Komponente der Objektfarbe (rot, grün und blau) zu der entsprechenden Komponente der darunter liegenden Farbe hinzugefügt. Wenn das Ergebnis größer als 255 ist, rollt die Komponente zurück auf Null.

Angenommen, die Farbe eines Objekts ist 25,220,150 und die Farbe der Pixel unter dem Objekt ist 60,40,100. Wenn der addOver-Modus verwendet wird, ist die angezeigte Farbe des Objekts 85,4,250.

Der addOver-Modus kann nur auf Mac OS-Systemen verwendet werden. Auf Unix- und Windows-Systemen erscheinen Objekte, deren ink-Eigenschaft auf diesen Modus eingestellt ist, so als ob ihre ink auf srcCopy gesetzt wäre.

Eine Liste aller Übertragungsmodi finden Sie auf der Übertragungsmodus-Glossarseite zur leichteren Bezugnahme.
AlternateLanguages

Returns the list of 'active scripting' languages that are installed on the system.Syntax:

```
alternateLanguages()

```

Examples:

```
the alternateLanguages

```

```
if "AppleScript" is among the lines of the alternateLanguages then
    do tScript as AppleScript
end if

```

Use the **alternateLanguages** function to find out what scripting
languages (in addition to LiveCode) are available for use with the do
command.

Mac OS and OS X systems support system-wide script languages (such as
AppleScript) through the Open Scripting Architecture (OSA). You can
write statements in any OSA language and execute them using the do
command.

Windows systems support scripting through the "active scripting"
functionality of the Windows Script Host. You can write statements in
any "active scripting" language and execute them using the do command.
CaseSensitive

Specifies whether comparisons treat uppercase and lowercase letters as different.Syntax:

```
set the caseSensitive to {true | false}

```

Examples:

```
set the caseSensitive to true

```

Use the **caseSensitive** property to control the behavior of text
comparisons.

The **caseSensitive** property controls the behavior of the
all string comparisons, including the comparison operators
=, >, < , >=, <=, is in, is among, is not among, and
contains; the commands filter, find, and replace; and
the functions offset, itemOffset, wordOffset,
lineOffset, and replaceText.

If the **caseSensitive** property is set to true, all the LiveCode
terms listed above, as well as all other string comparisons, treat
uppercase and lowercase letters as different. For example, a search for
"Apple" does not find the string "apple" or "APPLE", and the
expression "APPLE" = "apple" evaluates to false.

If the **caseSensitive** is false, uppercase letters are treated as equal
to their lowercase equivalents: a search for "Apple" finds strings such
as "apple" or "APPLE" without paying attention to the case of each
letter, and the expression "APPLE" = "apple" evaluates to
true.

The **caseSensitive** also affects custom property names and array
key names. If the **caseSensitive** is true, custom property names
that differ only in the case of their letters are treated as different
custom properties. If the **caseSensitive** is false,
custom property names that differ only in letter case cannot be
distinguished from each other. The same is true for the keys of
array elements.

Since the **caseSensitive** is a local property, its value is reset to
false when the current handler finishes executing. It
retains its value only for the current handler, and setting it in
one handler does not affect its value in other handlers it
calls.

Messages, object(glossary) names, and
LiveCode terms are never treated as case-sensitive, even if the
**caseSensitive** is set to true.

See also: reset (command),wordOffset (function),offset (function),value (function),lineOffset (function),replaceText (function),keys (function),itemOffset (function),control (object),= (operator),contains (operator),[[>]] (operator),is among (operator),is not among (operator),[[<=]] (operator),is in (operator),wholeMatches (property),
BottomColor

Specifies the color of a three-D object's lowered edge.Syntax:

```
set the bottomColor of <object> to {empty | <colorName> | <RGBColor>}

```

Examples:

```
set the bottomColor of scrollbar 1 to "purple"

```

```
set the bottomColor of field 1 to the topColor of me

```

Objects whose threeD property is set to true appear to stick out of or
recede into the screen. Use the **bottomColor** property to specify the
color of the shadowed edge of the object(glossary).

Setting the **bottomColor** of an object(glossary) to empty allows the
**bottomColor** of the object's owner to show through. Use the
effective keyword to find out what color is used for the
object(glossary), even if its own **bottomColor** is empty.

If the object's showBorder property is false, the **bottomColor** has no
effect.

The setting of the **bottomColor** property has different effects,
depending on the object type:

* The **bottomColor** of a stack determines the **bottomColor** of each

```
 object(glossary) in the stack that does not have its own
 **bottomColor**.

```

* The **bottomColor** of a card or group determines the color of the

```
 border around the card or group, as well as determining the
 **bottomColor** of each object(glossary) in the card or group that
 does not have its own **bottomColor**.

```

* The **bottomColor** of a button, player, EPS object, or

```
 graphic forms a border on the bottom and right edges of the
 object(glossary). If the object's threeD property is
 false, the **bottomColor** has no effect.

```

* The **bottomColor** of a field(keyword) forms a border on the top and

```
 left edges of the field(keyword) and (if the field(keyword) is a
 scrolling field(keyword)) the bottom and right edges of the arrow
 boxes at the ends of the scrollbar and the top and left edges of the
 scroll area. The field's **bottomColor** also determines
 the color of the bottom and right edges of any text in the
 field(keyword) whose textStyle is set to "threeDBox". If the
 field's threeD property is false, the
 field(keyword) border is not affected.

```

* The **bottomColor** of a scrollbar forms a border on the bottom and

```
 right edges of the arrow boxes at the ends of the scrollbar, and the
 top and left edges of the scroll area.

```

* The **bottomColor** of an audio clip or video clip has no effect.

* The **bottomColor** of an image(keyword) is the sixth color in the

```
 image's color palette. (To set the color of the
 lowered edge of an image's border, set the
 **bottomColor** of the card, stack, or group that owns the
 image(keyword).)

```

If an object's bottomPattern is set, the pattern is shown instead of the
color specified by the **bottomColor**.

See also: image (object),field (object),stack (object),owner (property),**bottomColor** (property),topColor (property),hiliteBorder (property),threeDHilite (property),threeD (property),textStyle (property),
BoundingRect

Specifies whether a group automatically changes size to fit when its controls are moved or resized.Syntax:

```
set the boundingRect of <group> to {<left>, <top>, <right>, <bottom> | empty }

```

Examples:

```
set the boundingRect of group "Icons" to 100,100,500,500

```

```
set the boundingRect of the target to the rect of the target

```

Use the **boundingRect** property to control(keyword) how a
group(command) responds when you move one of the
group's controls to the edge of the
group(command).

If a group's **boundingRect** is empty and its lockLocation is false,
when you drag an object(glossary) toward the boundary of the
group(command), the group(command) automatically expands, resizing
itself to fit. If the lockLocation is true, the object(glossary) is
clipped to the group's rectangle.

If a group's **boundingRect** is not empty and its lockLocation is
false, when you drag an object(glossary) toward the boundary of the
group(command), the group(command) does not automatically resize to
fit its objects. Instead, the object(glossary) is clipped at
the **boundingRect**. (In group-editing mode, the entire
control(keyword) is shown, but when you exit group-editing mode,
controls outside the **boundingRect** are clipped.)

If the group is a scrolling group, dragging an object in it
automatically scrolls the group. When you drag beyond the scrollable
area, the object is clipped.

See also: control (object),**boundingRect** (property),lockLocation (property),margins (property),
Create widget

Create a widget control of the specified kind.

Syntax:

```
create [invisible] widget [controlName] as widgetKind [in group]

```

Parameters:

* controlName - The name to call the newly created widget. If you don't specify a name, the widget is created with a default name.
* widgetKind - The name of the module that defines the widget to be created.
* group - A reference or an expression that evaluates to a reference to a group on the current card. If you specify a group, the new widget is a member of the group, and exists on each card that has the group. If you don't specify a group, the widget is created on the current card and appears only on that card.

Examples

```
create widget "My Navbar" as "com.livecode.widget.navbar"

```

```
create group "Swatches"
repeat with x = 1 to 20
	create invisible widget ("Color Swatch" && x) as "com.livecode.widget.colorswatch" in group "Swatches"
end repeat

```

The create widget command places the ID property of the newly created widget in the it variable.

Use the **create widget** command to make a new widget control or grouped widget control of kind *widgetKind*.

If you use the invisible form, the widget is created with its visible property set to false, so it cannot be seen. Use this form to create a hidden widget, change its appearance or position, then make it visible.

When the new widget is created, the pointer tool is automatically chosen.

**Note:** The extension of the specified kind must have been loaded using the load extension  command. To see a list of the currently loaded extensions, use the loadedExtensions

See also: kind, visible, it, load extension, loadedExtensions
AltKey

Returns the state of the Alt key.Syntax:

```
altKey()

```

Examples:

```
put the altKey into keyState

```

```
if the altKey is down then exit mouseUp

```

```
repeat until altKey() = up

```

Use the **altKey** function(control structure) to check whether the [[Alt
key]], Meta key, or Option key is being pressed. You can use **altKey**
to add alternative capabilities to user actions such as clicking.

The **altKey**, optionKey, and metaKey functions
all return the same value. Which one to use is a matter of
preference. The terminology varies depending on platform. Users of
different operating systems may know this key as the Option key (Mac OS
systems), Meta key (Unix systems), or Alt key (Windows systems).

See also: optionKey (function),value (function),keysDown (function),optionKeyDown (message),
CustomKeys

Lists the names of all the custom properties of an object(glossary).Syntax:

```
set the customKeys of <object> to {<propertiesList> | empty}

```

Examples:

```
set the customKeys of stack "Preferences" to empty

```

```
set the customKeys of last button to the customKeys of button 1

```

Use the **customKeys** property to find out what custom
properties an object(glossary) has, and to create or delete [[custom
property|custom properties]].

The **customKeys** lists the names of properties in the
object's current customPropertySet. If the object(glossary)
has more than one custom property set, you must switch to the desired
property set before checking the **customKeys**. The following example
displays the custom properties in a [[custom property
set]] called "Francois" :

```
   set the customPropertySet of button "My Button" to "Francois"
   answer the customKeys of button "My Button" -- in "Francois" set

```

Alternatively, the custom property set can be accessed using:

```
   answer the customKeys["Francois"] of button "My Button"

```

If you set the **customKeys** of an object(glossary), and the
propertiesList contains a custom property that the
object(glossary) doesn't have, a custom property with that name is
created. (A property name can be up to 255 characters long. The number
of property names is limited only by LiveCode's total memory space.) The
value of a newly-created custom property is empty.

If you set the **customKeys** of an object(glossary) and do not include
the name of an existing custom property, that custom property is
deleted. Setting the **customKeys** to empty deletes all [[custom
property|custom properties]] in the current custom property set.

See also: customPropertySets (property),
BeepLoudness

Sets the volume of the sound played by the beep command.Syntax:

```
set the beepLoudness to <level>

```

Examples:

```
set the beepLoudness to 0

```

```
set the beepLoudness to 50

```

```
put the beepLoudness into storedBeepVolume

```

Use the **beepLoudness** property to vary the volumne of the beep, in
order to increase or decrease its urgency.

Set the **beepLoudness** to -1 to use the default system setting.

The **beepLoudness** has no effect on Mac OS or Windows
systems, and on some Unix systems which don't allow changing the
beep loudness.
Answer

Der **answer**-Befehl wird eingesetzt, um vom Benutzer eine Bestätigung oder eine Information zu bekommen, bevor der Prozeß fortgesetzt wird. Dafür muss der Benutzer einen der Buttons drücken.

Beispiel:

```
answer question "Magst Du LiveCode?" with "JA" or "NEIN" or "Vielleicht..."
answer ("Du hast geantwortet "  & it)

```

Datei:LCAnswerQuestionWith.jpg
## Syntax

```
answer [iconType] prompt [with button1 [or buttons]] [titled windowTitle] [as sheet]

```

## Parameter

* iconType: Das Icon wird auf der linken Seite des Dialogfensters angezeigt. Wenn keines angegeben wird, wird keines angezeigt. Es gibt folgende Typen:
	+ "information" - Information
	+ "question" - Frage(zeichen)
	+ "error" - Fehler
	+ "warning" - Warnung
* prompt (string): The dialog box expands if necessary to fit the contents on desktops, display space on iOS and Android devices can be more restrictive and not provide enough space to expand sufficiently.
* button1: If no descrition is fournished, the OK button will appair.
* buttons: Up to seven buttons can be specified, separated by the word "or". The buttons and the dialog box expand if necessary to fit the button names; the total number of characters in the buttons is limited only by the maximum dialog box size and the font size. Display space on iOS and Android devices can be more restrictive and not provide enough space to expand sufficiently. The last button you specify is the default button. Pressing Return or Enter is equivalent to clicking the default button. If you do not specify any button names, the dialog box contains a single OK button.
* windowTitle: If specified, appears in the title bar of the dialog box. If you do not specify a windowTitle, the title bar is blank.

The prompt can be either formatted text (in the htmlText property format) or plain text. If the prompt contains **<p>** or a start/end tag pair, the answer command assumes the text is in the same format as the htmlText property. Otherwise, the answer command assumes the text is plain text.

The position and appearance of the dialog box varies between platforms. On Mac OS systems, the dialog box is centered on the screen; on Unix and Windows systems, the dialog box is centered over the active window. On Windows systems, the buttons are shown in reverse order (the first button is on the right side).

On OS X systems, the image specified in the gRevAppIcon variable appears as the application icon in the answer dialog box (unless the answer...as sheet form is used). If you specify an iconType, the image specified in the gRevSmallAppIcon variable is used instead, along with the special icon specified by the iconType.

If the as sheet form is used, the dialog box appears as a sheet on OS X systems. On other systems, the as sheet form has no effect and the dialog box appears normally. Attempting to open a sheet from within another sheet displays the second stack as a modal dialog box instead.
CloseControl

Sent to a group when the user is leaving the card that contains it.Syntax:

```
closeControl

```

Examples:

```
on closeControl
  deleteTemporaryObjects
  pass closeControl
end closeControl

```

Handle the **closeControl** message if you want to perform clean-up or do
other tasks when the user leaves a card.

A group is closed when the user either goes to a card that doesn't
have the group on it, or closes the stack. Groups with their
backgroundBehavior property set to true are sent the message when the
user goes to a card that the group is not placed on from one where it
is, as well as when the stack is closed.

The **closeControl** message is sent to groups just before the [[closeCard
message]] is sent to the card being closed. For nested groups it is
sent to the parent group first, then if passed or not handled, it passes
through each child group in reverse layer order (from highest to
lowest).

For groups with their backgroundBehavior property set to true, the
**closeControl** message is sent after the closeCard message, and just
before the closeBackground message.

The actual closing is not triggered by the **closeControl** message, so
blocking it will not stop the card being closed.

See also: openControl (message),closeBackground message (message),card (object),group (object),backgroundBehavior property (property),
ClickCharChunk

Returns the position of the character the user last clicked in a field.Syntax:

```
clickCharChunk()

```

Examples:

```
the clickCharChunk

```

```
if word 2 of the clickCharChunk < 100 then put the clickChar into me

```

Use the **clickCharChunk** function within a mouseDown, mouseUp, or
selectionChanged handler to determine where in the text the user
clicked, in order to provide hypertext (clickable text) or take some
action based on the click.

The **clickCharChunk** function is cleared at the next mouse click, as
as after some editing actions such as deleting text. If the last click
was not in a field, the **clickCharChunk** function returns
empty.

The charNum is the character the mouse pointer was over when the
mouse was clicked. Moving the mouse before the mouse button is
released does not affect the value returned by the
**clickCharChunk**.

The first and second character numbers in the return value are always
identical, unless the click was on a field but there was no text under
it. In this case, the **clickCharChunk** returns a [[chunk
expression]] of the form char charNumber to charNumber - 1 of field
fieldNumber indicating the start of the clickLine. For example, if the
mouse is over an empty field, the **clickCharChunk** returns
char 1 to 0 of field fieldNumber.

If the field is locked, the **clickCharChunk** function is most useful
within a handler (such as mouseDown or mouseUp) that is
triggered by the mouse click.

If the field is unlocked, mouseDown and mouseUp messages are
not sent when the user clicks in the field (unless the user
right-clicks or holds down the Control key while clicking). Use the
**clickCharChunk** function within a selectionChanged handler to
determine what characters the user is editing in an unlocked
field.

To get the actual character clicked, use the clickChar function.

See also: mouseCharChunk (function),clickText (function),clickStack (function),clickChar (function),mouseDown (message),mouseUp (message),selectionChanged (message),
Close printing

Sends the current print job to the printer.

Syntax:

```
close printing

```

Examples:

```
close printing

```

```
if tPrinting is "complete" then close printing

```

```
open printing
repeat with x = 1 to the number of cards
   print card
end repeat
close printing

```

Use the close printing command to print cards that you've selected with the print card command.

If you use print after the *open printing* command, the cards you print are saved up to be printed as a single batch. The close printing command prints out this batch of cards, enabling you to print multiple cards on a page.

If no print card commands have been executed since the open printing command, the close printing command prints a blank page. If you used theform of the open printing command, and the user canceled the dialog, you don't need to issue a close printing command.

See Also: close Command, open printing Command, cancel printing Command, print Command
CharToNum

Returns the ASCII value of a character.Syntax:

```
charToNum(<character>)

```

Examples:

```
charToNum("A")

```

```
charToNum("ABC")

```

```
if charToNum(nextChar) = 0 then next repeat

```

```
numToChar(charToNum("Z"))

```

Use the **charToNum** function to rank characters in their
numerical order.

As of version 7.0 the numToChar and charToNum functions have been
deprecated. They will continue to work as in previous versions but
should not be used with Unicode text as unexpected results may occur. If
working with Unicode text use the numToCodepoint and codepointToNum
functions, for native text use numToNativeChar and nativeCharToNum
functions. If working with binary data use the numToByte and
byteToNum functions.

The **charToNum** function is the inverse of the numToChar
function.

For special characters (those typed using the Option key or Alt key),
the value returned by the **charToNum** function depends on the
character set currently in use. On Mac OS systems this is
normally the Macintosh character set; on Unix systems,
this is normally ISO 8859; on Windows systems, this is
usually Code Page 1252, a variant of ISO 8859.

If the useUnicode property is set to true, you can specify a
double-byte character. If the useUnicode is false and you specify a
double-byte character, the **charToNum** function returns the
numeric value of the character div 256.

Changes:
The ability to handle Unicode characters was introduced in version 2.0.
In previous versions, it was not possible to pass a Unicode character to
the **charToNum** function.

Parameters:

* character: The character is any character or expression that evaluates to acharacter. If you specify a string containing more than one character,all characters but the first are ignored.
* Returns: The **charToNum** function returns an integer between zeroand 255. If the useUnicode property is set to true, the **charToNum**function returns an integer between zero and 65535.

See also: numToCodepoint (function),numToChar (function),uniDecode (function),byteToNum (function),numToByte (function),mouseCharChunk (function),numToNativeChar (function),md5Digest (function),clickChar (function),format (function),URLDecode (function),codepointToNum (function),div (operator),extendKey (property),RTFText (property),HTMLText (property),unicodeText (property),useUnicode (property),
Atan2

Returns the arc tangent of one number divided by another, using the sign of both.Syntax:

```
atan2(<yCoordinate>, <xCoordinate>)

```

Examples:

```
atan2(-1,-1) -- returns 4/3 * pi

```

```
atan2(thisNumber,thatNumber)

```

Use the **atan2** function to find the arc tangent of one number divided
by another when sign is significant.

In most cases, atan2(y,x) is equal to atan(y/x). However, if both x and
y are negative, the sign of x/y is positive. In this case, the atan
function returns an angle in the first quadrant, but the
**atan2** function returns an angle in the third quadrant.

```
   function atan2InDegrees firstArg,secondArg
   return atan2(firstArg,secondArg) * 180 / pi

```

```
   end atan2InDegrees

```

Parameters:

* yCoordinate: A number or an expression that evaluates to a number.
* xCoordinate: A number or an expression that evaluates to a number.
* Returns: The **atan2** function returns a number between -pi and pi.
* The result: The result of the **atan2** function is returned inradians. To get this result in degrees, use thefollowing custom function:.
ControlKey

Returns the state of the Control key.Syntax:

```
controlKey()

```

Examples:

```
put (the controlKey is up) and (the shiftKey is up) into ctrlShift

```

```
if controlKey() is down then go back

```

Use the **controlKey** function to check whether the user is pressing
the Control key.

See also: function (control structure),keysDown (function),commandKeyDown (message),
CloseCard

Sent to the current card when the user goes to another card.Syntax:

```
closeCard

```

Examples:

```
on closeCard -- record date and time the card was last viewed
  -- in a custom property of the card
  set the lastAccessDate of the target to the seconds
  pass closeCard
end closeCard

```

Handle the **closeCard** message if you want to perform cleanup or do
other tasks when the user leaves a card.

A card is closed when the user either goes to another card in the same
stack, or closes the stack.

The actual navigation is not triggered by the **closeCard** message, so
trapping the message and not allowing it to pass does not
prevent the card from closing.

See also: closeStack (message),shutdown (message),closeBackground (message),preOpenCard (message),
Atan

Returns the arc tangent of a number in radians.Syntax:

```
atan(<number>)

```

Examples:

```
atan(0)
atan(tan(-1))

```

```
the atan of vectorMagnitude

```

Use the **atan** function to find the arc tangent of a number.

The arc tangent of number is an angle whose tangent is equal to
number. In other words, **atan** is an inverse of the tan
function.

```
   function atanInDegrees theMagnitude
   return atan(theMagnitude) * 180 / pi

```

```
   end atanInDegrees

```

Parameters:

* number: A positive or negative number, or an expression that evaluates to anumber.
* Returns: The **atan** function returns a number between -pi/2 and pi/2.
* The result: The result of the **atan** function is returned inradians. To get this result in degrees, use thefollowing custom function:.
CantDelete

Specifies whether an object(glossary) can be deleted.Syntax:

```
set the cantDelete of {<card> | <group> | <stack>} to {true | false}

```

Examples:

```
set the cantDelete of this card to true

```

Use the **cantDelete** property to protect a stack or part of a
stack against accidental deletion.

If an object's **cantDelete** property is set to true, the
object(glossary) cannot be deleted either by user action or by a
handler. If you want to delete the object(glossary), you must first
set its **cantDelete** to false.

Deleting a card, background, or substack removes it permanently if the
stack is saved after the deletion. Deleting a main stack removes it from
memory, but does not remove its file from the user's system.

Setting a stack's **cantDelete** property to true does not prevent the
user from deleting the file containing the stack by putting it in the
Trash or Recycle Bin, or deleting it with a shell command or system
script.

See also: deleteCard (message),deleteStack (message),deleteGroup (message),stack (object),cantModify (property),
Custom properties

Every object by default contains no custom properties, but you can add them to an object to store values.

You can add or change a property using the property inspector window or through script code.

A custom property has the same behavior as regular properties, to create one just use **set**:

```
set mycustprop of me to "Hello world"

```

Custom properties are fundamental in LiveCode, and change the way of coding for programmers. The idea of linking the data with the object using it is productive. If you don't need it anymore for an object, you can delete it and also all its custom properties. This way the software doesn't continue to store unnecessary data. It allows it to be clear where the data is, and why.

You can see and edit custom properies with the property inspector: as well:

 Datei:CustomProperties.png
CompositorType

Specifies which compositor is used when rendering a stack.Syntax:

```
set the compositorType of <stack> to <compositorType>

```

Examples:

```
set the compositorType of this stack to "software"

```

```
put "none" into tCompositorType
set the compositorType of this stack to tCompositorType

```

Use the compositorType property to specify which compositor is used when
rendering your stack. Setting this property puts LiveCode into
accelerated rendering mode which offers performance benefits,
particularly when animating.

Set the compositor properties in a preOpenStack or preOpenCard
handler - they are not persistent (not saved into the stackfile).

See also: compositorTileSize (property),layerMode (property),
CodepointToNum

Converts a Unicode codepoint to an integer.Syntax:

```
codepointToNum(<unicodeCodepoint>)

```

Examples:

```
get codepointToNum("A")

```

```
put codepointToNum(space) is 0x20

```

```
get codepointToNum(codepoint 1 of field "data")

```

Use the **codepointToNum** function to translate a Unicode codepoint to
its integer represntation.

The **codepointToNum** function takes a Unicode codepoint and returns its
integer vaalue.

The **codepointToNum** function raises an exception if the argument
contains multiple codepoints; it should generally be used in the form:

codepointToNum(codepoint x of string)

Codepoints that are not currently assigned to characters by the latest
Unicode standard are not considered to be invalid in order to ensure
compatibility with future standards.

Parameters:

* unicodeCodepoint: A single Unicode codepoint
* Returns (integer): The **codepointToNum** function returns an integer in the range 0x000000to 0x10FF that identifies the given character.

See also: numToNativeChar (function),normalizeText (function),numToCodepoint (function),
Armed

Specifies whether a button has a changed (active) appearance due to the mouse pointer moving into itSyntax:

```
set the armed of <button> to {true | false}

```

Examples:

```
set the armed of first button to false

```

```
if the armed of button "Font" then showFontSamples

```

Check the **armed** property to determine whether a
button's menu is open--that is, whether the user is
in the process of choosing an item from the menu. You can also set a
button's **armed** property to change its appearance.

A button's **armed** property is analogous to its hilite property. A
button(keyword) is usually **armed** when the mouse pointer moves into
it. You can automate this behavior by setting the
button's autoArm property to true.

The appearance of an armed button is determined by its armBorder and
armFill properties.

Changes:
The armed keyword was introduced in version 1.1. In previous versions,
the arm synonym was used.

See also: button (object),**armed** (property),armFill (property),properties (property),autoArm (property),hiliteBorder (property),
Acos

Returns the arc cosine of a number, in radians.Syntax:

```
acos(<number>)

```

Examples:

```
acos(-1)

```

```
acos(cos(.3))

```

```
acos(field "Opposite" + field "Sine")

```

Use the **acos** function to find the arc cosine of a number.

The arc cosine of number is an angle whose cosine is equal to
number. In other words, **acos** is an inverse of the cos
function.

```
   function acosInDegrees theMagnitude
   return acos(theMagnitude) * 180 / pi

```

```
   end acosInDegrees

```

Parameters:

* number: A number between -1 and 1, or an expression that evaluates to such anumber.
* Returns: The **acos** function returns a number between zero and pi.
* The result: The result of the **acos** function is returned in radians. Toget this result in degrees, use the following function :.
AllowableDragActions

Reports a list of actions that the source application will act upon for the current drag-drop operation.Syntax:

```
get the allowableDragActions

```

Examples:

```
set the allowableDragActions to "move,copy"

```

Use the **allowableDragActions** to specify how the drag-data you are
offering can be manipulated.

See also: dragAction (property),
Average

Returns the arithmetic mean of a list of numbers.Syntax:

```
average(<numbersList>)

```

Examples:

```
average(4,36,45,50,75) -- returns 42

```

```
put average(importedList) into field "Arithmetic Mean"

```

```
put average(replaceText(field "Values",return,comma)) into avgValue

```

Use the **average** function to find the value(function) that best
represents a group of values.

The average of a list of numbers is the sum of the items in the list or
elements in the array, divided by the number of items or elements.

The **average** function can also be written like this:

```
   sum(numbersList)/the number of items in numbersList

```

If the numbersList is empty, the **average** function returns zero.

Changes:
The ability to use an array was introduced in version 1.1. In previous
versions, only lists of numbers could be used with the average function.

Parameters:

* numbersList: A comma-separated list of numbers, or an expression that evaluates tosuch a list, or an array containing only numbers.
* Returns: The **average** function returns a number.

See also: geometricMean (function),statRound (function),harmonicMean (function),variance (function),round (function),value (function),max (function),median (function),standardDeviation (function),
ConstantNames

Returns a list of all built-in constants in LiveCode.Syntax:

```
constantNames()

```

Examples:

```
the constantNames

```

```
if it is among the lines of the constantNames then askForAnotherName

```

Use the **constantNames** function to check whether a particular
constant(command) already exists in LiveCode, to avoid using a
reserved word for your own constants and
variables.

The **constantNames** function returns all the
constants that are predefined in LiveCode,
including synonyms.

See also: propertyNames (function),functionNames (function),
CurrentNode

Specifies the current node in a QuickTime VR movie.Syntax:

```
set the currentNode of <player> to <nodeID>

```

Examples:

```
set the currentNode of player "Arctic" to 3

```

```
put the currentNode of player myPlayerName into myNode

```

Use the **currentNode** property to find out where the user is in a
QuickTime VR movie.

Each node of a QuickTime VR movie is a viewpoint. The movie author sets
the nodes during development of the movie. The user can change nodes
using the navigational controls in the player; a handler can change
nodes by setting the player's **currentNode** property.

If the player does not contain a QuickTime VR movie, its **currentNode**
property is zero.

Changes:
This property was deprecated in version 8.1.0 due to the retirement of
the QuickTime player implementation. In order to support 64-bit on Mac
we have been required to switch to using AVFoundation on Mac, which does
not support QTVR. In addition, the Windows player object is now based on
DirectShow, as Apple have dropped support for the QuickTime libraries
previously used.

See also: nodeChanged (message),nodes (property),
BackgroundBehavior

Specifies whether a group behaves as a background and come after it's card on the message path. It becomes the background of all cards! Tab panels should be always set this way (making them a group).

Syntax:

```
set the backgroundBehavior of <group> to {true | false}

```

Examples:

```
set the backgroundBehavior of group 1 to false

```

```
set the backgroundBehavior of the last group to true

```

```
if the backgroundBehavior of group "backgroundObjects" is true then
 -- do something
end if

```

Use the **backgroundBehavior** property to make groups behave like
backgrounds and to automatically place these groups on newly created cards.

Only top-level groups may be background groups; an attempt to set the
**backgroundBehavior** of a nested group to true throws an error.

A background group differs from a normal group in the following ways:

* The group's script is placed behind the card in the message path for any message not originating from a control within it.
* The group can be referred to using the **background** word.
* The card on which the group is placed receives preOpenBackground / openBackground / closeBackground messages (these messages occur instead of preOpenControl / openControl / closeControl being sent to the group itself).

 Datei:LC8 placeGroupMenu.png
* The group can be placed onto multiple cards. To place a background in a card use the IDE menu bar: **Object -> Place Group**
* If the group is placed on 'this card' at the time a new card is created, it is automatically placed onto the new (empty) card.

A background group is also a shared group. This means that when the
**backgroundBehavior** is set to true, the sharedBehavior is also set to true (if it is not already).

Setting the **backgroundBehavior** of a group to false does not
affect the sharedBehavior property, in particular the latter is not
be set to false until it is explicitly done so.

Only groups whose **backgroundBehavior** is true appear in the
list reported by the backgroundNames and backgroundIDs properties.

If a stack created in a version of LiveCode earlier than 1.1 is
opened in 1.1 or later, the **backgroundBehavior** of all its groups is
set to true by default. This also applies to imported HyperCard
stacks.

See also: preOpenBackground (message), openControl (message), openBackground (message), closeBackground (message), preOpenControl (message), closeControl (message), HCAddressing (property), sharedBehavior (property), backgroundNames (property), backgroundIDs (property), dynamicPaths (property),
ClickV

Returns the vertical position of the most recent mouse click.Syntax:

```
clickV()

```

Examples:

```
the clickV

```

```
if the clickV > the bottom of stack "window" then beep

```

Use the **clickV** function to find out where the user last clicked.

The returned value is the vertical distance in pixels from the top edge
of the clicked stack to the location of the click. (Use the clickStack
function to identify which stack was clicked.)

The click location is the position of the mouse pointer when the user
pressed the mouse button, not when the user released the button. In
particular, inside a mouseDown handler, the **clickV** returns the
position of the mouse as it was when the mouseDown action occurred.

This function is equal to item 2 of the clickLoc function.

See also: clickH (function),stack (object),
AllowDatagramBroadcasts

Set the per-socket flag for whether sending to a broadcast address is allowedSyntax:

```
set the allowDatagramBroadcasts to {true | false}

```

Examples:

```
set the allowDatagramBroadcasts to true

```

The global property **allowDatagramBroadcasts** needs to be set to true
before sending to a broadcast address (enables the per-socket flag for
whether they are allowed).

See also: close socket (command),
Case

Used within a switch control structure to designate one of the possibilities to be handled.

Syntax:

```
switch n
  case 10
    answer "n is 10"
    break
   case n > 20
     answer "n is bigger than 20"
     break
end switch

```

Use the case keyword to indicate the condition for which a set of statements should be executed.

The **case** keyword can be used in two forms. The first form is used when the switch statement includes an expression : the case is executed if the value after the word case is equal to the expression in the switch control structure. For example, if the switch structure starts with this statement :

```
switch thisVariable

```

then a case statement inside the switch structure might look like this:

```
case 3

```

and the lines following the case keyword are executed if **thisVariable = 3**. Use this form if you want to test a single value, and do different things depending on what that value is equal to.

The second form is used when the switch statement does not include an expression: the **case** is executed if the condition after the word case is true. For example, if the switch structure starts with this statement:

```
switch

```

then a case statement inside the switch structure might look like this:

```
case the short name of this card contains "a"

```

and the statements following the case keyword are executed if the character "a" appears in the current card's name.

See also: word, character
CloseBox

Shows a window's close box.Syntax:

```
set the closeBox of <stack> to {true | false}

```

Examples:

```
set the closeBox of this stack to false

```

Use the **closeBox** property to display the close box in a window's title
bar.

The setting of this property affects the decorations property, and
vice versa. Setting a stack's **closeBox** property determines whether its
decorations property includes "close" (or is "default", for window
styles that normally include a close box). Conversely, setting a stack's
decorations property sets its **closeBox** to true or false depending on
whether the decorations includes "close" (or is "default" ).

On OS X systems, if the **closeBox** property is false, the close
box is disabled rather than hidden.

Setting the **closeBox** property causes the stack window to flash
briefly.

Changes:
The closeBox property was fully implemented in version 2.1. In previous
versions, it was included in LiveCode for compatibility with imported
SuperCard projects, but setting it had no effect.

See also: closeStack (message),stack (object),decorations (property),minimizeBox (property),