<doc>
  <legacy_id>1119</legacy_id>
  <name>customKeys</name>
  <type>property</type>
  <syntax>
    <example>set the customKeys of <i>object</i> to {<i>propertiesList </i>| empty}</example>
  </syntax>
  <library></library>
  <objects>
    <stack/>
    <card/>
    <group/>
    <field/>
    <button/>
    <graphic/>
    <scrollbar/>
    <player/>
    <image/>
  </objects>
  <synonyms>
    <synonym>userProperties</synonym>
  </synonyms>
  <classification>
    <category>Values &amp; Properties</category>
  </classification>
  <references>
    <command tag="undefine">undefine Command</command>
    <property tag="customPropertySets">customPropertySets Property</property>
  </references>
  <history>
    <introduced version="1.0">Added.</introduced>
  </history>
  <platforms>
    <mac/>
    <windows/>
    <linux/>
    <ios/>
    <android/>
  </platforms>
  <classes>
    <desktop/>
    <server/>
    <web/>
    <mobile/>
  </classes>
  <security>
  </security>
  <summary>Lists the names of all the <property tag="customProperties">custom properties</property> of an <glossary tag="object">object</glossary>.</summary>
  <examples>
    <example>set the customKeys of stack "Preferences" to empty</example>
    <example>set the customKeys of last button to the customKeys of button 1</example>
  </examples>
  <description>
    <p>Use the <b>customKeys</b> <glossary tag="property">property</glossary> to find out what <property tag="customProperties">custom properties</property> an <glossary tag="object">object</glossary> has, and to create or delete <property tag="customProperties">custom properties</property>.</p><p/><p><b>Value:</b></p><p>The <b>customKeys</b> of an <glossary tag="object">object</glossary> is a list of that <glossary tag="object">object's</glossary> <property tag="customProperties">custom property</property> names, one per <keyword tag="line">line</keyword>.</p><p/><p><b>Comments:</b></p><p>The <b>customKeys</b> lists the names of <property tag="properties">properties</property> in the <glossary tag="object">object's</glossary> current <property tag="customPropertySet">customPropertySet</property>. If the <glossary tag="object">object</glossary> has more than one <glossary tag="custom property set">custom property set</glossary>, you must switch to the desired property set before checking the <b>customKeys</b>. The following example displays the <property tag="customProperties">custom properties</property> in a <glossary tag="custom property set">custom property set</glossary> called "Francois":</p><p/><p>  set the customPropertySet of button "My Button" to "Francois"</p><p>  answer the customKeys of button "My Button" <i>-- in "Francois" set</i></p><p/><p>Alternatively, the custom property set can be accessed using:</p><p/><p>  answer the customKeys["Francois"] of button "My Button"</p><p/><p>If you set the <b>customKeys</b> of an <glossary tag="object">object</glossary>, and the <i>propertiesList</i> contains a <property tag="customProperties">custom property</property> that the <glossary tag="object">object</glossary> doesn't have, a <property tag="customProperties">custom property</property> with that name is created. </p><p>(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.</p><p/><p>If you set the <b>customKeys</b> of an <glossary tag="object">object</glossary> and do not include the name of an existing <property tag="customProperties">custom property</property>, that <property tag="customProperties">custom property</property> is deleted. Setting the <b>customKeys</b> to empty deletes all <property tag="customProperties">custom properties</property> in the current custom property set.</p>
  </description>
</doc>