lazarus/docs/xml/lcl/comboex.xml
2024-09-28 09:40:52 +02:00

3184 lines
110 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Documentation for LCL (Lazarus Component Library) and LazUtils (Lazarus
Utilities) are published under the Creative Commons Attribution-ShareAlike 4.0
International public license.
https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt
file://../../cc-by-sa-4-0.txt
Copyright (c) 1997-2024, by the Lazarus Development Team.
-->
<fpdoc-descriptions>
<package name="lcl">
<!--
====================================================================
ComboEx
====================================================================
-->
<module name="ComboEx">
<short>
Contains classes, types, and routines used to implement the TComboBoxEx and
TCheckComboBox visual components.
</short>
<descr>
<p>
<file>comboex.pas</file> contains classes, types, and routines used to
implement extended combo-box controls. The following components are added to
the Lazarus IDE component palette:
</p>
<p>
<b>Misc</b> Tab
</p>
<ul>
<li>TComboBoxEx</li>
<li>TCheckComboBox</li>
</ul>
<p>
<file>comboex.pas</file> is part of the Lazarus Component Library (LCL).
</p>
</descr>
<!-- unresolved external references -->
<element name="Classes"/>
<element name="SysUtils"/>
<element name="Types"/>
<element name="LCLIntf"/>
<element name="LCLType"/>
<element name="LMessages"/>
<element name="LResources"/>
<element name="LazLoggerBase"/>
<element name="ImgList"/>
<element name="Controls"/>
<element name="StdCtrls"/>
<element name="ComCtrls"/>
<element name="ExtCtrls"/>
<element name="Graphics"/>
<element name="GraphUtil"/>
<element name="Themes"/>
<element name="Forms"/>
<element name="TAutoCompleteOption">
<short>
Enumerated type with values representing the auto-complete options used in
TComboBoxEx.
</short>
<descr>
<p>
<var>TAutoCompleteOption</var> is an enumerated type with values representing
the autocomplete options used in <var>TCustomComboBoxEx</var> and
<var>TComboBoxEx</var>. Values from the enumeration are stored in the
<var>TAutoCompleteOptions</var> set type used to implement the
<var>AutoCompleteOptions</var> property in <var>TCustomComboBoxEx</var> and
<var>TComboBoxEx</var>. Including a value from the enumeration in the
TAutoCompleteOptions set enables the corresponding feature.
</p>
</descr>
<seealso>
<link id="TAutoCompleteOptions"/>
<link id="TCustomComboBoxEx.AutoCompleteOptions"/>
<link id="TComboBoxEx.AutoCompleteOptions"/>
</seealso>
</element>
<element name="TAutoCompleteOption.acoAutoSuggest">
<short>Enables auto-suggest.</short>
</element>
<element name="TAutoCompleteOption.acoAutoAppend">
<short>Enables auto-appending items to the combo-box.</short>
</element>
<element name="TAutoCompleteOption.acoSearch">
<short>
Enables searching items for the current value in the edit control.
</short>
</element>
<element name="TAutoCompleteOption.acoFilterPrefixes">
<short>Enables prefixes in the filter for the control.</short>
</element>
<element name="TAutoCompleteOption.acoUseTab">
<short>Enables Tab key navigation in the control.</short>
</element>
<element name="TAutoCompleteOption.acoUpDownKeyDropsList">
<short>
Enables toggling the visibility of the drop down using Up and Down cursor
keys.
</short>
</element>
<element name="TAutoCompleteOption.acoRtlReading">
<short>
Enables Right-to-Left text rendering (BiDi Mode) in the control.
</short>
</element>
<element name="TAutoCompleteOptions">
<short>Sets type used to store TAutoCompleteOption values.</short>
<descr>
<p>
<var>TAutoCompleteOptions</var> is a set type used to store zero or more
values from the <var>TAutoCompleteOption</var> enumeration.
TAutoCompleteOptions is the type used to implement the
<var>AutoCompleteOptions</var> property in <var>TCustomComboBoxEx</var> and
<var>TComboBoxEx</var>. When an enumeration value is included in the set
type, the corresponding feature enabled. When the value is excluded, the
feature is disabled.
</p>
</descr>
<seealso>
<link id="TAutoCompleteOption"/>
<link id="TCustomComboBoxEx.AutoCompleteOptions"/>
<link id="TComboBoxEx.AutoCompleteOptions"/>
</seealso>
</element>
<element name="TComboBoxExStyle">
<short>
Enumerated type with values for display styles available in TCustomComboBoxEx.
</short>
<descr>
<p>
<var>TComboBoxExStyle</var> is an enumerated type with values representing
the display styles available in <var>TCustomComboBoxEx</var>.
TComboBoxExStyle is the type used to implement the <var>Style</var> property
in <var>TCustomComboBoxEx</var> and <var>TComboBoxEx</var>.
</p>
<p>
TComboBoxExStyle replaces the values used in the ancestor class; there is no
need for the various owner-drawn styles from the ancestor control. The
extended combo-box controls are always owner-drawn using the fixed style in
its <var>DrawItem</var> method.
</p>
</descr>
<seealso>
<link id="TCustomComboBoxEx.Style"/>
<link id="TComboBoxEx.Style"/>
<link id="#lcl.stdctrls.TCustomComboBox.Style">TCustomComboBox.Style</link>
<link id="TCustomComboBoxEx.DrawItem"/>
</seealso>
</element>
<element name="TComboBoxExStyle.csExDropDown">
<short>Drawn as a drop down control.</short>
</element>
<element name="TComboBoxExStyle.csExSimple">
<short>Drawn as simple edit control.</short>
</element>
<element name="TComboBoxExStyle.csExDropDownList">
<short>Drawn as a list which drops down when focused.</short>
</element>
<element name="TComboBoxExStyleEx">
<short>
Enumerated type with values which modify the behavior in TComboEx.
</short>
<descr>
<p>
<var>TComboBoxExStyleEx</var> is an enumerated type with values which modify
the behavior in <var>TComboEx</var>. Values from the enumeration are stored
in the <var>TComboBoxExStyles</var> set type, and used in the
<var>StyleEx</var> property in <var>TCustomComboBoxEx</var> and
<var>TComboBoxEx</var>.
</p>
<remark>
Not used in the current LCL implementation.
</remark>
</descr>
<seealso>
<link id="TComboBoxExStyles"/>
<link id="TCustomComboBoxEx.StyleEx"/>
<link id="TComboBoxEx.StyleEx"/>
</seealso>
</element>
<element name="TComboBoxExStyleEx.csExCaseSensitive">
<short>Enables case-sensitive comparisons in the control.</short>
</element>
<element name="TComboBoxExStyleEx.csExNoEditImage"/>
<element name="TComboBoxExStyleEx.csExNoEditImageIndent"/>
<element name="TComboBoxExStyleEx.csExNoSizeLimit"/>
<element name="TComboBoxExStyleEx.csExPathWordBreak"/>
<element name="TComboBoxExStyles">
<short>Set type used to store TComboBoxExStyle enumeration values.</short>
<descr>
<p>
<var>TComboBoxExStyles</var> is a set type used to store values from the
<var>TComboBoxExStyle</var> enumeration. TComboBoxExStyles is the type used
to implement the <var>StyleEx</var> property in <var>TCustomComboBoxEx</var>.
</p>
</descr>
<seealso>
<link id="TComboBoxExStyle"/>
<link id="TCustomComboBoxEx.StyleEx"/>
</seealso>
</element>
<element name="TCustomData">
<short>
Pointer type used to access the arbitrary data in TListControlItem.
</short>
<descr>
<p>
<var>TCustomData</var> is a <var>Pointer</var> type used to implement the
<var>Data</var> property in <var>TListControlItem</var>.
</p>
</descr>
<seealso>
<link id="TListControlItem.Data"/>
</seealso>
</element>
<element name="TListItemsCompare">
<short>Specifies a function type used to compare items in TComboEx.</short>
<descr>
<p>
<var>TListItemsCompare</var> is an <var>Integer</var> function type used to
implement a comparison between the items stored at the specified positions in
<var>AList</var>. The return value contains the relative sort order for the
compared values, for example:
</p>
<dl>
<dt>-1</dt>
<dd>Aitem1 occurs before AItem2</dd>
<dt>0</dt>
<dd>AItem1 and AItem2 have the same values</dd>
<dt>1</dt>
<dd>AItem1 occurs after AItem2 </dd>
</dl>
<p>
TListItemsCompare implements the sort operation performed in
<var>TListControlItems</var> when its <var>CustomSort</var> method is called.
</p>
</descr>
<seealso>
<link id="TListControlItems.CustomSort"/>
<link id="TListControlItems.Sort"/>
<link id="TListControlItems.SortType"/>
<link id="TListControlItems.OnCompare"/>
<link id="TListControlItems.CompareItems"/>
</seealso>
</element>
<element name="TListItemsCompare.Result">
<short>
Integer with the relative order for the compared values at the specified
positions.
</short>
</element>
<element name="TListItemsCompare.AList">
<short>Collection with the items compared in the routine.</short>
</element>
<element name="TListItemsCompare.AItem1">
<short>Ordinal position for the first item in the comparison.</short>
</element>
<element name="TListItemsCompare.AItem2">
<short>Ordinal position for the second item in the comparison.</short>
</element>
<element name="TListItemsSortType">
<short>Alias to the TSortType in <file>ComCtrls.pp</file></short>
<descr/>
<seealso>
<link id="#lcl.ComCtrls.TSortType">TSortType</link>
</seealso>
</element>
<element name="TCheckItemChange">
<short>
Specifies an event handler signalled when a check box in TCustomCheckCombo is
changed.
</short>
<descr>
<p>
<var>TCheckItemChange</var> is an object procedure which specifies an event
handler signalled when a check box in <var>TCustomCheckCombo</var> is
changed. TCheckItemChange is the type used to implement the
<var>OnItemChange</var> property in <var>TCustomCheckCombo</var> and
<var>TCheckComboBox</var>.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.Checked"/>
<link id="TCustomCheckCombo.State"/>
<link id="TCustomCheckCombo.OnItemChange"/>
<link id="TCheckComboBox.OnItemChange"/>
</seealso>
</element>
<element name="TCheckItemChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TCheckItemChange.AIndex">
<short>Ordinal position for the changed check box.</short>
</element>
<element name="TListCompareEvent" link="#lcl.comboex.TListItemsCompare">
<short>
Specifies a function type used to compare items in TComboEx.
</short>
<descr>
<p>
Similar to <var>TListItemsSortType</var>, but implemented as an object
function.
</p>
</descr>
<seealso/>
</element>
<element name="TListCompareEvent.Result"/>
<element name="TListCompareEvent.AList"/>
<element name="TListCompareEvent.AItem1"/>
<element name="TListCompareEvent.AItem2"/>
<element name="TListControlItem">
<short>Implements a collection item added to a list control.</short>
<descr>
<p>
<var>TListControlItem</var> is a <var>TCollectionItem</var> descendant which
implements the base type for list items used in <var>TComboBoxEx</var>. It is
used as the ancestor for <var>TComboExItem</var>. TListControlItem is the
type maintained in the <var>TListControlItems</var> collection.
</p>
<p>
TListControlItem provides properties needed to represent an item displayed in
a list control, including:
</p>
<ul>
<li>Caption</li>
<li>Data</li>
<li>ImageIndex</li>
</ul>
<p>
Applications and libraries do no normally create instances of this class; use
the TComboExItem descendant.
</p>
</descr>
<seealso>
<link id="TListControlItems"/>
<link id="TComboExItem"/>
<link id="TCustomComboBoxEx.ItemsEx"/>
<link id="TComboBoxEx.ItemsEx"/>
</seealso>
</element>
<element name="TListControlItem.FCaption"/>
<element name="TListControlItem.FData"/>
<element name="TListControlItem.FImageIndex"/>
<element name="TListControlItem.SetCaption">
<short>Sets the value for the Caption property.</short>
<descr/>
<seealso>
<link id="TListControlItem.Caption"/>
</seealso>
</element>
<element name="TListControlItem.SetCaption.AValue">
<short>Value for the property.</short>
</element>
<element name="TListControlItem.SetImageIndex">
<short>Sets the value for the ImageIndex property.</short>
<descr/>
<seealso>
<link id="TListControlItem.ImageIndex"/>
</seealso>
</element>
<element name="TListControlItem.SetImageIndex.AValue">
<short>New value for the property.</short>
</element>
<element name="TListControlItem.Data">
<short>Pointer to the data used in custom sort operations.</short>
<descr>
<p>
<var>Data</var> is a <var>Pointer</var> type used to access arbitrary data
associated with the list item. The content stored in Data is dependent on the
control which implements the list item.
</p>
<p>
Data is used in the <var>Sort</var> method in <var>TListControlItems</var>
collection when its <var>SortType</var> is set to <var>stData</var> or
<var>stBoth</var>.
</p>
<p>
Use the <var>Caption</var> property to maintain the textual value displayed
for the list item.
</p>
</descr>
<seealso>
<link id="TListControlItem.Caption"/>
<link id="TListControlItems.Sort"/>
<link id="TListControlItems.SortType"/>
</seealso>
</element>
<element name="TListControlItem.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance.
Create calls the inherited constructor using the value in
<var>ACollection</var> as the owner for the collection item.
</p>
<p>
Create sets the default value for <var>ImageIndex</var> to <b>-1</b> to
indicate an index value has not been explicitly assigned.
</p>
</descr>
<seealso>
<link id="TListControlItem.ImageIndex"/>
</seealso>
</element>
<element name="TListControlItem.Create.ACollection">
<short>Collection where the class instance is stored.</short>
</element>
<element name="TListControlItem.Caption">
<short>Text displayed for the collection item.</short>
<descr>
<p>
<var>Caption</var> is a <var>String</var> property which contains the text
displayed in the list control for the item. Changing the value for the
property causes the <var>Changed</var> method to be called to update the list
item in its owner collection.
</p>
<p>
Use DisplayName to access the value displayed at design-time in the Object
Inspector.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TCollectionItem.DisplayName">TCollectionItem.DisplayName</link>
</seealso>
</element>
<element name="TListControlItem.ImageIndex">
<short>
Ordinal position for the image displayed for the collection item.
</short>
<descr>
<p>
<var>ImageIndex</var> is an <var>Integer</var> property used to specify the
ordinal position in an image list for the bitmap displayed for the list item.
<b>-1</b> (the default value for the property) indicates that an explicit
value has not been assigned for the property, and no image should be
displayed for the collection item.
</p>
</descr>
<seealso/>
</element>
<element name="TComboExItem">
<short>Implements an extended item used in TComboEx.</short>
<descr>
<p>
<var>TComboExItem</var> is a <var>TListControlItem</var> descendant which
implements an extended item used in <var>TComboEx</var>. TComboExItem extends
the ancestor class to include the following properties for the extended item:
</p>
<ul>
<li>Indent</li>
<li>OverlayImageIndex</li>
<li>SelectedImageIndex</li>
</ul>
<p>
<var>TComboExItem</var> is the type maintained in the
<var>TComboExItems</var> collection used to implement the <var>ItemsEx</var>
property in <var>TCustomComboBoxEx</var> and <var>TComboBoxEx</var>.
</p>
</descr>
<seealso>
<link id="TListControlItem"/>
<link id="TComboExItems"/>
<link id="TCustomComboBoxEx.ItemsEx"/>
<link id="TComboBoxEx.ItemsEx"/>
</seealso>
</element>
<element name="TComboExItem.FIndent"/>
<element name="TComboExItem.FOverlayImageIndex"/>
<element name="TComboExItem.FSelectedImageIndex"/>
<element name="TComboExItem.SetIndent">
<short>Sets the value for the Indent property.</short>
<descr/>
<seealso>
<link id="TComboExItem.Indent"/>
</seealso>
</element>
<element name="TComboExItem.SetIndent.AValue">
<short>New value for the property.</short>
</element>
<element name="TComboExItem.SetOverlayImageIndex">
<short>Sets the value for the OverlayImageIndex property.</short>
<descr/>
<seealso>
<link id="TComboExItem.OverlayImageIndex"/>
</seealso>
</element>
<element name="TComboExItem.SetOverlayImageIndex.AValue">
<short>New value for the property.</short>
</element>
<element name="TComboExItem.SetSelectedImageIndex">
<short>Sets the value for the SelectedImageIndex property.</short>
<descr/>
<seealso>
<link id="TComboExItem.SelectedImageIndex"/>
</seealso>
</element>
<element name="TComboExItem.SetSelectedImageIndex.AValue">
<short>New value for the property.</short>
</element>
<element name="TComboExItem.cDefCaption">
<short>Default caption used for a new item.</short>
<descr/>
<seealso/>
</element>
<element name="TComboExItem.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> calls the inherited constructor, and sets the default
values for properties in the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TComboExItem.Create.ACollection">
<short>Collection which owns the collection item.</short>
</element>
<element name="TComboExItem.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
</p>
<p>
Destroy ensures that the number of items in the <var>Collection</var> and the
<var>Owner</var> for the collection are kept in sync. Normally, the value in
<var>Count</var> is maintained when the Collection frees an item instance in
its <var>Delete</var> method. Destroy handles the situation where the
collection item is destroyed by calling the <var>Free</var> method in the
collection item instead.
</p>
<p>
A component notification message is performed for the Collection to signal
the delete operation. The <var>Notify</var> method in Collection is
<b>not</b> called when Collection is unassigned or does not have an Owner, or
when the Owner of the Collection is being freed.
</p>
<p>
Destroy calls the inherited destructor prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="TComboExItems.Notify"/>
<link id="TListControlItems.Items"/>
<link id="#rtl.classes.TCollectionItem.Collection">TCollectionItem.Collection</link>
<link id="#rtl.classes.TCollection.Owner">TCollection.Owner</link>
<link id="#rtl.classes.TCollection.Count">TCollection.Count</link>
<link id="#rtl.classes.TCollection.Delete">TCollection.Delete</link>
<link id="#rtl.classes.TComponent.ComponentState">TComponent.ComponentState</link>
</seealso>
</element>
<element name="TComboExItem.Indent">
<short>Space reserved between the Image and the caption for the item.</short>
<descr>
<p>
The default value for the property is <b>-1</b> and indicates that indent
spacing is not used for the Combo-Box item. The value is assigned when the
<var>AddItem</var> method in <var>TComboExItems</var> is used to create the
item using the parameter value passed to the method. Changing the value for
the property causes the <var>Changed</var> method to be called to update the
current item.
</p>
<p>
The value in Indent is used when the <var>DrawItem</var> method in
<var>TCustomComboBoxEx</var> is called to render an extended item in the
Combo-Box.
</p>
</descr>
<seealso>
<link id="TComboExItems.AddItem"/>
<link id="TCustomComboBoxEx.DrawItem"/>
</seealso>
</element>
<element name="TComboExItem.OverlayImageIndex">
<short>
Ordinal position for the image drawn as an overlay for the Image in the
combo-box item.
</short>
<descr>
<p>
The default value for the property is <b>-1</b>, and indicates that an
overlay image index has not been explicitly assigned for the item. The
overlay image is not drawn when the property contains <b>-1</b>.
</p>
<remark>
Changing the value for the property does not call the <var>Changed</var>
method in the current LCL version. This may be different than the behavior
from a previous LCL version.
</remark>
</descr>
<seealso>
</seealso>
</element>
<element name="TComboExItem.SelectedImageIndex">
<short>
Ordinal position for the image drawn when the item is selected in the
Combo-Box.
</short>
<descr/>
<seealso/>
</element>
<element name="TListControlItems">
<short>Container for the items added to a list control.</short>
<descr>
<p>
<var>TListControlItems</var> is a <var>TOwnedCollection</var> descendant
which implements a container for items added to a list control.
TListControlItems extends the ancestor class to provides case sensitivity
when comparing Items in the collection, sort types, and custom sorting using
an event handler.
</p>
<p>
TListControlItems is the ancestor for the <var>TComboExItems</var> collection
class.
</p>
</descr>
<seealso>
<link id="TComboExItems"/>
<link id="#rtl.classes.TOwnedCollection">TOwnedCollection</link>
</seealso>
</element>
<element name="TListControlItems.FCaseSensitive"/>
<element name="TListControlItems.FSortType"/>
<element name="TListControlItems.FOnCompare"/>
<element name="TListControlItems.FCompare"/>
<element name="TListControlItems.GetItems">
<short>Gets the value for the indexed Items property.</short>
<descr>
<p>
<var>GetItems</var> ensures that the collection Item is cast to the
<var>TListControlItem</var> type used in <var>TListControlItems</var>.
</p>
</descr>
<seealso>
<link id="TListControlItems.Items"/>
<link id="TListControlItem"/>
</seealso>
</element>
<element name="TListControlItems.GetItems.Result">
<short>Value for the property.</short>
</element>
<element name="TListControlItems.GetItems.AIndex">
<short>Ordinal position in the collection for the requested item.</short>
</element>
<element name="TListControlItems.SetCaseSensitive">
<short>Sets the value for the CaseSensitive property.</short>
<descr/>
<seealso>
<link id="TListControlItems.CaseSensitive"/>
</seealso>
</element>
<element name="TListControlItems.SetCaseSensitive.AValue">
<short>New value for the property.</short>
</element>
<element name="TListControlItems.SetSortType">
<short>Sets the value for the SortType property.</short>
<descr/>
<seealso>
<link id="TListControlItems.SortType"/>
</seealso>
</element>
<element name="TListControlItems.SetSortType.AValue">
<short>New value for the property.</short>
</element>
<element name="TListControlItems.CompareItems">
<short>Implements a comparison function for items in the collection.</short>
<descr>
<p>
<var>CompareItems</var> is an <var>Integer</var> function used to perform a
comparison for items in the collection. <var>AItem1</var> and
<var>AItem2</var> contains the list items compared in the method.
</p>
<p>
CompareItems uses the value in <var>CaseSensitive</var> to determine if the
comparison of captions value uses case sensitivity. When CaseSensitive is
<b>True</b>, caption values are converted to lowercase prior to performing
the comparison.
</p>
<p>
CompareItems calls <var>CompareStr</var> to perform a comparison for the
Captions assigned for the specified list items. The return value contains the
relative sort order for the items calculated as a difference between the
ASCII values for characters in the item captions. For example:
</p>
<dl>
<dt>&lt; 0</dt>
<dd>The caption in AItem1 comes before the caption in AItem2</dd>
<dt>0</dt>
<dd>The captions in AItem1 and Aitem2 are the same</dd>
<dt>&gt; 0</dt>
<dd>The caption in AItem1 comes after the caption in AItem2</dd>
</dl>
<p>
CompareItems is used in the implementation of the <var>Sort</var> method when
<var>SortType</var> contains the value <var>stText</var> or <var>stBoth</var>.
</p>
<p>
Use the <var>OnCompare</var> event handler when SortType contains
<var>stData</var> or <var>stBoth</var>.
</p>
</descr>
<seealso>
<link id="TListControlItems.CaseSensitive"/>
<link id="TListControlItems.Sort"/>
<link id="TListControlItems.SortType"/>
<link id="#rtl.sysutils.CompareStr">CompareStr</link>
</seealso>
</element>
<element name="TListControlItems.CompareItems.Result">
<short>Relative sort order for the compared items </short>
</element>
<element name="TListControlItems.CompareItems.AItem1">
<short>First list item for the comparison.</short>
</element>
<element name="TListControlItems.CompareItems.AItem2">
<short>Second list item for the comparison.</short>
</element>
<element name="TListControlItems.DoCustomSort">
<short>Performs the comparison for the CustomSort method.</short>
<descr>
<p>
<var>DoCustomSort</var> is an <var>Integer</var> function which performs the
comparison for the CustomSort method. Arguments passed to the method contain
the <var>TListControlItem</var> instances compared in the method.
</p>
<p>
DoCustomSort calls the <var>TListItemsCompare</var> routine passed as an
argument to the <var>CustomSort</var> method.
</p>
<p>
The return value contains the relative sort order for the items compared in
the method. For example:
</p>
<dl>
<dt>&lt;0</dt>
<dd>Item1 comes before Item2 using the custom sort.</dd>
<dt>0</dt>
<dd>Item1 and Item2 have the same value in the custom sort.</dd>
<dt>&gt;0</dt>
<dd>Item1 comes after Item2 in the custom sort.</dd>
</dl>
</descr>
<seealso>
<link id="TListControlItems.CustomSort"/>
<link id="TListControlItems.Sort"/>
<link id="TListControlItems.SortType"/>
<link id="TListControlItems.OnCompare"/>
<link id="TListControlItems.CompareItems"/>
<link id="TListItemsCompare"/>
</seealso>
</element>
<element name="TListControlItems.DoCustomSort.Result">
<short>Relative sort order for the compared items.</short>
</element>
<element name="TListControlItems.DoCustomSort.AItem1">
<short>First TListControlItem for the comparison.</short>
</element>
<element name="TListControlItems.DoCustomSort.AItem2">
<short>Second TListControlItem for the comparison.</short>
</element>
<element name="TListControlItems.DoOnCompare">
<short>
Signals the OnCompare event handler to compare items in the collection.
</short>
<descr>
<p>
<var>DoOnCompare</var> is called from the <var>Sort</var> method when
<var>SortType</var> is set to <var>stData</var> or <var>stBoth</var>.
</p>
</descr>
<seealso>
<link id="TListControlItems.Sort"/>
<link id="TListControlItems.SortType"/>
<link id="TListControlItems.OnCompare"/>
<link id="TListControlItems.CompareItems"/>
<link id="TListControlItems.CustomSort"/>
<link id="TListItemsCompare"/>
</seealso>
</element>
<element name="TListControlItems.DoOnCompare.Result">
<short>Relative sort order for the compared items.</short>
</element>
<element name="TListControlItems.DoOnCompare.AItem1">
<short>First TListControlItem for the comparison.</short>
</element>
<element name="TListControlItems.DoOnCompare.AItem2">
<short>Second TListControlItem for the comparison.</short>
</element>
<element name="TListControlItems.Update">
<short>
Performs a notification when an item in the collection has been changed.
</short>
<descr>
<p>
<var>Update</var> is an overridden method in <var>TListControlItems</var>
used to send a notification to observers when the value in <var>AItem</var>
has been changed. Update calls the inherited method in <var>TCollection</var>.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TCollection">TCollection</link>
<link id="#rtl.classes.TPersistent.FPONotifyObservers">TPersistent.FPONotifyObservers</link>
</seealso>
</element>
<element name="TListControlItems.Update.AItem">
<short>Collection item for the update notification.</short>
</element>
<element name="TListControlItems.Add">
<short>Adds a new item to the collection.</short>
<descr>
<p>
<var>Add</var> is a <var>TListControlItem</var> function used to add a new
item to the collection. Add reimplements the method defined in the
<var>TCollection</var> ancestor class to return the TListControlItem type.
The return value contains the TListControlItem instance created and stored in
the collection. The current class instance is used as the owner for the
collection item.
</p>
</descr>
<seealso>
<link id="TListControlItem"/>
<link id="#rtl.classes.TCollection.Add">TCollection.Add</link>
</seealso>
</element>
<element name="TListControlItems.Add.Result">
<short>Item added to the collection.</short>
</element>
<element name="TListControlItems.CustomSort">
<short>Performs a custom sort using the specified routine.</short>
<descr>
<p>
<var>CustomSort</var> is a procedure used to perform a custom sort for items
in the collection using the specified <var>TListItemsCompare</var> routine to
implement the comparison. When ACompare is assigned, it is temporarily stored
in an internal member and the <var>Sort</var> method is called. No actions
are performed in the method when ACompare has not been assigned (contains
<b>Nil</b>).
</p>
</descr>
<seealso>
<link id="TListItemsCompare"/>
<link id="TListControlItems.Sort"/>
</seealso>
</element>
<element name="TListControlItems.CustomSort.ACompare">
<short>
Routine used to perform the comparison for the items in the collection.
</short>
</element>
<element name="TListControlItems.Sort">
<short>Performs the Sort routine required for the setting in SortType.</short>
<descr>
<p>
<var>Sort</var> is a procedure used to perform the sort routine indicated in
<var>SortType</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TListControlItems.Items">
<short>
Provides indexed access to the list of items maintained in the collection.
</short>
<descr>
<p>
<var>Items</var> is a read-only indexed <var>TListControlItem</var> property
which provides access to the list of items maintained in the collection.
TListControlItems reimplements the read access specifier to return the
TListControlItem type required for the collection.
</p>
<p>
Use the Count property to determine the number of Items stored in the
collection. Use the Add or Insert method to create a new item in the
collection. Use Delete or Clear to remove one or all items in the collection.
</p>
<p>
Items is the default property for the collection, and the property examined
by the TCollectionEnumerator returned by the GetEnumerator method.
</p>
</descr>
<seealso>
<link id="TListControlItem"/>
<link id="#rtl.classes.TCollection.Items">TCollection.Items</link>
<link id="#rtl.classes.TCollection.Count">TCollection.Count</link>
<link id="#rtl.classes.TCollection.Add">TCollection.Add</link>
<link id="#rtl.classes.TCollection.Insert">TCollection.Insert</link>
<link id="#rtl.classes.TCollection.Clear">TCollection.Clear</link>
<link id="#rtl.classes.TCollection.Delete">TCollection.Delete</link>
</seealso>
</element>
<element name="TListControlItems.Items.AIndex">
<short>Ordinal position for the item requested.</short>
</element>
<element name="TListControlItems.CaseSensitive">
<short>
Indicates if case sensitivity is used when comparing items in the collection.
</short>
<descr>
<p>
<var>CaseSensitive</var> is a <var>Boolean</var> property which indicates if
case sensitivity is used when comparing items in the collection. The value in
CaseSensitive is used in the <var>CompareItems</var> method. When set to
<b>False</b>, the captions for the compared Items are converted to lowercase
prior to comparing their values.
</p>
<p>
Set <var>SortType</var> to <var>stText</var> to use case sensitive sorting
for the Items in the collection.
</p>
</descr>
<seealso>
<link id="TListControlItems.CompareItems"/>
<link id="TListControlItems.Sort"/>
<link id="TListControlItems.SortType"/>
<link id="TListItemsSortType"/>
</seealso>
</element>
<element name="TListControlItems.SortType">
<short>
Determines the comparison mechanism used for collection items in the Sort
method.
</short>
<descr>
<p>
<var>SortType</var> is a <var>TListItemsSortType</var> property which
determines the comparison mechanism used for collection items in the
<var>Sort</var> method. The default value for the property is
<var>stNone</var> and indicates that no sorting is performed for Items in the
collection. Changing the value for the property causes the Sort method to be
called to apply the new order to the collection Items.
</p>
</descr>
<seealso>
<link id="TListControlItems.Sort"/>
<link id="TListControlItems.Items"/>
<link id="TListItemsSortType"/>
</seealso>
</element>
<element name="TListControlItems.OnCompare">
<short>
Event handler signalled to sort the collection using the data in the
collection items.
</short>
<descr>
<p>
<var>OnCompare</var> is a <var>TListCompareEvent</var> property with the
event handler signalled to sort the collection using the arbitrary data
stored in each collection item. Applications must implement and assign an
object procedure using the signature in TListCompareEvent to allow responding
to the event notification.
</p>
<p>
OnCompare is signalled in the <var>DoOnCompare</var> method. Set the value in
<var>SortType</var> to <var>stData</var> to enable the event handler when the
<var>Sort</var> method is called. Use the <var>CustomSort</var> method to
sort the collection using a <var>TListItemsCompare</var> routine.
</p>
</descr>
<seealso>
<link id="TListControlItems.DoOnCompare"/>
<link id="TListControlItems.SortType"/>
<link id="TListControlItems.Sort"/>
<link id="TListControlItems.CustomSort"/>
<link id="TListCompareEvent"/>
<link id="TListItemsCompare"/>
<link id="TListItemsSortType"/>
</seealso>
</element>
<element name="TComboExItems">
<short>
Implements a collection for the items added to TCustomComboBoxEx.
</short>
<descr>
<p>
<var>TComboExItems</var> is a <var>TListControlItems</var> descendant which
Implements a collection for the items added to <var>TCustomComboBoxEx</var>
and <var>TComboBoxEx</var>. TComboExItems extends the ancestor class to use
the <var>TComboExItem</var> type for items added to the collection.
Reimplemented methods are provided to add, insert, and retrieve collection
items using the ItemClass required for the collection. An <var>AddItem</var>
method is introduced to create a new collection item and configure its
property values. The <var>Notify</var> and <var>Update</var> methods are
overridden to use the correct ItemClass as well.
</p>
<p>
TComboExItems is the type used to implement the <var>ItemsEx</var> property
in <var>TCustomComboBoxEx</var>.
</p>
</descr>
<seealso>
<link id="TListControlItems"/>
<link id="TCustomComboBoxEx.ItemsEx"/>
<link id="TComboBoxEx.ItemsEx"/>
</seealso>
</element>
<element name="TComboExItems.GetComboItems">
<short>Gets the value for the indexed ComboItems property.</short>
<descr/>
<seealso>
<link id="TComboExItems.ComboItems"/>
</seealso>
</element>
<element name="TComboExItems.GetComboItems.Result">
<short>Value for the property.</short>
</element>
<element name="TComboExItems.GetComboItems.AIndex">
<short>Ordinal position for the item accessed in the method.</short>
</element>
<element name="TComboExItems.FAddingOrDeletingItem">
<short>Tracks the add or delete status for the collection.</short>
</element>
<element name="TComboExItems.Notify">
<short>
Performs component notifications when a collection item is added to or
removed from the Collection.
</short>
<descr/>
<seealso/>
</element>
<element name="TComboExItems.Notify.Item">
<short>Collection item for the notification.</short>
</element>
<element name="TComboExItems.Notify.Action">
<short>Action for the notification.</short>
</element>
<element name="TComboExItems.Update">
<short>
Updates the collection when the specified item has been changed.
</short>
<descr>
<p>
Causes the owner of the collection (the control) to be redrawn when needed.
</p>
</descr>
<seealso/>
</element>
<element name="TComboExItems.Update.Item">
<short>Collection item examined in the method.</short>
</element>
<element name="TComboExItems.Add">
<short>Adds a new item to the collection.</short>
<descr>
<p>
<var>Add</var> is a <var>TComboExItem</var> function used to add a new item
to the collection. Add reimplements the method in
<var>TListControlItems</var> to use the type required for the derived
collection. The return value contains the TComboExItem instance allocated in
the method. The current class instance is used as the Owner of the collection
item. Add is used in the implementation of the <var>AddItem</var> method.
</p>
<p>
Use <var>AddItem</var> to create a new collection item with the values
specified in the arguments to the method.
</p>
</descr>
<seealso>
<link id="TComboExItems.AddItem"/>
<link id="TListControlItems.Add"/>
<link id="TComboExItem"/>
</seealso>
</element>
<element name="TComboExItems.Add.Result">
<short>Item added to the collection.</short>
</element>
<element name="TComboExItems.AddItem">
<short>Adds a new item with the specified values to the collection.</short>
<descr>
<p>
<var>AddItem</var> is a <var>TComboExItem</var> function used to add a new
item to the collection with the values specified in the parameters passed to
the method. AddItem calls the <var>Add</var> method to create a new
TComboExItem instance. The following properties are updated in the collection
item to use the values specified in the arguments:
</p>
<ul>
<li>Caption</li>
<li>indent</li>
<li>ImageIndex</li>
<li>OverlayImageIndex</li>
<li>SelectedImageIndex</li>
<li>Data</li>
</ul>
</descr>
<seealso>
<link id="TComboExItems.Add"/>
<link id="TComboExItem.Indent"/>
<link id="TComboExItem.OverlayImageIndex"/>
<link id="TComboExItem.SelectedImageIndex"/>
<link id="TListControlItem.Data"/>
<link id="TListControlItem.Caption"/>
<link id="TListControlItem.ImageIndex"/>
</seealso>
</element>
<element name="TComboExItems.AddItem.Result">
<short>Item added to the collection.</short>
</element>
<element name="TComboExItems.AddItem.ACaption">
<short>Caption for the item.</short>
</element>
<element name="TComboExItems.AddItem.AImageIndex">
<short>Image index for the item.</short>
</element>
<element name="TComboExItems.AddItem.AOverlayImageIndex">
<short>Overlay image index for the item.</short>
</element>
<element name="TComboExItems.AddItem.ASelectedImageIndex">
<short>Selected image index for the item.</short>
</element>
<element name="TComboExItems.AddItem.AIndent">
<short>Indent spacing for the item.</short>
</element>
<element name="TComboExItems.AddItem.AData">
<short>Pointer to the arbitrary data associated with the item.</short>
</element>
<element name="TComboExItems.Insert">
<short>
Inserts a collection item at the specified position in the collection.
</short>
<descr>
<p>
<var>Insert</var> is a <var>TComboExItem</var> function used to insert a new
collection item at the specified position in the collection. Insert
reimplements the method in <var>TCollection</var> to create and return the
TComboExItem type used in the derived collection. Inserts calls the inherited
method, and casts the return value to a TComboExItem type.
</p>
</descr>
<seealso>
<link id="TComboExItem"/>
<link id="TComboExItems.Add"/>
<link id="TComboExItems.AddItem"/>
<link id="#rtl.classes.TCollection.Insert">TCollection.Insert</link>
</seealso>
</element>
<element name="TComboExItems.Insert.Result">
<short>Collection item created and stored at the specified position.</short>
</element>
<element name="TComboExItems.Insert.AIndex">
<short>
Ordinal position in the collection where the new item is inserted.
</short>
</element>
<element name="TComboExItems.ComboItems">
<short>Provides indexed access to the items in the collection.</short>
<descr>
<p>
<var>ComboItems</var> is a read-only indexed <var>TComboExItem</var> property
used to provide access to the <var>Items</var> in the collection. The read
access specifier for the property ensures that values in Items are cast to
the TComboExItem type used in the derived collection.
</p>
<p>
ComboItems is the default property for the collection, and the subject
visited in an enumerator for the class.
</p>
</descr>
<seealso>
<link id="TListControlItems.Items"/>
<link id="#rtl.classes.TCollection.GetEnumerator">TCollection.GetEnumerator</link>
</seealso>
</element>
<element name="TComboExItems.ComboItems.AIndex">
<short>
Ordinal position for the collection item requested in the method.
</short>
</element>
<element name="TCustomComboBoxEx">
<short>Implements the base class for an extended/enhanced combo-box.</short>
<descr>
<p>
<var>TCustomComboBoxEx</var> is a <var>TCustomComboBox</var> descendant which
implements the base class for <var>TComboBoxEx</var>.
</p>
<p>
TCustomComboBoxEx provides an extended combo-box with added features and
capabilities like auto completion, additional display styles, more editing
options, and a list with Images used in the control. Another key feature in
the class is an extended Items property which provides normal, selected, and
overlay image indexes and allows indentation between the image and caption
for items in the combo-box. A pointer to arbitrary data for Items used in
sort operations is also provided.
</p>
</descr>
<seealso>
<link id="TComboBoxEx"/>
<link id="#lcl.stdctrls.TCustomComboBox">TCustomComboBox</link>
</seealso>
</element>
<element name="TCustomComboBoxEx.FAutoCompleteOptions"/>
<element name="TCustomComboBoxEx.FImages"/>
<element name="TCustomComboBoxEx.FItemsEx"/>
<element name="TCustomComboBoxEx.FStyle"/>
<element name="TCustomComboBoxEx.FStyleEx"/>
<element name="TCustomComboBoxEx.FImagesWidth"/>
<element name="TCustomComboBoxEx.SetImages">
<short>Sets the value for the Images property.</short>
<descr/>
<seealso>
<link id="TCustomComboBoxEx.Images"/>
</seealso>
</element>
<element name="TCustomComboBoxEx.SetImages.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomComboBoxEx.SetImagesWidth">
<short>Sets the value for the ImagesWidth property.</short>
<descr/>
<seealso>
<link id="TCustomComboBoxEx.ImagesWidth"/>
</seealso>
</element>
<element name="TCustomComboBoxEx.SetImagesWidth.AImagesWidth">
<short>New value for the property.</short>
</element>
<element name="TCustomComboBoxEx.SetStyle">
<short>Sets the value for the Style property.</short>
<descr/>
<seealso>
<link id="TCustomComboBoxEx.Style"/>
</seealso>
</element>
<element name="TCustomComboBoxEx.SetStyle.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomComboBoxEx.SetStyleEx">
<short>Sets the value for the StyleEx property.</short>
<descr/>
<seealso>
<link id="TCustomComboBoxEx.StyleEx"/>
</seealso>
</element>
<element name="TCustomComboBoxEx.SetStyleEx.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomComboBoxEx.cDefAutoCompOpts">
<short>Default value for the AutoCompleteOptions property.</short>
<descr/>
<seealso>
<link id="TCustomComboBoxEx.AutoCompleteOptions"/>
</seealso>
</element>
<element name="TCustomComboBoxEx.cDefStyle">
<short>Default value for the Style property.</short>
<descr/>
<seealso>
<link id="TCustomComboBoxEx.Style"/>
</seealso>
</element>
<element name="TCustomComboBoxEx.FNeedMeasure">
<short>
Internal flag which indicates if the text height needs to be calculated when
drawing an item.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomComboBoxEx.FRightToLeft">
<short>Internal flag which tracks the BidiMode setting in the control.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomComboBoxEx.FTextHeight">
<short>Internal derived text height for an item in the combo-box.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomComboBoxEx.CMBiDiModeChanged">
<short>
Performs actions needed when the BiDiMode setting is changed for the control.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomComboBoxEx.CMBiDiModeChanged.Message">
<short>Message handled in the method.</short>
</element>
<element name="TCustomComboBoxEx.DrawItem">
<short>
Draws an item on the extended combo-box control.
</short>
<descr>
<p>
<var>DrawItem</var> is an overridden procedure used to draw an item on the
extended combo-box control.
</p>
<p>
<var>Index</var> contains the ordinal position for the TComboExItem instance in
<var>ItemsEx</var> that is drawn in the method.
</p>
<p>
<var>ARect</var> is the TRect instance with the coordinates for the item. The
values in ARect are set in the calling procedure (LMDrawListItem in
TCustomComboBox). When the left coordinate is greater than zero (0), the item
is a sub-item (or not a main item). Sub-items are drawn with the additional
spacing in Indent applied to the drawing rectangle.
</p>
<p>
<var>State</var> contains the owner draw state used to render the item on the
control. It is used along with the Focused, DroppedDown, and IsEnabled to
determine the brush color and style used to render the item on the Canvas.
</p>
<p>
DrawItem calculates the vertical space needed for the text on the item. It also
ensures that the Indent for the item is used to position output horizontally on
the control.
</p>
<p>
If <var>Images</var> have been assigned for the control, the image index
appropriate for the value in State is determined. The value
<var>odSelected</var> causes the <var>SelectedImageIndex</var> for the item
is be used. Otherwise, the <var>ImageIndex</var> for the item is used.
</p>
<p>
The image size is determined using the SizeForPPI method in <var>Images</var>
with the value in its ImagesWidth and the display density for the control Font.
DrawItem gets the location for the image and the indent spacing for the current
BiDiMode setting for the control. Right-to-Left rendering aligns the image and
indent to the right-hand edge of the drawing rectangle. The DrawForPPI method
in Images is called to scale the selected image to the current PixelsPerInch
setting in Font, and to render the image on the control Canvas.
</p>
<p>
An image is <b>not</b> drawn when Images is unassigned or contains zero (0)
images, or when values have not been explicitly assigned to either ImageIndex
or SelectedImageIndex for the extended item in Index.
</p>
<p>
DrawItem configures the Canvas to use the brush style and font color needed
for the values in State, DroppedDown, and Focused. clHighlight is used as the
Font color for an item where any one of these values is <b>True</b>. Otherwise,
clWindowText is used. If the item is Focused and Enabled but not DroppedDown,
the background color is set to clBtnFace and the focus rectangle is drawn.
</p>
<p>
Text drawing flags are derived for the item; text is on an single line and
ellipsified when too long. Text is aligned for the Bidi mode on the control,
and centered vertically in the output rectangle. The text is rendered on the
Canvas by calling the <var>DrawText</var> method in the LCL interface.
</p>
<remark>
DrawItem does <b>NOT</b> call the inherited method in
<var>TCustomComboBox</var> or trigger its <var>OnDrawItem</var> event handler.
The extended combo-box item is rendered entirely in this method.
</remark>
</descr>
<seealso>
<link id="TCustomComboBoxEx.Images"/>
<link id="TCustomComboBoxEx.ItemsEx"/>
<link id="TComboExItem"/>
<link id="#lcl.stdctrls.TCustomComboBox.Canvas">TCustomComboBox.Canvas</link>
<link id="#lcl.stdctrls.TCustomComboBox.DroppedDown">TCustomComboBox.DroppedDown</link>
<link id="#lcl.stdctrls.TCustomComboBox.DrawItem">TCustomComboBox.DrawItem</link>
<link id="#lcl.stdctrls.TOwnerDrawState">TOwnerDrawState</link>
<link id="#lcl.controls.TWinControl.Focused">TWinControl.Focused</link>
<link id="#lcl.controls.TControl.IsEnabled">TControl.IsEnabled</link>
</seealso>
</element>
<element name="TCustomComboBoxEx.DrawItem.Index">
<short>Ordinal position for the item drawn in the method.</short>
</element>
<element name="TCustomComboBoxEx.DrawItem.ARect">
<short>Display rectangle for the item drawn in the method.</short>
</element>
<element name="TCustomComboBoxEx.DrawItem.State">
<short>State used to draw the item in the control.</short>
</element>
<element name="TCustomComboBoxEx.FontChanged">
<short>
Performs actions needed when the font in the control has been changed.
</short>
<descr>
<p>
<var>FontChanged</var> is an overridden procedure in
<var>TCustomComboBoxEx</var>. FontChanged sets the value in the internal
<var>FNeedMeasure</var> flag to <b>True</b> to force the text height for
<var>Items</var> to be recalculated. FontChanged calls the inherited method
prior to exiting from the procedure.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.FontChanged">TWinControl.FontChanged</link>
</seealso>
</element>
<element name="TCustomComboBoxEx.FontChanged.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TCustomComboBoxEx.InitializeWnd">
<short>Initializes the window handle for the control.</short>
<descr>
<p>
<var>InitializeWnd</var> is an overridden procedure used to initialize the
window handle for the control. InitializeWnd calls the inherited method, and
sets the internal flag used to track the setting in <var>IsRightToLeft</var>
for the control.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.InitializeWnd">TCustomComboBox.InitializeWnd</link>
<link id="#lcl.controls.TControl.IsRightToLeft">TControl.IsRightToLeft</link>
</seealso>
</element>
<element name="TCustomComboBoxEx.Notification">
<short>
Performs actions needed when the specified component is added to or removed
from the control.
</short>
<descr>
<p>
<var>Notification</var> is an overridden method in TCustomComboBoxEx. It
calls the inherited method on entry to handle notifications in ancestor
classes and their child components. It ensures that the reference in Images
is set to <b>Nil</b> when the component is removed from the control.
</p>
</descr>
<seealso>
<link id="TCustomComboBoxEx.Images"/>
<link id="#lcl.controls.TControl.Notification">TControl.Notification</link>
<link id="#rtl.classes.TComponent">TComponent</link>
</seealso>
</element>
<element name="TCustomComboBoxEx.Notification.AComponent">
<short>Component for the notification.</short>
</element>
<element name="TCustomComboBoxEx.Notification.Operation">
<short>Operation performed for the specified component.</short>
</element>
<element name="TCustomComboBoxEx.SetItemHeight">
<short>Sets the value for the ItemHeight property.</short>
<descr>
<p>
Overridden in TCustomComboBoxEx to set the internal FNeedMeasure flag.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.ItemHeight">TCustomComboBox.ItemHeight</link>
</seealso>
</element>
<element name="TCustomComboBoxEx.SetItemHeight.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomComboBoxEx.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the constructor for the class instance. Create calls the
inherited constructor, and allocates resources needed for the class instance.
Create sets the default values for the following properties:
</p>
<dl>
<dt>AutoCompleteOptions</dt>
<dd>Set to the constant in cDefAutoCompOpts</dd>
<dt>Style</dt>
<dd>
The inherited property is set to csOwnerDrawFixed; the value is set to the
constant in cDefStyle in the class instance
</dd>
<dt>StyleEx</dt>
<dd>Set to an empty set ([])</dd>
<dt>FNeedMeasure</dt>
<dd>Set to <b>True</b> to force the item height to be recalculated</dd>
</dl>
</descr>
<seealso/>
</element>
<element name="TCustomComboBoxEx.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TCustomComboBoxEx.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
Destroy ensures that resources allocated to the <var>ItemEx</var> property
are freed prior to destroying the class instance. Destroy calls the inherited
destructor prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.Destroy">TCustomComboBox.Destroy</link>
</seealso>
</element>
<element name="TCustomComboBoxEx.Add">
<short>Adds a new item to the extended combo-box control.</short>
<descr>
<p>
<var>Add</var> is an overloaded method used to add a new item to the extended
combo-box control. Both procedure and function variants are provided.
</p>
<p>
The function variant accepts no arguments, and returns an Integer value with
the ordinal position in ItemsEx where the new item was inserted. The caption
for the new item is set to the TComboExItem.cDefCaption constant.
</p>
<p>
The procedure variant does not return the new position for the inserted item.
Use the Count property in ItemsEx to determine the ordinal position for the
item on exit from the method. Use the parameters to specify the values stored
in the corresponding properties in the TComboExItem class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomComboBoxEx.Add.Result">
<short>Item added to the control.</short>
</element>
<element name="TCustomComboBoxEx.Add.ACaption">
<short>Caption for the added item.</short>
</element>
<element name="TCustomComboBoxEx.Add.AIndent">
<short>Indent for the added item.</short>
</element>
<element name="TCustomComboBoxEx.Add.AImgIdx">
<short>Image index for the added item.</short>
</element>
<element name="TCustomComboBoxEx.Add.AOverlayImgIdx">
<short>Overlay image index for the added item.</short>
</element>
<element name="TCustomComboBoxEx.Add.ASelectedImgIdx">
<short>Select image index for the added item.</short>
</element>
<element name="TCustomComboBoxEx.AddItem">
<short>Adds the specified item and object instance to the control.</short>
<descr>
<p>
<var>AddItem</var> is a procedure used to create a new item in the extended
combo-box control with the specified caption and object data. <var>Item</var>
contains the caption assigned to the new <var>TComboExItem</var> instance.
AnObject is an object with the data stored in the new TComboExItem instance.
</p>
<p>
AddItem calls <var>Insert</var> to create, update, and store the item in the
<var>ItemsEx</var> property. The value in <var>AnObject</var> is stored to the
Data property in the extended combo-box item appended to ItemsEx.
</p>
</descr>
<seealso>
<link id="TCustomComboBoxEx.ItemsEx"/>
<link id="TListControlItem.Caption"/>
<link id="TListControlItem.Data"/>
<link id="TComboExItems"/>
<link id="TComboExItem"/>
<link id="TListControlItems"/>
</seealso>
</element>
<element name="TCustomComboBoxEx.AddItem.Item">
<short>Item added to the control.</short>
</element>
<element name="TCustomComboBoxEx.AddItem.AnObject">
<short>Object with data for the item added to the control.</short>
</element>
<element name="TCustomComboBoxEx.AssignItemsEx">
<short>Assigns the specified values to the ItemsEx property.</short>
<descr>
<p>
<var>AssignItemsEx</var> is an overloaded procedure used to assign the
specified values to the <var>ItemsEx</var> property.
</p>
<p>
The overloaded variants are used to specify different source types with the
values stored in the method. When <var>AItemsEx</var>
(<var>TComboExItems</var>) is used as the source, the <var>Assign</var>
method in ItemsEx is called to store the new values in the property. When
AItems (<var>TStrings</var>) is used as the source, additional processing is
performed to clear the content in ItemsEx prior to calling its
<var>AddItem</var> method for each of the captions in AItems.
</p>
</descr>
<seealso>
<link id="TComboExItems"/>
<link id="TComboExItems.AddItem"/>
<link id="#rtl.classes.TCollection.Assign">TCollection.Assign</link>
<link id="#rtl.classes.TCollection.Clear">TCollection.Clear</link>
</seealso>
</element>
<element name="TCustomComboBoxEx.AssignItemsEx.AItems">
<short>TStrings instance with values stored in the ItemsEx property.</short>
</element>
<element name="TCustomComboBoxEx.AssignItemsEx.AItemsEx">
<short>
TComboExItems instance with values stored in the ItemsEx property.
</short>
</element>
<element name="TCustomComboBoxEx.Clear">
<short>Clears the contents in the ItemsEx collection.</short>
<descr>
<p>
<var>Clear</var> is an overridden method used to clear the contents in the
<var>ItemsEx</var> collection. Clear overrides the behavior from the ancestor
class by accessing the Clear method in the ItemsEx property, instead of the
<var>Items</var> property.
</p>
</descr>
<seealso>
<link id="TCustomComboBoxEx.ItemsEx"/>
<link id="TListControlItems.Items"/>
<link id="#rtl.classes.TCollection.Clear">TCollection.Clear</link>
</seealso>
</element>
<element name="TCustomComboBoxEx.Delete">
<short>
Deletes the item stored at the specified ordinal position in ItemsEx.
</short>
<descr>
<p>
<var>Delete</var> calls the Delete method in <var>ItemsEx</var> to remove the
collection item at the position specified in <var>AIndex</var>.
</p>
</descr>
<seealso>
<link id="TCustomComboBoxEx.ItemsEx"/>
<link id="#rtl.classes.TCollection.Delete">TCollection.Delete</link>
</seealso>
</element>
<element name="TCustomComboBoxEx.Delete.AIndex">
<short>Ordinal position for the item deleted in the method.</short>
</element>
<element name="TCustomComboBoxEx.DeleteSelected">
<short>Deletes the current item selected in the control.</short>
<descr>
<p>
<var>DeleteSelected</var> uses the value in <var>ItemIndex</var> to determine
if an item in the control has been selected. When ItemIndex contains a value
other than <b>-1</b>, the <var>Delete</var> method is called to remove the
item at the position in ItemIndex from the <var>ItemsEx</var> property. No
actions are performed in the method when ItemIndex contains a non-zero
negative value.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.ItemIndex">TCustomComboBox.ItemIndex</link>
<link id="TCustomComboBoxEx.ItemsEx"/>
<link id="TCustomComboBoxEx.Delete"/>
</seealso>
</element>
<element name="TCustomComboBoxEx.Insert">
<short>
Inserts a new item with the specified values at the given position.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomComboBoxEx.Insert.AIndex">
<short>Ordinal position where the new item is stored.</short>
</element>
<element name="TCustomComboBoxEx.Insert.ACaption">
<short>Caption for the new combo-box item.</short>
</element>
<element name="TCustomComboBoxEx.Insert.AIndent">
<short>Indent spacing for the new combo-box item.</short>
</element>
<element name="TCustomComboBoxEx.Insert.AImgIdx">
<short>Image index for the new combo-box item.</short>
</element>
<element name="TCustomComboBoxEx.Insert.AOverlayImgIdx">
<short>Overlay image index for the new combo-box item.</short>
</element>
<element name="TCustomComboBoxEx.Insert.ASelectedImgIdx">
<short>Selected image index for the new combo-box item.</short>
</element>
<element name="TCustomComboBoxEx.AutoCompleteOptions">
<short>
Contains settings for auto-complete features enabled in the control.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomComboBoxEx.Images">
<short>
Contains images which can be displayed for items defined in the ItemsEx
property.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomComboBoxEx.ImagesWidth">
<short>Specifies the width for images displayed in the control.</short>
<descr>
<p>
<var>ImagesWidth</var> is an <var>Integer</var> property used to specify the
width for <var>Images</var> displayed in the extended combo-box control. The
property value is the image size used at the design-time display density
(PPI). The value may be adjusted in the <var>DrawItem</var> method to a
scaled value relative to the PPI setting for the current <var>Font</var> in
the control. The scaled value determines the image resolution requested when
accessing the Images assigned for the control.
</p>
<p>
The default value for the property is zero (<b>0</b>) and indicates that an
explicit value has not been assigned for the property.
</p>
<p>
Changing the value for the property causes the <var>Invalidate</var> method
to be called to refresh the control.
</p>
</descr>
<seealso>
<link id="TCustomComboBoxEx.Images"/>
<link id="TCustomComboBoxEx.DrawItem"/>
<link id="TComboBoxEx.Font"/>
<link id="#lcl.controls.TWinControl.Invalidate">TWinControl.Invalidate</link>
</seealso>
</element>
<element name="TCustomComboBoxEx.ItemsEx">
<short>Collection with the extended items defined for the control.</short>
<descr>
<p>
<var>ItemsEx</var> is a <var>TComboExItems</var> property which provides
access to the extended items defined for the combo-box control. ItemsEx uses
<var>TComboExItem</var> as the <var>ItemClass</var> for the collection. The
collection is maintained using the <var>Add</var>, <var>AddItem</var>,
<var>Delete</var>, <var>DeleteSelected</var>, and <var>Clear</var> methods.
Use <var>AssignItemsEx</var> to set the values in the collection to the
values from a specific source.
</p>
<p>
Values in ItemsEx are used in the <var>DrawItem</var> method to render the
item(s) using the theme details for the control.
</p>
</descr>
<seealso>
<link id="TComboExItems"/>
<link id="TCustomComboBoxEx.DrawItem"/>
<link id="TCustomComboBoxEx.Add"/>
<link id="TCustomComboBoxEx.AddItem"/>
<link id="TCustomComboBoxEx.Delete"/>
<link id="TCustomComboBoxEx.DeleteSelected"/>
<link id="TCustomComboBoxEx.Clear"/>
<link id="TCustomComboBoxEx.AssignItemsEx"/>
</seealso>
</element>
<element name="TCustomComboBoxEx.Style">
<short>
Specifies the control style used for the edit in the combo-box control.
</short>
<descr>
<p>
<var>Style</var> is a <var>TComboBoxExStyle</var> property which specifies
the control style used for the control. This is a narrower range of values
than those used in the <var>TCustomComboBox</var> ancestor class; the owner
drawn options are not needed in this class. The following values are used:
</p>
<dl>
<dt>csExDropDown</dt>
<dd>Displays an edit control with a button to make the drop down visible</dd>
<dt>csExSimple</dt>
<dd>Displays an edit control only</dd>
<dt>csExDropDownList</dt>
<dd>Displays a read-only value with a button to make the drop down
visible</dd>
</dl>
<p>
The default value for the property is set using the <var>cDefStyle</var>
constant.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomComboBoxEx.StyleEx">
<short>
Enables features or behaviors in the extended combo-box control.
</short>
<descr>
<p>
<var>StyleEx</var> is a <var>TComboBoxExStyles</var> property used to store
<var>TComboBoxExStyleEx</var> values which enable features in the extended
combo-box control. Including a value from the enumeration enables the
corresponding feature or behavior in the control. See <link
id="TComboBoxExStyleEx"/> for more information on the enumeration values and
their meanings.
</p>
<p>
The default value for the property is an empty set ([]).
</p>
<remark>
Values in StyleEx are not used in the current implementation of
TCustomComboBoxEx.
</remark>
</descr>
<seealso/>
</element>
<element name="TComboBoxEx">
<short>Implements an extended combo-box component.</short>
<descr>
<p>
<var>TComboBoxEx</var> is a <var>TCustomComboBoxEx</var> descendant which
implements an extended combo-box component.
</p>
<p>
TComboBoxEx provides an extended combo-box with added features and
capabilities like auto completion, additional display styles, more editing
options, and a list with Images used in the control. Another key feature in
the class is an extended Items property which provides normal, selected, and
overlay image indexes and allows indentation between the image and caption
for items in the combo-box. A pointer to arbitrary data for Items used in
sort operations is also provided.
</p>
</descr>
<seealso>
<link id="TCustomComboBoxEx"/>
</seealso>
</element>
<element name="TComboBoxEx.Align" link="#lcl.controls.TControl.Align"/>
<element name="TComboBoxEx.Anchors" link="#lcl.controls.TControl.Anchors"/>
<element name="TComboBoxEx.ArrowKeysTraverseList" link="#lcl.stdctrls.TCustomComboBox.ArrowKeysTraverseList"/>
<element name="TComboBoxEx.AutoComplete" link="#lcl.stdctrls.TCustomComboBox.AutoComplete"/>
<element name="TComboBoxEx.AutoCompleteOptions" link="#lcl.comboex.TCustomComboBoxEx.AutoCompleteOptions"/>
<element name="TComboBoxEx.AutoCompleteText" link="#lcl.stdctrls.TCustomComboBox.AutoCompleteText"/>
<element name="TComboBoxEx.AutoDropDown" link="#lcl.stdctrls.TCustomComboBox.AutoDropDown"/>
<element name="TComboBoxEx.AutoSelect" link="#lcl.stdctrls.TCustomComboBox.AutoSelect"/>
<element name="TComboBoxEx.AutoSize" link="#lcl.controls.TControl.AutoSize"/>
<element name="TComboBoxEx.BidiMode" link="#lcl.controls.TControl.BidiMode"/>
<element name="TComboBoxEx.BorderSpacing" link="#lcl.controls.TControl.BorderSpacing"/>
<element name="TComboBoxEx.BorderStyle" link="#lcl.controls.TWinControl.BorderStyle"/>
<element name="TComboBoxEx.CharCase" link="#lcl.stdctrls.TCustomComboBox.CharCase"/>
<element name="TComboBoxEx.Color" link="#lcl.controls.TControl.Color"/>
<element name="TComboBoxEx.Constraints" link="#lcl.controls.TControl.Constraints"/>
<element name="TComboBoxEx.DragCursor" link="#lcl.controls.TControl.DragCursor"/>
<element name="TComboBoxEx.DragKind" link="#lcl.controls.TControl.DragKind"/>
<element name="TComboBoxEx.DragMode" link="#lcl.controls.TControl.DragMode"/>
<element name="TComboBoxEx.DropDownCount" link="#lcl.stdctrls.TCustomComboBox.DropDownCount"/>
<element name="TComboBoxEx.Enabled" link="#lcl.controls.TControl.Enabled"/>
<element name="TComboBoxEx.Font" link="#lcl.controls.TControl.Font"/>
<element name="TComboBoxEx.Images" link="#lcl.comboex.TCustomComboBoxEx.Images"/>
<element name="TComboBoxEx.ImagesWidth" link="#lcl.comboex.TCustomComboBoxEx.ImagesWidth"/>
<element name="TComboBoxEx.ItemHeight" link="#lcl.stdctrls.TCustomComboBox.ItemHeight"/>
<element name="TComboBoxEx.ItemsEx" link="#lcl.comboex.TCustomComboBoxEx.ItemsEx"/>
<element name="TComboBoxEx.ItemIndex" link="#lcl.stdctrls.TCustomComboBox.ItemIndex"/>
<element name="TComboBoxEx.ItemWidth" link="#lcl.stdctrls.TCustomComboBox.ItemWidth"/>
<element name="TComboBoxEx.MaxLength" link="#lcl.stdctrls.TCustomComboBox.MaxLength"/>
<element name="TComboBoxEx.OnChange" link="#lcl.stdctrls.TCustomComboBox.OnChange"/>
<element name="TComboBoxEx.OnChangeBounds" link="#lcl.controls.TControl.OnChangeBounds"/>
<element name="TComboBoxEx.OnClick" link="#lcl.controls.TControl.OnClick"/>
<element name="TComboBoxEx.OnCloseUp" link="#lcl.stdctrls.TCustomComboBox.OnCloseUp"/>
<element name="TComboBoxEx.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element name="TComboBoxEx.OnDblClick" link="#lcl.controls.TControl.OnDblClick"/>
<element name="TComboBoxEx.OnDragDrop" link="#lcl.controls.TControl.OnDragDrop"/>
<element name="TComboBoxEx.OnDragOver" link="#lcl.controls.TControl.OnDragOver"/>
<element name="TComboBoxEx.OnDropDown" link="#lcl.stdctrls.TCustomComboBox.OnDropDown"/>
<element name="TComboBoxEx.OnEditingDone" link="#lcl.controls.TControl.OnEditingDone"/>
<element name="TComboBoxEx.OnEndDock" link="#lcl.controls.TControl.OnEndDock"/>
<element name="TComboBoxEx.OnEndDrag" link="#lcl.controls.TControl.OnEndDrag"/>
<element name="TComboBoxEx.OnEnter" link="#lcl.controls.TWinControl.OnEnter"/>
<element name="TComboBoxEx.OnExit" link="#lcl.controls.TWinControl.OnExit"/>
<element name="TComboBoxEx.OnGetItems" link="#lcl.stdctrls.TCustomComboBox.OnGetItems"/>
<element name="TComboBoxEx.OnKeyDown" link="#lcl.controls.TWinControl.OnKeyDown"/>
<element name="TComboBoxEx.OnKeyPress" link="#lcl.controls.TWinControl.OnKeyPress"/>
<element name="TComboBoxEx.OnKeyUp" link="#lcl.controls.TWinControl.OnKeyUp"/>
<element name="TComboBoxEx.OnMouseDown" link="#lcl.controls.TControl.OnMouseDown"/>
<element name="TComboBoxEx.OnMouseEnter" link="#lcl.controls.TControl.OnMouseEnter"/>
<element name="TComboBoxEx.OnMouseLeave" link="#lcl.controls.TControl.OnMouseLeave"/>
<element name="TComboBoxEx.OnMouseMove" link="#lcl.controls.TControl.OnMouseMove"/>
<element name="TComboBoxEx.OnMouseUp" link="#lcl.controls.TControl.OnMouseUp"/>
<element name="TComboBoxEx.OnMouseWheel" link="#lcl.controls.TControl.OnMouseWheel"/>
<element name="TComboBoxEx.OnMouseWheelDown" link="#lcl.controls.TControl.OnMouseWheelDown"/>
<element name="TComboBoxEx.OnMouseWheelUp" link="#lcl.controls.TControl.OnMouseWheelUp"/>
<element name="TComboBoxEx.OnSelect" link="#lcl.stdctrls.TCustomComboBox.OnSelect"/>
<element name="TComboBoxEx.OnStartDock" link="#lcl.controls.TControl.OnStartDock"/>
<element name="TComboBoxEx.OnStartDrag" link="#lcl.controls.TControl.OnStartDrag"/>
<element name="TComboBoxEx.OnUTF8KeyPress" link="#lcl.controls.TWinControl.OnUTF8KeyPress"/>
<element name="TComboBoxEx.ParentBidiMode" link="#lcl.controls.TControl.ParentBidiMode"/>
<element name="TComboBoxEx.ParentColor" link="#lcl.controls.TControl.ParentColor"/>
<element name="TComboBoxEx.ParentFont" link="#lcl.controls.TControl.ParentFont"/>
<element name="TComboBoxEx.ParentShowHint" link="#lcl.controls.TControl.ParentShowHint"/>
<element name="TComboBoxEx.PopupMenu" link="#lcl.controls.TControl.PopupMenu"/>
<element name="TComboBoxEx.ShowHint" link="#lcl.controls.TControl.ShowHint"/>
<element name="TComboBoxEx.Style" link="#lcl.comboex.TCustomComboBoxEx.Style"/>
<element name="TComboBoxEx.StyleEx" link="#lcl.comboex.TCustomComboBoxEx.StyleEx"/>
<element name="TComboBoxEx.TabOrder" link="#lcl.controls.TWinControl.TabOrder"/>
<element name="TComboBoxEx.TabStop" link="#lcl.controls.TWinControl.TabStop"/>
<element name="TComboBoxEx.Text" link="#lcl.stdctrls.TCustomComboBox.Text"/>
<element name="TComboBoxEx.TextHint" link="#lcl.stdctrls.TCustomComboBox.TextHint"/>
<element name="TComboBoxEx.Visible" link="#lcl.controls.TControl.Visible"/>
<element name="TCheckComboItemState">
<short>
Represents state and data for a check box item displayed in TCustomCheckCombo.
</short>
<descr>
<p>
<var>TCheckComboItemState</var> is a class used to represent state and data
for a check box item displayed in <var>TCustomCheckCombo</var> and
<var>TCheckComboBox</var>. Properties are provided to store the check box
state, the enabled setting for the control, and arbitrary data.
</p>
<p>
TCheckComboItemState instances are created when the check boxes are added or
assigned in TCustomCheckCombo.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.AddItem"/>
<link id="TCustomCheckCombo.AssignItems"/>
<link id="TCustomCheckCombo.Objects"/>
<link id="TCheckComboBox"/>
</seealso>
</element>
<element name="TCheckComboItemState.State">
<short>Represents the current state for a check box.</short>
<descr>
<p>
<var>State</var> is a <var>TCheckBoxState</var> property with the enumeration
value which represents the current checked, unchecked, or grayed state for
the check box.
</p>
</descr>
<seealso>
<link id="TCheckBoxState"/>
<link id="TCustomCheckCombo.Checked"/>
<link id="TCustomCheckCombo.State"/>
<link id="TCustomCheckCombo.Objects"/>
</seealso>
</element>
<element name="TCheckComboItemState.Enabled">
<short>Indicates the current enabled state for a check box.</short>
<descr>
<p>
<var>Enabled</var> is a <var>Boolean</var> property which indicates the
current enabled state for a check box control in <var>TCustomCheckCombo</var>.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.ItemEnabled"/>
<link id="TCustomCheckCombo.State"/>
<link id="TCustomCheckCombo.Objects"/>
</seealso>
</element>
<element name="TCheckComboItemState.Data">
<short>Contains arbitrary data associated with a check box item.</short>
<descr/>
<seealso>
<link id="TCustomCheckCombo.Objects"/>
</seealso>
</element>
<element name="TCustomCheckCombo">
<short>
Base class for a combo-box which displays check boxes for Items in the
control.
</short>
<descr>
<p>
<var>TCustomCheckCombo</var> is a <var>TCustomComboBox</var> descendant which
defines the base class for a combo-box which displays check boxes for the
Items in the control. It behaves like an ordinary combo-box with a drop-down
using a customizable number of visible rows.
</p>
<p>
TCustomCheckCombo provides additional properties, methods, and events which
allow the checked state for values in Items to be specified as either a
<var>Boolean</var> or a <var>TCheckBoxState</var> value. An
<var>OnItemChange</var> event handler is added to perform custom actions when
the <var>Checked</var> value for an item is changed. Convenience methods are
included which allow check boxes to be added or deleted, or toggle their
value.
</p>
<p>
TCustomCheckCombo is the ancestor for the <var>TCheckComboBox</var> control.
</p>
</descr>
<seealso>
<link id="TCheckComboBox"/>
<link id="#lcl.stdctrls.TCustomComboBox">TCustomComboBox</link>
</seealso>
</element>
<element name="TCustomCheckCombo.FAllowGrayed"/>
<element name="TCustomCheckCombo.FOnItemChange"/>
<element name="TCustomCheckCombo.AsyncCheckItemStates">
<short>
Checks for valid state information in the Items for the control.
</short>
<descr>
<p>
<var>AsyncCheckItemStates</var> calls the <var>CheckItemStates</var> method
to ensure that <var>TCheckComboItemState</var> instances have been created
for the <var>Items</var> in the control. Used in the implementation of the
<var>QueueCheckItemStates</var> method. Queued as an asynchronous call using
the <var>Application.QueueAsyncCall</var> method.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.State"/>
<link id="TCheckComboItemState"/>
<link id="#lcl.stdctrls.TCustomComboBox.Items">TCustomComboBox.Items</link>
<link id="#lcl.forms.TApplication.QueueAsyncCall">TApplication.QueueAsyncCall</link>
<link id="#lcl.forms.Application">Application</link>
</seealso>
</element>
<element name="TCustomCheckCombo.AsyncCheckItemStates.Data">
<short>
Pointer to an Integer value examined in the method; not used in the current
implementation.
</short>
</element>
<element name="TCustomCheckCombo.GetChecked">
<short>Gets the value for the indexed Checked property.</short>
<descr/>
<seealso>
<Link id="TCustomCheckCombo.Checked"/>
</seealso>
</element>
<element name="TCustomCheckCombo.GetChecked.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomCheckCombo.GetChecked.AIndex">
<short>Ordinal position for the item examined in the method.</short>
</element>
<element name="TCustomCheckCombo.GetCount">
<short>Gets the value for the Count property.</short>
<descr/>
<seealso>
<link id="TCustomCheckCombo.Count"/>
</seealso>
</element>
<element name="TCustomCheckCombo.GetCount.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomCheckCombo.GetItemEnabled">
<short>Gets the value for the indexed ItemEnabled property.</short>
<descr/>
<seealso>
<link id="TCustomCheckCombo.ItemEnabled"/>
</seealso>
</element>
<element name="TCustomCheckCombo.GetItemEnabled.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomCheckCombo.GetItemEnabled.AIndex">
<short>Ordinal position for the item examined in the method.</short>
</element>
<element name="TCustomCheckCombo.GetObject">
<short>Gets the value for the indexed Object property.</short>
<descr/>
<seealso>
<link id="TCustomCheckCombo.Object"/>
</seealso>
</element>
<element name="TCustomCheckCombo.GetObject.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomCheckCombo.GetObject.AIndex">
<short>Ordinal position for the item examined in the method.</short>
</element>
<element name="TCustomCheckCombo.GetState">
<short>Gets the value for the indexed State property.</short>
<descr/>
<seealso>
<link id="TCustomCheckCombo.State"/>
</seealso>
</element>
<element name="TCustomCheckCombo.GetState.Result">
<short>Value for the property.</short>
</element>
<element name="TCustomCheckCombo.GetState.AIndex">
<short>Ordinal position for the item examined in the method.</short>
</element>
<element name="TCustomCheckCombo.SetChecked">
<short>Sets the value for the indexed Checked property.</short>
<descr/>
<seealso>
<link id="TCustomCheckCombo.Checked"/>
</seealso>
</element>
<element name="TCustomCheckCombo.SetChecked.AIndex">
<short>Ordinal position for the item updated in the method.</short>
</element>
<element name="TCustomCheckCombo.SetChecked.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomCheckCombo.SetItemEnabled">
<short>Sets the value for the indexed ItemEnabled property.</short>
<descr/>
<seealso>
<link id="TCustomCheckCombo.ItemEnabled"/>
</seealso>
</element>
<element name="TCustomCheckCombo.SetItemEnabled.AIndex">
<short>Ordinal position for the item updated in the method.</short>
</element>
<element name="TCustomCheckCombo.SetItemEnabled.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomCheckCombo.SetObject">
<short>Sets the value for the indexed Object property.</short>
<descr/>
<seealso>
<link id="TCustomCheckCombo.Object"/>
</seealso>
</element>
<element name="TCustomCheckCombo.SetObject.AIndex">
<short>Ordinal position for the item updated in the method.</short>
</element>
<element name="TCustomCheckCombo.SetObject.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomCheckCombo.SetState">
<short>Sets the value for the indexed State property.</short>
<descr/>
<seealso>
<link id="TCustomCheckCombo.State"/>
</seealso>
</element>
<element name="TCustomCheckCombo.SetState.AIndex">
<short>Ordinal position for the item updated in the method.</short>
</element>
<element name="TCustomCheckCombo.SetState.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomCheckCombo.FCheckHighlight">
<short>Internal member used to to track the highlighting state.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.FCheckSize">
<short>
Internal member used to track size adjusts needed for them services.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.FDropped">
<short>
Internal members used to track the state for the drop down in the control.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.FHilightedIndex">
<short>
Internal member used to track the item highlighted in the control.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.FHiLiteLeft">
<short>
Internal member used to track the left coordinate for the highlight.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.FHiLiteRight">
<short>
Internal member used to track the right coordinate for the highlight.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.FNeedMeasure">
<short>
Internal member used to track whether the text height has been calculated for
items in the control.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.FRejectDropDown">
<short>
Internal member used to track whether drop down requests should be rejected;
i. e. the drop down is already visible.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.FRejectToggleOnSelect">
<short>
Internal member used to track whether the current check box selection can
toggle its value; i. e. whether the drop down is visible.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.FRightToLeft">
<short>Internal member used to track the BiDi status for the control.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.FTextHeight">
<short>
Internal member used to track the text height for check boxes in the control.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.CMBiDiModeChanged">
<short>
Performs actions needed when the BiDiMode setting is changed for the control.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.CMBiDiModeChanged.Message">
<short>Message handled in the method.</short>
</element>
<element name="TCustomCheckCombo.ClearItemStates">
<short>
Removes all state classes allocated for the check boxes in the control.
</short>
<descr>
<p>
<var>ClearItemStates</var> is a procedure used to remove all state
information classes allocated for the check boxes in the control.
ClearItemStates iterates over the <var>Items</var> defined in the control,
and frees the <var>TCheckBoxState</var> class instances stored in its
<var>Objects</var> property.
</p>
<p>
ClearItemStates is used in the implementation of the <var>SetItems</var>,
<var>AssignItems</var>, and <var>Clear</var> methods.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.Items">TCustomComboBox.Items</link>
<link id="TCustomCheckCombo.AssignItems"/>
<link id="TCustomCheckCombo.Clear"/>
</seealso>
</element>
<element name="TCustomCheckCombo.CloseUp">
<short>Closes the drop down displayed for the control.</short>
<descr>
<p>
<var>CloseUp</var> is overridden in <var>TCustomCheckCombo</var> to use the
internal member which tracks the visibility for the drop down portion of the
control. When it is already visible, the flag value is toggled and the
<var>Update</var> method is called to refresh the control. Otherwise, the
inherited method is called to perform actions defined in the ancestor class.
</p>
<p>
Use the DropDown method to make the drop down portion of control visible.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.DropDown">TCustomComboBox.DropDown</link>
<link id="#lcl.stdctrls.TCustomComboBox.CloseUp">TCustomComboBox.CloseUp</link>
<link id="#lcl.controls.TWinControl.Update">TWinControl.Update</link>
</seealso>
</element>
<element name="TCustomCheckCombo.DrawItem">
<short>Draws a check box item defined in the combo-box control.</short>
<descr>
<p>
<var>DrawItem</var> is an overridden procedure used to draw a check box
defined in the Items for the control.
</p>
<p>
<var>Index</var> contains the ordinal position for the
<var>TComboExItem</var> instance in <var>ItemsEx</var> that is drawn in the
method.
</p>
<p>
<var>ARect</var> is the rectangle with the coordinates for the check box item
drawn in the method. The values in ARect are set in the calling procedure
(LMDrawListItem in TCustomComboBox).
</p>
<p>
<var>State</var> contains the owner draw state used to render the check box
item, and determines the window and font colors for the check box.
</p>
<p>
DrawItem uses <var>ThemeServices</var> to get theme element details applied
to check box items in the combo-box. DrawItem ensures that a valid text
height is available for the control <var>Canvas</var>, and is used to draw
the text for the check box.
</p>
<p>
DrawItem configures the Canvas to use the brush style and font color needed
for the value in State. Text drawing flags are derived for the item, and the
text is rendered by calling the <var>DrawText</var> method.
</p>
<remark>
DrawItem does <b>NOT</b> call the inherited method in
<var>TCustomComboBox</var> or trigger its <var>OnDrawItem</var> event
handler. The item is rendered entirely in this method.
</remark>
</descr>
<seealso/>
</element>
<element name="TCustomCheckCombo.DrawItem.Index">
<short>Ordinal position for the check box drawn in the method.</short>
</element>
<element name="TCustomCheckCombo.DrawItem.ARect">
<short>
Rectangle with the coordinates for the check box drawn in the method.
</short>
</element>
<element name="TCustomCheckCombo.DrawItem.State">
<short>Owner draw state for the check box.</short>
</element>
<element name="TCustomCheckCombo.DropDown">
<short>Displays the drop down for the combo-box.</short>
<descr>
<p>
<var>DropDown</var> is an overridden method used to display the drop down for
the combo-box if it is not already visible. DropDown calls the inherited
method to trigger the <var>OnDropDown</var> method (when assigned). When the
drop down is already visible, the value in an enabled at <var>ItemIndex</var>
is <var>Toggled</var>.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.ItemEnabled"/>
<link id="TCustomCheckCombo.Toggle"/>
<link id="#lcl.stdctrls.TCustomComboBox.ItemIndex">TCustomComboBox.ItemIndex</link>
<link id="#lcl.stdctrls.TCustomComboBox.DropDown">TCustomComboBox.DropDown</link>
<link id="#lcl.stdctrls.TCustomComboBox.OnDropDown">TCustomComboBox.OnDropDown</link>
</seealso>
</element>
<element name="TCustomCheckCombo.FontChanged">
<short>
Performs actions needed when the font for the control has been changed.
</short>
<descr>
<p>
<var>FontChanged</var> is an overridden method in
<var>TCustomCheckCombo</var>. It sets the internal <var>FNeedMeasure</var>
flag to recalculate the text height for check box <var>Items</var> displayed
in the control, and calls the inherited method.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.FNeedMeasure"/>
<link id="#lcl.controls.TWinControl.FontChanged">TWinControl.FontChanged</link>
</seealso>
</element>
<element name="TCustomCheckCombo.FontChanged.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TCustomCheckCombo.InitializeWnd">
<short>Initializes the window handle for the control.</short>
<descr>
<p>
<var>InitializeWnd</var> is an overridden method used to Initializes the
window handle for the control. InitializeWnd ensures that the item states for
check boxes defined in <var>Items</var> is initialized by calling the
<var>InitItemStates</var> method. InitializeWnd call the inherited method,
and sets the internal <var>FRightToLeft</var> flag used to track the BiDi
mode for the control.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.InitializeWnd">TCustomComboBox.InitializeWnd</link>
<link id="#lcl.stdctrls.TCustomComboBox.Items">TCustomComboBox.Items</link>
<link id="TCustomCheckCombo.State"/>
<link id="TCustomCheckCombo.InitItemStates"/>
<link id="TCustomCheckCombo.CheckItemStates"/>
</seealso>
</element>
<element name="TCustomCheckCombo.InitItemStates">
<short>
Initializes check box state information for items in the control.
</short>
<descr>
<p>
<var>InitItemStates</var> is used to initialize state information for the
Items defined in the check box control. InitItemStates iterates over the
values in <var>Items</var>, and creates a <var>TCheckComboItemState</var>
instance with the enabled, checked state, and state data for each of the
items.
</p>
<p>
The TCheckComboItemState instance is stored in the indexed <var>Objects</var>
property. Existing values in Objects are not modified. An
<var>Exception</var> is raised if an existing value not derived from
TCheckComboItemState is found in Objects.
</p>
<p>
InitItemStates is called from the <var>AssignItems</var>,
<var>InitializeWnd</var>, and <var>Loaded</var> methods. It is also called
when a new values is assigned to the <var>Items</var> property.
</p>
<p>
<var>ClearItemStates</var> is used to remove TCheckComboItemState instances
for Items in the control.
</p>
</descr>
<errors>
Raises an Exception with the message <b>'Item # is not a
TCheckComboItemState'</b> when Objects contains a value not derived from
TCheckComboItemState.
</errors>
<seealso/>
</element>
<element name="TCustomCheckCombo.CheckItemStates">
<short>
Ensures that check box item state classes have been allocated for items in
the control.
</short>
<descr>
<p>
<var>CheckItemStates</var> is a procedure used to ensure that
<var>TCheckComboItemState</var> class instances exist for the
<var>Items</var> defined in the control. CheckItemStates iterates over the
values in Items to determine if its Objects property contains a valid
TCheckComboItemState instance. An Exception is raised when the object is not
derived from TCheckComboItemState.
</p>
<p>
CheckItemStates is used in the implementation of the <var>InitializeWnd</var>
and <var>AsyncCheckItemStates</var> methods.
</p>
</descr>
<errors>
Raises an Exception when a check box in Items does not have a valid
TCheckComboItemState object.
</errors>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.Items">TCustomComboBox.Items</link>
<link id="TCustomCheckCombo.InitializeWnd"/>
<link id="TCheckComboItemState"/>
<link id="#rtl.classes.TStrings.Objects">TStrings.Objects</link>
</seealso>
</element>
<element name="TCustomCheckCombo.QueueCheckItemStates">
<short>
Queues an asynchronous call to AsyncCheckItemStates in the Application
singleton.
</short>
<descr>
<p>
<var>QueueCheckItemStates</var> is a procedure used to queue an asynchronous
call to the <var>AsyncCheckItemStates</var> method in the global Application
singleton. QueueCheckItemStates is called from the <var>DrawItem</var> method.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.DrawItem"/>
<link id="#lcl.forms.TApplication.QueueAsyncCall">TApplication.QueueAsyncCall</link>
<link id="#lcl.forms.Application">Application</link>
</seealso>
</element>
<element name="TCustomCheckCombo.KeyDown">
<short>Handles key down events for the control.</short>
<descr>
<p>
<var>KeyDown</var> is the overridden method used to handle key down events
for the control. KeyDown ensures that Return (<var>VK_RETURN</var>) and Space
(<var>VK_SPACE</var>) are applied to the control. Return causes the value for
an enabled item to be toggled when highlighted. Space also toggles the value
in an enabled check box, and makes the item selected before hiding the drop
down for the combo-box.
</p>
<p>
KeyDown calls the inherited method.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.KeyDown">TCustomComboBox.KeyDown</link>
</seealso>
</element>
<element name="TCustomCheckCombo.KeyDown.Key">
<short>Key examined in the method.</short>
</element>
<element name="TCustomCheckCombo.KeyDown.Shift">
<short>Keystroke modifier examined in the method.</short>
</element>
<element name="TCustomCheckCombo.Loaded">
<short>
Performs actions needed when the component has finished loading from the LCL
streaming mechanism.
</short>
<descr>
<p>
<var>Loaded</var> is an overridden method used to perform actions needed when
the component has finished loading from the LCL streaming mechanism. Loaded
calls the inherited method, and calls <var>InitItemStates</var> to allocate
<var>TCheckComboItemState</var> instances (when needed) for the check box
Items defined in the control.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.InitItemStates"/>
<link id="#lcl.stdctrls.TCustomComboBox.Items">TCustomComboBox.Items</link>
<link id="TCheckComboItemState"/>
</seealso>
</element>
<element name="TCustomCheckCombo.MouseLeave">
<short>
Deactivates tracking the highlighted check box when the mouse leaves the
control.
</short>
<descr/>
<seealso>
<link id="#lcl.controls.TControl.MouseLeave">TControl.MouseLeave</link>
</seealso>
</element>
<element name="TCustomCheckCombo.MouseMove">
<short>
Tracks changes to the mouse position for the highlighted check box in the
control.
</short>
<descr>
<p>
<var>MouseMove</var> is overridden in <var>TCustomCheckCombo</var> to track
the X and Y coordinates for the highlighted check box item, and to refresh
the control when needed. MouseMove calls the inherited method.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.MouseMove">TControl.MouseMove</link>
</seealso>
</element>
<element name="TCustomCheckCombo.MouseMove.Shift">
<short>Mouse event modifier examined in the method.</short>
</element>
<element name="TCustomCheckCombo.MouseMove.X">
<short>
Horizontal coordinate for the mouse pointer examined in the method.
</short>
</element>
<element name="TCustomCheckCombo.MouseMove.Y">
<short>
Vertical coordinate for the mouse pointer examined in the method.
</short>
</element>
<element name="TCustomCheckCombo.SetItemHeight">
<short>Sets the value for the ItemHeight property.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.SetItemHeight.AValue">
<short>New value for the property.</short>
</element>
<element name="TCustomCheckCombo.SetItems">
<short>Sets the value for the Items property.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomCheckCombo.SetItems.Value">
<short>New value for the property.</short>
</element>
<element name="TCustomCheckCombo.Select">
<short>Toggles the value for the current item selected in the control.</short>
<descr>
<p>
<var>Select</var> is an overridden procedure used to toggle the value for the
current item in the combo-box. Select calls the inherited method.
</p>
<p>
For the Windows platform, the value for the selection cannot be toggled if
the combo-box is already in a dropped-down state (when the
<var>DropDown</var> method has been called).
</p>
<p>
Select calls the <var>Toggle</var> method using the value in
<var>ItemIndex</var> as the affected check box item. The internal flag used
to track drop down state is reset prior to exiting from the method. Toggle is
not called when ItemIndex contains a negative value, or when the item at the
position in ItemIndex is not enabled.
</p>
<p>
Alternatively, you can use the <var>Checked</var> property to assign an
explicit <var>Boolean</var> value for the check box in ItemIndex.
</p>
<p>
Select is called from the <var>KeyDown</var> event handler to apply a
<b>Space</b> key which occurs in the control.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.Toggle"/>
<link id="TCustomCheckCombo.KeyDown"/>
<link id="#lcl.stdctrls.TCustomComboBox.DropDown">TCustomComboBox.DropDown</link>
<link id="#lcl.stdctrls.TCustomComboBox.Select">TCustomComboBox.Select</link>
<link id="#lcl.stdctrls.TCustomComboBox.ItemIndex">TCustomComboBox.ItemIndex</link>
</seealso>
</element>
<element name="TCustomCheckCombo.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance, and
calls the inherited method. Create ensures that the <var>Items</var> property
is configured to ignore duplicate values. Create sets the default values for
the following properties and members:
</p>
<dl>
<dt>Style</dt>
<dd>Set to the value csOwnerDrawFixed</dd>
<dt>FNeedMeasure</dt>
<dd>Set to <b>True</b> to force item height to be recalculated</dd>
<dt>FRejectToggleOnSelect</dt>
<dd>Set to <b>True</b> until the control is dropped down</dd>
</dl>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.Items">TCustomComboBox.Items</link>
<link id="#rtl.classes.TStringList.Duplicates">TStringList.Duplicates</link>
</seealso>
</element>
<element name="TCustomCheckCombo.Create.AOwner">
<short>Owner of the object instance.</short>
</element>
<element name="TCustomCheckCombo.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
Destroy calls <var>ClearItemStates</var> to free the
<var>TCheckComboItemState</var> instances allocated for <var>Items</var> in
the control. Destroy calls the inherited destructor.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.ClearItemStates"/>
<link id="#lcl.stdctrls.TCustomComboBox.Items">TCustomComboBox.Items</link>
<link id="TCheckComboItemState"/>
</seealso>
</element>
<element name="TCustomCheckCombo.AddItem" link ="#Lcl.StdCtrls.TCustomComboBox.AddItem">
<short>
Adds a check box with the specified settings to the Items property.
</short>
<descr>
<p>
<var>AddItem</var> is a reintroduced procedure used to add a check box with
the specified settings to the <var>Items</var> property. AddItem creates a
TCheckComboItemState instance which stores the values specified in the
<var>AItem</var>, <var>AState</var>, and <var>AEnabled</var> parameters.
AddItem calls the inherited method to allocate a new item for the control
with the associated item state object.
</p>
</descr>
<seealso>
</seealso>
</element>
<element name="TCustomCheckCombo.AddItem.AItem">
<short>Caption for the new check box item.</short>
</element>
<element name="TCustomCheckCombo.AddItem.AState">
<short>Check box State for the new item.</short>
</element>
<element name="TCustomCheckCombo.AddItem.AEnabled">
<short>Enabled state for the new check box item.</short>
</element>
<element name="TCustomCheckCombo.AssignItems">
<short>
Assigns the content in the specified TStringList to the Items in the control.
</short>
<descr>
<p>
<var>AssignItems</var> calls <var>ClearItemStates</var> to reset the state
flags for the existing Items. The <var>Assign</var> method in
<var>Items</var> is called to store the values in <var>AItems</var>. The
<var>InitItemStates</var> method is called to initialize the Objects
properties in Items with <var>TCheckComboItemState</var> instances for each
of the check boxes.
</p>
<remark>
InitItemStates can raise an exception if any of the Objects in AItems
contains a class not derived from TCheckComboItemState.
</remark>
</descr>
<seealso>
<link id="TCustomCheckCombo.ClearItemStates"/>
<link id="TCustomCheckCombo.InitItemStates"/>
<link id="TCheckComboItemState"/>
<link id="#rtl.classes.TStrings.Assign">TStrings.Assign</link>
<link id="#rtl.classes.TStrings.Objects">TStrings.Objects</link>
</seealso>
</element>
<element name="TCustomCheckCombo.AssignItems.AItems">
<short>TStringList with values stored in the method.</short>
</element>
<element name="TCustomCheckCombo.Clear">
<short>Removes the values stored in the Items property.</short>
<descr>
<p>
<var>Clear</var> is an overridden procedure in <var>TCustomCheckCombo</var>
used to remove check box item state information. Clear calls
<var>ClearItemStates</var> to free <var>TCheckComboItemState</var> classes
instances stored in the <var>Objects</var> property in <var>Items</var>.
Clear calls the inherited method prior to exit to remove its contents.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.ClearItemStates"/>
<link id="#rtl.classes.TStringList.Clear">TStringList.Clear</link>
<link id="#rtl.classes.TStrings.Objects">TStrings.Objects</link>
<link id="TCheckComboItemState"/>
</seealso>
</element>
<element name="TCustomCheckCombo.DeleteItem">
<short>Deletes the check box at the specified position.</short>
<descr>
<p>
Ensures that an object instance stored in <var>Objects</var> is freed before
removing the item.
Calls the <var>Delete</var> method to remove the item at the position in
<var>AIndex</var>.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.Objects"/>
<link id="#rtl.classes.TStrings.Delete">TStrings.Delete</link>
</seealso>
</element>
<element name="TCustomCheckCombo.DeleteItem.AIndex">
<short>Ordinal position for the item removed in the method.</short>
</element>
<element name="TCustomCheckCombo.CheckAll">
<short>
Sets the state for all check boxes defined in the control meeting the
specified criteria.
</short>
<descr>
<p>
<var>CheckAll</var> is a procedure used to set the checked state for all
check boxes defined in the <var>Items</var> for the control.
<var>AState</var> contains the state applied to the check boxes defined in
the control.
</p>
<p>
<var>AAllowGrayed</var> indicates whether check boxes with an indeterminate
("grayed") state can be updated in the method. <var>AAllowDisabled</var>
indicates whether check boxes which are not enabled can be updated in the
method.
</p>
<p>
CheckAll iterates over the <var>Items</var> defined for the control, and when
allowed using the specified arguments, sets the value in the <var>State</var>
property to the value in <var>AState</var>.
</p>
<p>
CheckAll is a convenience method; the same result can be achieved by setting
the value in the <var>State</var> or <var>Checked</var> properties for an
individual check box at a specified position.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.Checked"/>
<link id="TCustomCheckCombo.State"/>
</seealso>
</element>
<element name="TCustomCheckCombo.CheckAll.AState">
<short>Checked state for the matching check boxes.</short>
</element>
<element name="TCustomCheckCombo.CheckAll.AAllowGrayed">
<short>Indicates if grayed check boxes can be updated in the method.</short>
</element>
<element name="TCustomCheckCombo.CheckAll.AAllowDisabled">
<short>Indicates if disabled check boxes can be updated in the method.</short>
</element>
<element name="TCustomCheckCombo.Toggle">
<short>
Toggles the checked state for the check box at the specified position.
</short>
<descr>
<p>
<var>Toggle</var> is a method used to toggle the checked state for the
combo-box item at the position specified in <var>AIndex</var>. Toggle sets
the value in the indexed <var>State</var> property to the next
<var>TCheckBoxState</var> value for the entry in Items.
</p>
<p>
The value in the <var>AllowGrayed</var> property is used to determine the
next checked stated. When AllowGrayed is <b>False</b>, the value progresses
in the order <var>cbUnchecked</var> to <var>cbChecked</var> and repeats. When
AllowGrayed is <b>True</b>, the order is <var>cbGrayed</var>, cbUnchecked,
cbChecked and repeats.
</p>
<p>
Toggle is called from the <var>KeyDown</var> and <var>DropDown</var> methods
when the <b>Return</b> or <b>Space</b> key is pressed on the item in
<var>ItemIndex</var> and the item is <var>Enabled</var>. It is also called
from the <var>Select</var> method.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomCheckCombo.Toggle.AIndex">
<short>Ordinal position for the check box affected in the method.</short>
</element>
<element name="TCustomCheckCombo.AllowGrayed">
<short>
Indicates if check boxes can be drawn in the indeterminate state.
</short>
<descr>
<p>
<var>AllowGrayed</var> is a <var>Boolean</var> property which indicates if
check boxes can be displayed in the "grayed" or indeterminate state. The
default value for the property is <b>False</b>.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomCheckCombo.Count">
<short>Reflects the number of check boxes defined for the control.</short>
<descr>
<p>
<var>Count</var> is a read-only <var>Integer</var> property which reflects
the number of check boxes defined for the control. The value for the property
is retrieved from the corresponding property in <var>Items</var>.
</p>
<p>
Use the <var>AddItem</var> method to add a new check box to the control. Use
the <var>DeleteItem</var> method to remove a specific check box defined in
<var>Items</var>. Use <var>Clear</var> to remove all check boxes defined for
the control.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TStrings.Count">TStrings.Count</link>
<link id="#lcl.stdctrls.TCustomComboBox.Items">TCustomComboBox.Items</link>
<link id="TCustomCheckCombo.AddItem"/>
<link id="TCustomCheckCombo.DeleteItem"/>
<link id="TCustomCheckCombo.Clear"/>
</seealso>
</element>
<element name="TCustomCheckCombo.Checked">
<short>
Provides indexed access to the Boolean value for a check box defined in Items.
</short>
<descr>
<p>
<var>Checked</var> is an indexed <var>Boolean</var> property which provides
access to the checked state for a check box item defined in the control.
<var>AIndex</var> specifies the ordinal position in Items for the check box.
Checked uses the value from the <var>TCheckComboItemState</var> object stored
in the <var>Items</var> property. <b>True</b> indicates that
TCheckComboItemState.Checked contains the value <var>cbChecked</var>.
<b>False</b> indicates that it contains the value <var>cbUnchecked</var>.
</p>
<p>
Changing the value for the property causes the <var>OnItemChange</var> event
handler to be signalled, and the <var>Invalidate</var> method is called when
<var>AIndex</var> is also the selected <var>ItemIndex</var> for the control.
</p>
</descr>
<seealso>
</seealso>
</element>
<element name="TCustomCheckCombo.Checked.AIndex">
<short>Ordinal position for the requested check box value.</short>
</element>
<element name="TCustomCheckCombo.ItemEnabled">
<short>
Provides indexed access to the Boolean enabled value for a check box defined
in Items.
</short>
<descr/>
<seealso>
<link id="TCustomCheckCombo.State"/>
<link id="TCustomCheckCombo.Checked"/>
<link id="TCustomCheckCombo.Objects"/>
<link id="TCheckComboItemState.Enabled"/>
<link id="TCheckComboItemState.State"/>
</seealso>
</element>
<element name="TCustomCheckCombo.ItemEnabled.AIndex">
<short>Ordinal position for the requested check box enabled value.</short>
</element>
<element name="TCustomCheckCombo.Objects">
<short>
Provides indexed access to the Data for a check box defined in Items.
</short>
<descr>
<p>
<var>Objects</var> is an indexed <var>TObject</var> property which provides
access to the Data for a check box defined in <var>Items</var>. AIndex
specifies the ordinal position in Items for the check box. Objects return the
value from the TCheckComboItemState object stored in the Items property. The
object instance is the property value that represents the content stored in
the TCheckComboItemState.Data property.
</p>
</descr>
<seealso>
<link id="TCheckComboItemState.Data"/>
</seealso>
</element>
<element name="TCustomCheckCombo.Objects.AIndex">
<short>Ordinal position for the requested check box item state.</short>
</element>
<element name="TCustomCheckCombo.State">
<short>
Provides indexed access to the checked State for a check box defined in Items.
</short>
<descr>
<p>
<var>State</var> is an indexed <var>TCheckBoxState</var> property which
provides access to the checked State for a check box defined in Items.
<var>AIndex</var> specifies the ordinal position in Items for the check box.
State returns the <var>TCheckBoxState</var> value in
<var>TCheckComboItemState.State</var> for the associated object instance.
</p>
<p>
Changing the value for the property causes the <var>OnItemChange</var> event
handler to be signalled. The <var>Invalidate</var> method is also called when
<var>AIndex</var> is the current value in the <var>ItemIndex</var> property.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.ItemEnabled"/>
<link id="TCustomCheckCombo.Checked"/>
<link id="TCustomCheckCombo.Objects"/>
<link id="TCheckComboItemState.Enabled"/>
<link id="TCheckComboItemState.State"/>
</seealso>
</element>
<element name="TCustomCheckCombo.State.AIndex">
<short>Ordinal position for the check box state requested.</short>
</element>
<element name="TCustomCheckCombo.OnItemChange">
<short>
Event handler signalled when the state for a check box in the control is
changed.
</short>
<descr>
<p>
<var>OnItemChange</var> is a <var>TCheckItemChange</var> property with the
event handler signalled when a value in the <var>Checked</var> or
<var>State</var> properties is changed. Arguments passed to the event handler
identify the object for the event notification, and the ordinal position in
<var>Items</var> for the modified check box.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo.Checked"/>
<link id="TCustomCheckCombo.State"/>
<link id="#lcl.stdctrls.TCustomComboBox.Items">TCustomComboBox.Items</link>
</seealso>
</element>
<element name="TCheckComboBox">
<short>
Combo-box control which displays check boxes for the items in the control.
</short>
<descr>
<p>
<var>TCheckComboBox</var> is a <var>TCustomCheckCombo</var> descendant which
implements a combo-box which displays check boxes for the Items in the
control. It behaves like an ordinary combo-box with a drop-down using a
customizable number of visible rows.
</p>
<p>
TCheckComboBox provides additional properties, methods, and events which
allow the checked state for values in Items to be specified as either a
<var>Boolean</var> or a <var>TCheckBoxState</var> value. An
<var>OnItemChange</var> event handler is added to perform custom actions when
the <var>Checked</var> value for an item is changed. Convenience methods are
included which allow check boxes to be added or deleted, or toggle their
value.
</p>
<p>
TCheckComboBox sets the visibility for property defined in ancestor classes.
</p>
</descr>
<seealso>
<link id="TCustomCheckCombo"/>
</seealso>
</element>
<element name="TCheckComboBox.Align" link="#lcl.controls.TControl.Align"/>
<element name="TCheckComboBox.AllowGrayed" link="#lcl.comboex.TCustomCheckCombo.AllowGrayed"/>
<element name="TCheckComboBox.Anchors" link="#lcl.controls.TControl.Anchors"/>
<element name="TCheckComboBox.ArrowKeysTraverseList" link="#lcl.stdctrls.TCustomComboBox.ArrowKeysTraverseList"/>
<element name="TCheckComboBox.AutoDropDown" link="#lcl.stdctrls.TCustomComboBox.AutoDropDown"/>
<element name="TCheckComboBox.AutoSize" link="#lcl.controls.TControl.AutoSize"/>
<element name="TCheckComboBox.BidiMode" link="#lcl.controls.TControl.BidiMode"/>
<element name="TCheckComboBox.BorderSpacing" link="#lcl.controls.TControl.BorderSpacing"/>
<element name="TCheckComboBox.BorderStyle" link="#lcl.controls.TWinControl.BorderStyle"/>
<element name="TCheckComboBox.Color" link="#lcl.controls.TControl.Color"/>
<element name="TCheckComboBox.Constraints" link="#lcl.controls.TControl.Constraints"/>
<element name="TCheckComboBox.Count" link="#lcl.comboex.TCustomCheckCombo.Count"/>
<element name="TCheckComboBox.DragCursor" link="#lcl.controls.TControl.DragCursor"/>
<element name="TCheckComboBox.DragKind" link="#lcl.controls.TControl.DragKind"/>
<element name="TCheckComboBox.DragMode" link="#lcl.controls.TControl.DragMode"/>
<element name="TCheckComboBox.DropDownCount" link="#lcl.stdctrls.TCustomComboBox.DropDownCount"/>
<element name="TCheckComboBox.Enabled" link="#lcl.controls.TControl.Enabled"/>
<element name="TCheckComboBox.Font" link="#lcl.controls.TControl.Font"/>
<element name="TCheckComboBox.ItemHeight" link="#lcl.stdctrls.TCustomComboBox.ItemHeight"/>
<element name="TCheckComboBox.ItemIndex" link="#lcl.stdctrls.TCustomComboBox.ItemIndex"/>
<element name="TCheckComboBox.Items" link="#lcl.stdctrls.TCustomComboBox.Items"/>
<element name="TCheckComboBox.ItemWidth" link="#lcl.stdctrls.TCustomComboBox.ItemWidth"/>
<element name="TCheckComboBox.MaxLength" link="#lcl.stdctrls.TCustomComboBox.MaxLength"/>
<element name="TCheckComboBox.OnChange" link="#lcl.stdctrls.TCustomComboBox.OnChange"/>
<element name="TCheckComboBox.OnChangeBounds" link="#lcl.controls.TControl.OnChangeBounds"/>
<element name="TCheckComboBox.OnClick" link="#lcl.controls.TControl.OnClick"/>
<element name="TCheckComboBox.OnCloseUp" link="#lcl.stdctrls.TCustomComboBox.OnCloseUp"/>
<element name="TCheckComboBox.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element name="TCheckComboBox.OnDblClick" link="#lcl.controls.TControl.OnDblClick"/>
<element name="TCheckComboBox.OnDragDrop" link="#lcl.controls.TControl.OnDragDrop"/>
<element name="TCheckComboBox.OnDragOver" link="#lcl.controls.TControl.OnDragOver"/>
<element name="TCheckComboBox.OnEndDrag" link="#lcl.controls.TControl.OnEndDrag"/>
<element name="TCheckComboBox.OnDropDown" link="#lcl.stdctrls.TCustomComboBox.OnDropDown"/>
<element name="TCheckComboBox.OnEditingDone" link="#lcl.controls.TControl.OnEditingDone"/>
<element name="TCheckComboBox.OnEnter" link="#lcl.controls.TWinControl.OnExit"/>
<element name="TCheckComboBox.OnExit" link="#lcl.controls.TWinControl.OnExit"/>
<element name="TCheckComboBox.OnGetItems" link="#lcl.stdctrls.TCustomComboBox.OnGetItems"/>
<element name="TCheckComboBox.OnItemChange" link="#lcl.comboex.TCustomCheckCombo.OnItemChange"/>
<element name="TCheckComboBox.OnKeyDown" link="#lcl.controls.TWinControl.OnKeyDown"/>
<element name="TCheckComboBox.OnKeyPress" link="#lcl.controls.TWinControl.OnKeyPress"/>
<element name="TCheckComboBox.OnKeyUp" link="#lcl.controls.TWinControl.OnKeyUp"/>
<element name="TCheckComboBox.OnMouseDown" link="#lcl.controls.TControl.OnMouseDown"/>
<element name="TCheckComboBox.OnMouseEnter" link="#lcl.controls.TControl.OnMouseEnter"/>
<element name="TCheckComboBox.OnMouseLeave" link="#lcl.controls.TControl.OnMouseLeave"/>
<element name="TCheckComboBox.OnMouseMove" link="#lcl.controls.TControl.OnMouseMove"/>
<element name="TCheckComboBox.OnMouseUp" link="#lcl.controls.TControl.OnMouseUp"/>
<element name="TCheckComboBox.OnMouseWheel" link="#lcl.controls.TControl.OnMouseWheel"/>
<element name="TCheckComboBox.OnMouseWheelDown" link="#lcl.controls.TControl.OnMouseWheelDown"/>
<element name="TCheckComboBox.OnMouseWheelUp" link="#lcl.controls.TControl.OnMouseWheelUp"/>
<element name="TCheckComboBox.OnSelect" link="#lcl.stdctrls.TCustomComboBox.OnSelect"/>
<element name="TCheckComboBox.OnStartDrag" link="#lcl.controls.TControl.OnStartDrag"/>
<element name="TCheckComboBox.OnUTF8KeyPress" link="#lcl.controls.TWinControl.OnUTF8KeyPress"/>
<element name="TCheckComboBox.ParentBidiMode" link="#lcl.controls.TControl.ParentBidiMode"/>
<element name="TCheckComboBox.ParentColor" link="#lcl.controls.TControl.ParentColor"/>
<element name="TCheckComboBox.ParentFont" link="#lcl.controls.TControl.ParentFont"/>
<element name="TCheckComboBox.ParentShowHint" link="#lcl.controls.TControl.ParentShowHint"/>
<element name="TCheckComboBox.PopupMenu" link="#lcl.controls.TControl.PopupMenu"/>
<element name="TCheckComboBox.ShowHint" link="#lcl.controls.TControl.ShowHint"/>
<element name="TCheckComboBox.Sorted" link="#lcl.stdctrls.TCustomComboBox.Sorted"/>
<element name="TCheckComboBox.TabOrder" link="#lcl.controls.TWinControl.TabOrder"/>
<element name="TCheckComboBox.TabStop" link="#lcl.controls.TWinControl.TabStop"/>
<element name="TCheckComboBox.Text" link="#lcl.stdctrls.TCustomComboBox.Text"/>
<element name="TCheckComboBox.TextHint" link="#lcl.stdctrls.TCustomComboBox.TextHint"/>
<element name="TCheckComboBox.Visible" link="#lcl.controls.TControl.Visible"/>
<element name="Register">
<short>Registers components for use in the Lazarus IDE.</short>
<descr>
<p>
<var>Register</var> is a procedure used to register components in the
<file>comboex.pas</file> unit for use in the Lazarus IDE. Register adds the
<var>TComboBoxEx</var> and <var>TCheckComboBox</var> components to the
<b>Misc</b> tab in the Lazarus IDE.
</p>
</descr>
<seealso/>
</element>
</module>
<!-- ComboEx -->
</package>
</fpdoc-descriptions>