lazarus/docs/xml/lcl/dbctrls.xml
dsiders 5bcbf905a8 Docs: LCL/various. Fixes spelling and grammar errors.
modified files:
  docs/xml/lcl/actnlist.xml
  docs/xml/lcl/buttons.xml
  docs/xml/lcl/colorbox.xml
  docs/xml/lcl/comboex.xml
  docs/xml/lcl/dbctrls.xml
  docs/xml/lcl/dbgrids.xml
  docs/xml/lcl/dialogs.xml
  docs/xml/lcl/editbtn.xml
  docs/xml/lcl/graphics.xml
  docs/xml/lcl/grids.xml
  docs/xml/lcl/groupededit.xml
  docs/xml/lcl/imglist.xml
  docs/xml/lcl/maskedit.xml
  docs/xml/lcl/printers.xml
  docs/xml/lcl/shellctrls.xml
  docs/xml/lcl/valedit.xml
2022-04-16 04:02:43 +01:00

8351 lines
440 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<fpdoc-descriptions>
<package name="lcl">
<!--
====================================================================
DbCtrls
====================================================================
-->
<module name="DbCtrls">
<short>
Data-aware controls commonly used for viewing and operating on information held in databases.
</short>
<descr>
<p>
<file>dbctrls.pp</file> contains data-aware controls used to access, view, edit, and navigate databases in the Lazarus Component Library (<b>LCL</b>).
</p>
<p>
The following components are added to the <b>Data Controls</b> tab in the Lazarus IDE Component Palette:
</p>
<ul>
<li>TDBNavigator</li>
<li>TDBText</li>
<li>TDBEdit</li>
<li>TDBMemo</li>
<li>TDBImage</li>
<li>TDBListBox</li>
<li>TDBLookupListBox</li>
<li>TDBComboBox</li>
<li>TDBLookupComboBox</li>
<li>TDBCheckBox</li>
<li>TDBRadioGroup</li>
<li>TDBCalendar</li>
<li>TDBGroupBox</li>
</ul>
<p>
DefaultFieldClasses (defined in the FPC FCL) are registered as database field classes in the IDE. The TIntegerField type (also defined in the FPC FCL) is registered as a database field class, and is aliased to the TLongintField type. For more information about database field classes, see
<link id="#fcl.db.DefaultFieldClasses">DefaultFieldClasses</link> and
<link id="#fcl.db.TIntegerField">TIntegerField</link>.
</p>
</descr>
<element name="Types"/>
<element name="Classes"/>
<element name="SysUtils"/>
<element name="DB"/>
<element name="Variants"/>
<element name="LCLStrConsts"/>
<element name="LMessages"/>
<element name="LCLType"/>
<element name="LCLIntf"/>
<element name="LResources"/>
<element name="Controls"/>
<element name="Graphics"/>
<element name="Dialogs"/>
<element name="StdCtrls"/>
<element name="Buttons"/>
<element name="MaskEdit"/>
<element name="ExtCtrls"/>
<element name="Calendar"/>
<element name="ImgList"/>
<element name="GraphType"/>
<element name="LazTracer"/>
<element name="LazUtilities"/>
<element name="TFieldDataLink">
<short>
Maintains an association between a control, an action, and a field in a linked dataset.
</short>
<descr>
<p>
<var>TFieldDataLink</var> is a <var>TDataLink</var> descendant which maintains an association between a control, an action, and a field in a linked dataset. TFieldDataLink extends the ancestor class to provide additional properties, methods, and events useful when working with a data-aware control linked to a field in a dataset.
</p>
<p>
The following key properties are added in the class:
</p>
<ul>
<li>Control</li>
<li>FieldName</li>
<li>Field</li>
</ul>
<p>
The following events are added in the class:
</p>
<ul>
<li>OnDataChange</li>
<li>OnUpdateData</li>
<li>OnEditingDone</li>
<li>OnActiveChange</li>
</ul>
<p>
TFieldDataLink is used in the implementation of several data-aware controls. In most cases, it is used in an internal member and not exposed in the interface for the control. It can, however, be used as a public or published property.
</p>
</descr>
<seealso>
<link id="TDBLookup"/>
<link id="TDBEdit"/>
<link id="TDBText"/>
<link id="TDBRadioGroup"/>
<link id="TDBCheckBox"/>
<link id="TDBMemo"/>
<link id="TDBGroupBox"/>
<link id="TDBImage"/>
<link id="TDBCalendar"/>
<link id="TCustomDBComboBox"/>
<link id="#fcl.db.TDataLink">TDataLink</link>
</seealso>
</element>
<element name="TFieldDataLink.FField"/>
<element name="TFieldDataLink.FFieldName"/>
<element name="TFieldDataLink.FControl"/>
<element name="TFieldDataLink.FOnDataChange"/>
<element name="TFieldDataLink.FOnEditingChange"/>
<element name="TFieldDataLink.FOnUpdateData"/>
<element name="TFieldDataLink.FOnActiveChange"/>
<element name="TFieldDataLink.FEditing"/>
<element name="TFieldDataLink.FEditingSourceSet"/>
<element name="TFieldDataLink.FEditingSource"/>
<element name="TFieldDataLink.IsModified"/>
<element name="TFieldDataLink.FieldCanModify">
<short>Indicates if the Field for the data link can be modified.</short>
</element>
<element name="TFieldDataLink.FieldCanModify.Result">
<short>True when Field is assigned and its CanModify method is also True.</short>
</element>
<element name="TFieldDataLink.IsKeyField">
<short>Indicates if the specified field is present in the KeyFields for the data link. </short>
</element>
<element name="TFieldDataLink.IsKeyField.Result">
<short>True when the name for the field is present in KeyFields.</short>
</element>
<element name="TFieldDataLink.IsKeyField.aField">
<short>Field definition to locate in the KeyFields for the data link.</short>
</element>
<element name="TFieldDataLink.GetCanModify">
<short>Gets the value for the CanModify property.</short>
<seealso>
<link id="TFieldDataLink.CanModify"/>
</seealso>
</element>
<element name="TFieldDataLink.GetCanModify.Result">
<short>Value for the property.</short>
</element>
<element name="TFieldDataLink.SetFieldName">
<short>Sets the value for the FieldName property.</short>
<descr/>
<seealso>
<link id="TFieldDataLink.FieldName"/>
</seealso>
</element>
<element name="TFieldDataLink.SetFieldName.Value">
<short>Value for the property.</short>
</element>
<element name="TFieldDataLink.UpdateField">
<short>Retrieves the value for the Field property from the linked dataset.</short>
<descr/>
<seealso/>
</element>
<element name="TFieldDataLink.ValidateField">
<short>Checks for FieldName in the linked Dataset, and updates the value in Field.
</short>
<descr/>
<seealso/>
</element>
<element name="TFieldDataLink.ResetEditingSource">
<short>Resets the EditingSource and EditingSourceSet Boolean flags.</short>
<descr/>
<seealso/>
</element>
<element name="TFieldDataLink.ActiveChanged">
<short>
<var>ActiveChanged</var> - method to process changes in the
<var>Active</var> property.
</short>
<descr>
<p>
<var>ActiveChanged</var> - method to process changes in the
<var>Active</var> property.
</p>
<p>Any change to the <var>Active</var> property triggers the <var>ActiveChanged</var> method.
</p>
<p>If the method is triggered by a transition into an <var>Active</var> state, then <var>ActiveChanged</var> ensures that this <var>TFieldDataLink</var>'s <var>Field</var> is still valid before calling the event handler.
</p>
<p>ActiveChanged calls the <var>OnActiveChange</var> event handler if one has been assigned.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.OnActiveChange"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
</seealso>
</element>
<element name="TFieldDataLink.EditingChanged">
<short>
<var>EditingChanged</var> - method for processing changes in the
<var>Editing</var> property.
</short>
<descr>
<p>
<var>EditingChanged</var> is an overridden method which re-implements the virtual method defined in
<var>TDataLink</var>. EditingChanged ensures that the
<var>Editing</var> property is updated to reflect actual state for the
<var>Field</var> in the linked dataset. If the real editing state does not match the value in the Editing property, internal flags are reset to reflect the new editing state and the
<var>OnEditingChange</var> event handler is signalled (when assigned).
</p>
<p>EditingChanged is used in the implementation of the <var>LayoutChanged</var> method. It is also called when the value in the <var>FieldName</var> or <var>Active</var> property is changed.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Editing"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.EditingChanged"/>
<link id="TFieldDataLink.OnEditingChange"/>
</seealso>
</element>
<element name="TFieldDataLink.LayoutChanged">
<short>
<var>LayoutChanged</var>- called if layout is changed: tests validity of field then calls
<var>OnLayoutChange</var> event handler.
</short>
<descr>
<p>
<var>LayoutChanged</var> is an overridden procedure called when the field binding in the linked dataset for a data-aware Control has been changed. LayoutChanged calls the ValidateField method to ensure that the Field is valid / up-to-date, or set to
<b>Nil</b> when the FieldName does not exist in the linked dataset. If the Field is assigned (not
<b>Nil</b>), the EditingChanged and RecordChanged methods are called.
</p>
<remark>
LayoutChanged does not call the inherited method.
</remark>
<p>LayoutChanged is used primarily in the implementation of methods in TCustomDBGrid and descendent classes.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Control"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.EditingChanged"/>
<link id="TFieldDataLink.RecordChanged"/>
<link id="#lcl.dbgrids.TCustomDBGrid">TCustomDBGrid</link>
</seealso>
</element>
<element name="TFieldDataLink.RecordChanged">
<short>
<var>RecordChanged</var> - triggered if the contents of the current record change; calls
<var>Reset</var>.
</short>
<descr>
<p>
<var>RecordChanged</var> is an overridden procedure called when the current record in the linked dataset has been changed.
</p>
<p>
<var>AField</var> contains the TField definition with the value that has changed in the current record. It may contain
<b>Nil</b> when more than one field has been changed in the current record for the linked dataset.
</p>
<p>RecordChanged calls the Reset method when any of the following are true:
</p>
<ul>
<li>AField is unassigned (contains Nil)</li>
<li>AField has the same value as the Field property</li>
<li>Field is an assigned key field which uses the fkLookup field kind</li>
</ul>
<p>Applications should not call this method; it is executed when values are stored by data-aware controls which use the field data link.
</p>
</descr>
<seealso/>
</element>
<element name="TFieldDataLink.RecordChanged.aField">
<short>Field definition with the value updated in the current record.</short>
</element>
<element name="TFieldDataLink.UpdateData">
<short>Signals the <var>OnUpdateData</var> event handler for pending changes to the linked dataset.
</short>
<descr>
<p>
<var>UpdateData</var> is an overridden procedure used to post pending updates from a data-aware control to the linked dataset. UpdateData uses the value in the internal IsModified flag to determine if additional actions are required in the method. No actions are performed when the internal IsModified flag has not been set.
</p>
<p>UpdateData signals the <var>OnUpdateData</var> event handler when it has been assigned for the class instance. This event handler normally contains a reference to the <var>UpdateData</var> method defined for the associated data-aware <var>Control</var>, such as <var>TCustomDBGrid.UpdateData</var> and <var>TDBEdit.UpdateData</var>.
</p>
<remark>
UpdateData does <b>not</b> call the inherited method in the ancestor class.
</remark>
</descr>
<seealso>
<link id="TFieldDataLink.OnUpdateData"/>
<link id="TFieldDataLink.Control"/>
</seealso>
</element>
<element name="TFieldDataLink.FocusControl">
<short>
<var>FocusControl</var> gives the input focus to the data-aware control in the class instance.
</short>
<descr>
<p>
<var>FocusControl</var> is an overridden procedure used to give input focus to the data-aware
<var>Control</var> for the class instance.
</p>
<p>
<var>AField</var> is a reference to the
<var>TField</var> which defines the field for the data-aware control. AField must be assigned, and point to the
<var>Field</var> used in the class instance. No actions are performed in the method if either condition is not met.
</p>
<p>FocusControl can be used for any Control descended from TWinControl where its CanFocus value is <b>True</b>; the SetFocus method in the Control is called to receive the input focus.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Control"/>
<link id="TFieldDataLink.Field"/>
<link id="#lcl.controls.TWinControl.CanFocus">TWinControl.CanFocus</link>
<link id="#lcl.controls.TWinControl.SetFocus">TWinControl.SetFocus</link>
</seealso>
</element>
<element name="TFieldDataLink.FocusControl.aField">
<short>Reference to the field expected for the focused control.</short>
</element>
<element name="TFieldDataLink.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 constructor on entry to the method. Create sets the value in the <var>VisualControl</var> property to <b>True</b>.
</p>
</descr>
<seealso>
<link id="#fcl.db.TDataLink.Create">TDataLink.Create</link>
</seealso>
</element>
<element name="TFieldDataLink.Edit">
<short>
<var>Edit</var> - if the field can be modified, performs inherited Edit and shows editing status.
</short>
<descr>
<p>
<var>Edit</var> is a
<var>Boolean</var> function used to ensure that the field in the linked dataset can be modified. The return value is
<b>True</b> when the DataSource is already in an edit state, or if it is successfully changed to an edit state. The return value is
<b>False</b> if a dataset is not available, or not in a valid edit state.
</p>
<p>Edit calls the inherited method when CanModify is <b>True</b> and the dataset is not already in an edit state. This causes the DataSource to call its Edit method.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.CanModify"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.Edit">TDataLink.Edit</link>
<link id="#fcl.db.TDataSource.Edit">TDataSource.Edit</link>
</seealso>
</element>
<element name="TFieldDataLink.Edit.Result">
<short>True if the linked dataset is in an edit state.</short>
</element>
<element name="TFieldDataLink.Modified">
<short>Updates the class when the linked dataset enters an edit state.</short>
<descr>
<p>
<var>Modified</var> is a procedure which updates the class when the linked dataset is placed in an edit state. Modified sets the value in the internal IsModified member to
<b>True</b> to track the state change independent of the real state for the linked dataset.
</p>
<p>The EditingChanged, UpdateData, and Reset methods reverse the action performed in Modified.
</p>
<p>Modified is used in the implementation of methods in data-aware controls, and generally occurs just prior to calling the Change method to signal an update to the value for the control.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.EditingChanged"/>
<link id="TFieldDataLink.UpdateData"/>
<link id="TFieldDataLink.Reset"/>
<link id="TDBEdit.Change"/>
<link id="TDBImage.Change"/>
<link id="TDBMemo.Change"/>
</seealso>
</element>
<element name="TFieldDataLink.Reset">
<short>
<var>Reset</var> - checks that link is active, calls the
<var>OnDataChange</var> event handler then sets
<var>IsModified</var> to
<b>False</b>.
</short>
<descr>
<p>
<var>Reset</var> is a procedure used to cancel pending changes in the Control value before they are written to the Field in the linked dataset. Reset signals the
<var>OnDataChange</var> event handler (when assigned), but does not store pending changes to the current record in the linked dataset.
</p>
<p>The internal IsModified flag is reset in the method, as are flags which track the editing state for the source of the control value. Call the OnDataChange event handler to affect the internal IsModified flag only.
</p>
<p>Reset is used in the implementation of methods in data-aware controls which process, apply, or cancel changes to the control value.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Control"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="TDBEdit.Reset"/>
<link id="TDBEdit.KeyDown"/>
</seealso>
</element>
<element name="TFieldDataLink.Control">
<short>The <var>Control</var> to which this datalink is attached.</short>
<descr>
<p>
<var>Controls</var> is a
<var>TComponent</var> property which contains the control which provides editing facilities for the value in the linked dataset. The value in control is generally assigned when a data-aware control is created and its data link is configured.
</p>
<p>The value in Control is used in the implementation of the <var>FocusControl</var> method to give input focus to the control.
</p>
<p>Use the <var>FieldName</var> property to access the name of the field in the linked dataset.
</p>
<p>Use the <var>DataSource</var> property to access the component which provides access to the linked <var>DataSet</var> with the <var>Field</var> value.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FocusControl"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element name="TFieldDataLink.Field">
<short>The <var>Field</var> to which the datalink is attached.</short>
<descr>
<p>
<var>Field</var> is a read-only
<var>TField</var> property which contains the field definition in the linked
<var>DataSet</var> for the database column represented by the
<var>FieldName</var> property. Field provides access to the metadata for the database column, such as: field type, size, display values, lookup settings and content, editing mask, et. al.
</p>
<p>The value in Field is assigned in the private UpdateField method when the value for the FieldName property is changed. Its value is also accessible to the data-aware <var>Control</var> using the TFieldDataLink instance.
</p>
<p>The <var>DataSource</var> and <var>DataSet</var> properties contain the source with the fields and values for the class instance.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Control"/>
<link id="TFieldDataLink.FieldName"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element name="TFieldDataLink.FieldName">
<short>
<var>FieldName</var> - the name of the attached field, stored as a string.
</short>
<descr>
<p>
<var>FieldName</var> is a
<var>String</var> property which contains the name of the field in the linked
<var>Dataset</var> with the value for a data-aware
<var>Control</var>. Changing the value for the property causes
<var>Field</var> to be updated to reflect the new value. If the data link is marked as
<var>Active</var>, the
<var>EditingChanged</var> and
<var>Reset</var> methods are called to trigger event handlers in the class instance.
</p>
<p>Use the DataSource property to assign the component with the linked DataSet which contains the specified FieldName.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Control"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.EditingChanged"/>
<link id="TFieldDataLink.Reset"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
<link id="#fcl.db.TDataLink.Active">TDataLink.Active</link>
</seealso>
</element>
<element name="TFieldDataLink.CanModify">
<short>
<var>CanModify</var> -
<b>True</b> if the linked field is capable of being modified.
</short>
<descr>
<p>
<var>CanModify</var> is a read-only
<var>Boolean</var> property which indicates if the field in the linked
<var>DataSet</var> can be modified. The property value is determined by examining the
<var>Field</var> definition in the DataSet.
</p>
<p>If Field has not been assigned by setting the <var>FieldName</var> property, the property value is <b>False</b>. If the Field is a lookup field type, the value is <b>True</b> when its list fields can be modified. Otherwise, the value in the CanModify property for the Field and the ReadOnly property in the data link determine the property value.
</p>
<p>CanModify is used in the implementation of the EditingChanged and Edit methods.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.Edit"/>
<link id="TFieldDataLink.EditingChanged"/>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.ReadOnly">TDataLink.ReadOnly</link>
</seealso>
</element>
<element name="TFieldDataLink.Editing">
<short>
<var>Editing</var> -
<b>True</b> if the linked field is being edited.
</short>
<descr>
<p>
<var>Editing</var> is a read-only
<var>Boolean</var> property which indicates if values in the class instance have been updated in its methods. It is used in methods for data-aware controls, and determines whether a control uses the data link to commit or discard value changes in the control.
</p>
<p>The value in Editing is updated following changes to the <var>DataSource</var>, <var>FieldName</var>, <var>Field</var>, <var>ReadOnly</var>, or <var>Active</var> properties.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.ActiveChanged"/>
<link id="TFieldDataLink.EditingChanged"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.Active">TDataLink.Active</link>
<link id="#fcl.db.TDataLink.ReadOnly">TDataLink.ReadOnly</link>
</seealso>
</element>
<element name="TFieldDataLink.EditingSource">
<short>Indicates if the data link is changing its source properties.
</short>
<descr>
<p>
<var>EditingSource</var> is a read-only <var>Boolean</var> property which indicates if the data link is changing the source properties for the class instance. The source properties include <var>DataSource</var>, <var>FieldName</var>, and <var>Field</var>.
</p>
<p>
The value in EditingSource is updated when the <var>Edit</var> or <var>EditingChanged</var> methods are called. It is used to prevent multiple calls to the Edit method.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.Edit"/>
<link id="TFieldDataLink.EditingChanged"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element name="TFieldDataLink.OnDataChange">
<short>
<var>OnDataChange</var> - event handler for a change in the data.
</short>
<descr>
<p>
<var>OnDataChange</var> is a <var>TNotifyEvent</var> property which contains the event handler signalled when the <var>DataSource</var> or <var>Field</var> has been changed in the class instance. OnDataChange is normally signalled from the <var>DataChange</var> method in a data-aware control which has been assigned to the event handler when the control was initialized. It is also signalled from the <var>Reset</var> method which cancels field updates for the control.
</p>
<p>
See <var>OnUpdateData</var> for the event handler signalled when pending edits are written to the linked <var>DataSet</var>. See <var>EditingChanged</var> for the event handler signalled for pending changes to the <var>DataSource</var>, <var>Field</var>, or <var>FieldName</var> properties.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.Reset"/>
<link id="TFieldDataLink.OnUpdateData"/>
<link id="TFieldDataLink.OnEditingChange"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="TFieldDataLink.EditingChanged"/>
<link id="TFieldDataLink.UpdateData"/>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#rtl.classes.TNotifyEvent">TNotifyEvent</link>
</seealso>
</element>
<element name="TFieldDataLink.OnEditingChange">
<short>
<var>OnEditingChange</var> - event handler for a changed in the
<var>Editing</var> property.
</short>
<descr>
<p>
<var>OnEditingChange</var> is a <var>TNotifyEvent</var> property which contains the event handler signalled when the value in the <var>Editing</var> property has been changed. OnEditingChange is signalled from the <var>EditingChanged</var> method (when assigned) after Editing has been updated to reflect the current edit state.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Editing"/>
<link id="TFieldDataLink.EditingChanged"/>
</seealso>
</element>
<element name="TFieldDataLink.OnUpdateData">
<short>
<var>OnUpdateData</var> - event handler for updating any pending changes in the data.
</short>
<descr>
<p>
<var>OnUpdateData</var> is a
<var>TNotifyEvent</var> property which contains the event handler signalled for changes to the data in the control.
</p>
<p>OnUpdateData is signalled from the <var>UpdateData</var> method, and normally contains a reference to the UpdateData method in the data-aware control which contains the class instance. The method in the data-aware control is responsible for performing any actions needed before the field value is written to its dataset. This can include validation of the field value, and potentially raising an exception for an invalid field value.
</p>
</descr>
<seealso/>
</element>
<element name="TFieldDataLink.OnActiveChange">
<short>
<var>OnActiveChange</var> - event handler for a change in the
<var>Active</var> property.
</short>
<descr>
<p>
<var>OnActiveChange</var> is a <var>TNotifyEvent</var> property which contains the event handler signalled when the value for the <var>Active</var> property has been changed. OnActiveChange is signalled from the <var>ActiveChanged</var> method, and occurs after the <var>Field</var> property has been updated and the <var>OnDataChange</var> event handler has been executed.
</p>
<p>
Applications can implement and assign an object procedure to the property to allow responding the event notification.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.ActiveChanged"/>
<link id="TFieldDataLink.EditingChanged"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.Reset"/>
<link id="#fcl.db.TDataLink.Active">TDataLink.Active</link>
<link id="#rtl.classes.TNotifyEvent">TNotifyEvent</link>
</seealso>
</element>
<element name="TDBLookup">
<short>
<var>TDBLookup</var> - used as source of data by
<var>TDBLookupListBox</var> or
<var>TDBLookupComboBox</var>, to find data from a lookup table.
</short>
<descr>
<p>
<var>TDBLookup</var> component is typically owned by a Lookup control like
<var>TDBLookupListBox</var> or
<var>TDBLookupComboBox</var>.
</p>
<p>The <var>ListSource</var> is the <var>TDataSource</var> for the other Dataset from which lookup values are retrieved.
</p>
<p>The <var>KeyField</var> is the lookup key in <var>ListSource</var> which corresponds to the <var>DataField</var> value.
</p>
<p>The <var>ListField</var> is the name of the field in <var>ListSource</var> to list into the <var>Items</var> property of the lookup control.
</p>
<p>Use <var>EmptyValue</var> to specify a <var>KeyField</var> value automatically added to the <var>ControlItems</var> property when the linked lookup dataset contains no records. No entry is added to Controlitems when the value in EmptyValue is an empty string <b>('')</b>. The value in <var>DisplayEmpty</var> is used for the ListField displayed in the control.
</p>
</descr>
<version>The EmptyValue and DisplayEmpty properties were added in revision 62844, and released in LCL version 2.0.8 and higher.
</version>
</element>
<element name="TDBLookup.FControlLink"/>
<element name="TDBLookup.FControlItems"/>
<element name="TDBLookup.FListLink"/>
<element name="TDBLookup.FListSource"/>
<element name="TDBLookup.FLookupSource"/>
<element name="TDBLookup.FDataFieldNames"/>
<element name="TDBLookup.FKeyFieldNames"/>
<element name="TDBLookup.FListFieldName"/>
<element name="TDBLookup.FEmptyValue"/>
<element name="TDBLookup.FDisplayEmpty"/>
<element name="TDBLookup.FListFieldIndex"/>
<element name="TDBLookup.FDataFields"/>
<element name="TDBLookup.FKeyFields"/>
<element name="TDBLookup.FListField"/>
<element name="TDBLookup.FListKeys"/>
<element name="TDBLookup.FNullValueKey"/>
<element name="TDBLookup.FHasLookUpField"/>
<element name="TDBLookup.FLookUpFieldIsCached"/>
<element name="TDBLookup.FLookupCache"/>
<element name="TDBLookup.FInitializing"/>
<element name="TDBLookup.FScrollListDataset"/>
<element name="TDBLookup.FFetchingLookupData"/>
<element name="TDBLookup.ActiveChange"/>
<element name="TDBLookup.ActiveChange.Sender"/>
<element name="TDBLookup.DataSetChange"/>
<element name="TDBLookup.DatasetChange.Sender"/>
<element name="TDBLookup.DoInitialize"/>
<element name="TDBLookup.FetchLookupData"/>
<element name="TDBLookup.GetKeyFieldName"/>
<element name="TDBLookup.GetKeyFieldName.Result"/>
<element name="TDBLookup.GetListSource"/>
<element name="TDBLookup.GetListSource.Result"/>
<element name="TDBLookup.SetKeyFieldName"/>
<element name="TDBLookup.SetKeyFieldName.Value"/>
<element name="TDBLookup.SetListFieldName"/>
<element name="TDBLookup.SetListFieldName.Value"/>
<element name="TDBLookup.SetListSource"/>
<element name="TDBLookup.SetListSource.Value"/>
<element name="TDBLookup.SetLookupCache"/>
<element name="TDBLookup.SetLookupCache.Value"/>
<element name="TDBLookup.HandleNullKey"/>
<element name="TDBLookup.HandleNullKey.Result"/>
<element name="TDBLookup.HandleNullKey.Key"/>
<element name="TDBLookup.HandleNullKey.Word"/>
<element name="TDBLookup.Notification">
<short>Performs the notification message received for a component in the class instance.</short>
<descr>
<p>Notification is an overridden method in TDBLookup. It calls the inherited method, and ensures that the ListSource property is set to Nil when the component is being removed.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.Notification">TComponent.Notification</link>
</seealso>
</element>
<element name="TDBLookup.Notification.AComponent">
<short>Component for the notification.</short>
</element>
<element name="TDBLookup.Notification.Operation">
<short>Operation for the notification.</short>
</element>
<element name="TDBLookup.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 constructor. Create allocates resources needed for internal members in the class instance, and sets the default values for the
<var>DisplayEmpty</var> and
<var>EmptyValue</var> properties (both are set to an empty string).
</p>
</descr>
<seealso>
<link id="TDBLookup.DisplayEmpty"/>
<link id="TDBLookup.EmptyValue"/>
<link id="#rtl.classes.TComponent.Create">TComponent.Create</link>
</seealso>
</element>
<element name="TDBLookup.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 internal members in the class instance are freed, and calls the inherited destructor prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.Destroy">TComponent.Destroy</link>
</seealso>
</element>
<element name="TDBLookup.Initialize">
<short>
<var>Initialize</var> makes links between local Fields and the appropriate fields in the remote data source, then fetches the lookup data.
</short>
<descr>
<p>
<var>Initialize</var> is called when the value in the
<var>Active</var> property for the list dataset is changed to
<b>True</b>. No actions are performed in the method if it has already been called, but has not yet finished.
</p>
<p>When <var>ScrollListDataset</var> is <b>True</b>, the linked datasets for the control and its lookup list are synchronized. The lookup dataset is positioned to the record with the values in the key fields. When ScrollListDataset is set to <b>False</b>, the datasets are not synchronized.
</p>
</descr>
</element>
<element name="TDBLookup.Initialize.AControlDataLink">
<short>Link to the dataset with the keys and display values for the control.</short>
</element>
<element name="TDBLookup.Initialize.AControlItems">
<short>Contains the keys and display values for the lookup control.</short>
</element>
<element name="TDBLookup.KeyFieldValue">
<short>Gets the value(s) for one or more key fields defined for the Field in the linked dataset.
</short>
<descr>
<p>
<var>KeyFieldValue</var> is a
<var>Variant</var> function used to get one or more values for fields which make up the index key for the linked dataset in the control. KeyFieldValue uses the internal
<var>TFieldDataLink</var> instance in the class to get the return value for the method. The return value contains the content from the
<var>FieldValues</var> property for the linked
<var>DataSet</var>.
</p>
<p>The return value is <b>Null</b> under the following conditions:
</p>
<ul>
<li>The internal data link has not been assigned</li>
<li>The Dataset in the data link is not Active</li>
<li>The Field in the data link does not have defined key field names</li>
</ul>
<p>KeyFieldValue is useful for getting the index value for the current record in the linked dataset. It is not, however, used in the implementation of the class or descendants.
</p>
</descr>
<seealso>
<link id="TDBLookup.KeyField"/>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
<link id="#fcl.db.TDataSet.FieldValues">TDataSet.FieldValues</link>
</seealso>
</element>
<element name="TDBLookup.KeyFieldValue.Result">
<short>Variant value for the key fields in the field definition for the control.</short>
</element>
<element name="TDBLookup.UpdateData">
<short>Signals the <var>OnUpdateData</var> event handler for pending changes to the linked dataset.
</short>
<descr>
<p>
<var>UpdateData</var> is a procedure used to post pending updates from a data-aware control to the specified key field in the linked dataset.
<var>ValueIndex</var> contains the ordinal position in the list of key fields for the value updated in the method. No actions are performed in the method when ValueIndex is not a valid position for the list of key fields.
</p>
<p>UpdateData uses the value in <var>ScrollListDataset</var> to determine whether the lookup dataset is moved to the new key value. When ScrollListDataset contains <b>True</b>, the linked lookup dataset calls its Locate method to find the record with the key value in its index fields. The lookup dataset is not moved when ScrollListDataset contains <b>False</b>.
</p>
<p>The internal <var>TFieldDataLink</var> is used to access the linked dataset where the value for the control is stored. It has not been assigned, is not <var>Active</var>, or already contains the new key value, no additional actions are performed in the method. Otherwise, the new key value is stored in the field for the index key field.
</p>
</descr>
<seealso>
<link id="TDBLookup.KeyField"/>
<link id="TDBLookup.ScrollListDataset"/>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
<link id="#fcl.db.TDataLink.Active">TDataLink.Active</link>
</seealso>
</element>
<element name="TDBLookup.UpdateData.ValueIndex">
<short>Ordinal position in the key fields located in the method.</short>
</element>
<element name="TDBLookup.GetKeyValue">
<short>
Gets the value for the key field at the specified ordinal position in the list of values from the lookup dataset.
</short>
<descr>
<p>
<var>GetKeyValue</var> is a <var>Variant</var> function used to get a values from an index key field in the linked lookup dataset.
</p>
<p>
<var>ValueIndex</var> contains the ordinal position in the list of fields defined as key fields in the Field for the linked dataset. When ValueIndex contains a valid position for the list of fields names, the corresponding field value from the lookup dataset is returned. Otherwise, the
<b>Null</b> value is used as the the return value for the method.
</p>
<p>
GetKeyField is called from methods in controls which use TDBLookup in their implementation, such as <var>TDBLookupListBox</var> and <var>TDBLookupComboBox</var>.
</p>
</descr>
<seealso>
<link id="TDBLookupListBox"/>
<link id="TDBLookupComboBox"/>
<link id="#fcl.db.TDataSet.Fields">TDataSet.Fields</link>
<link id="#fcl.db.TField.KeyFields">TField.KeyFields</link>
<link id="#fcl.db.TField.LookupKeyFields">TField.LookupKeyFields</link>
</seealso>
</element>
<element name="TDBLookup.GetKeyValue.Result">
<short>Value for the Key field retrieved from the lookup dataset.</short>
</element>
<element name="TDBLookup.GetKeyValue.ValueIndex">
<short>Ordinal position in the list of key values from the lookup dataset.</short>
</element>
<element name="TDBLookup.GetKeyIndex">
<short>Gets the ordinal position in the list for the specified key value.</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookup.GetKeyIndex.Result">
<short>Ordinal position for the specified key value.</short>
</element>
<element name="TDBLookup.GetKeyIndex.AKeyValue">
<short>Key value to locate in the method.</short>
</element>
<element name="TDBLookup.ControlItems">
<short>Contains the items displayed for the lookup control.</short>
<descr>
<p>
<var>ControlItems</var> is a
<var>TStrings</var> property used to store the display values for items in the lookup control. Values in ControlItems are passed as an argument to the Initialize method called when the value in Active is changed. It is updated when values are retrieved from a linked lookup dataset using the ListField defined for the control. ControlItems is cleared if the linked lookup dataset does not contain any records; an empty value is added to the property when EmptyValue and DisplayEmpty have been assigned in the control.
</p>
</descr>
<seealso/>
</element>
<element name="TDBLookup.LookupCache">
<short>
Indicates if look-up information is cached in the field data link for the control.
</short>
<descr>
<p>
Used in classes with TDBLookup in their implementation, like <var>TDBLookupComboBox</var> and <var>TDBLookupListBox</var>.
</p>
</descr>
<seealso/>
</element>
<element name="TDBLookup.KeyField">
<short>The name of the <var>KeyField</var> used in the lookup search.</short>
</element>
<element name="TDBLookup.ListField">
<short>
<var>ListField</var> - the name of the list field displayed for the lookup.</short>
</element>
<element name="TDBLookup.ListFieldIndex">
<short>
<var>ListFieldIndex</var> - the index value of the list field.</short>
</element>
<element name="TDBLookup.ListSource">
<short>
<var>ListSource</var> - the data source that contains the lookup list.
</short>
</element>
<element name="TDBLookup.NullValueKey">
<short>Keyboard shortcut which causes an empty value to be assigned to each of the key fields defined for the lookup control.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookup.ScrollListDataset">
<short>Indicates if the Dataset in ListSource can be scrolled when loading/locating key and display values.
</short>
<descr>
<p>
<var>ScrollListDataset</var> is a
<var>Boolean</var> property which indicates if the linked lookup dataset can be scrolled when loading values from the fields identified in KeyField and ListField. The value in ScrollListDataset is used in the implementation of the
<var>Initialize</var> and
<var>UpdateData</var> methods.
</p>
</descr>
<seealso>
<link id="TDBLookup.KeyField"/>
<link id="TDBLookup.ListField"/>
<link id="TDBLookup.ListSource"/>
<link id="TDBLookup.Initialize"/>
<link id="TDBLookup.UpdateData"/>
</seealso>
</element>
<element name="TDBLookup.EmptyValue">
<short>Value stored for the lookup control when a lookup value is not available.</short>
<descr>
<p>
<var>EmptyValue</var> is a
<var>String</var> property which contains the value stored in the list of key values when no records are available in the linked lookup dataset, or when the
<var>NullValueKey</var> shortcut is pressed.
</p>
<p>Use <var>EmptyValue</var> to specify a KeyField value automatically added to the <var>ControlItems</var> property when the linked lookup dataset contains no records. No entry is added to Controlitems when the value in EmptyValue is an empty string <b>('')</b>. The value in <var>DisplayEmpty</var> is used for the <var>ListField displayed</var> in the control.
</p>
<p>Use <var>DisplayEmpty</var> to specify the value displayed in the lookup control when no records are available in the linked lookup dataset, or when the NullValueKey shortcut is pressed.
</p>
</descr>
<seealso>
<link id="TDBLookup.DisplayEmpty"/>
<link id="TDBLookup.ControlItems"/>
<link id="TDBLookup.ListField"/>
<link id="TDBLookup.KeyField"/>
<link id="TDBLookup.NullValueKey"/>
</seealso>
<version>The EmptyValue and DisplayEmpty properties were added in revision 62844, and released in LCL version 2.0.8 and higher.
</version>
</element>
<element name="TDBLookup.DisplayEmpty">
<short>Value displayed in the lookup control when a lookup value is not available.</short>
<descr>
<p>
<var>DisplayEmpty</var> is a
<var>String</var> property which contains the value displayed in the lookup when no records are available in the linked lookup dataset, or when the
<var>NullValueKey</var> shortcut is pressed.
</p>
<p>Use <var>EmptyValue</var> to specify a KeyField value automatically added to the <var>ControlItems</var> property when the linked lookup dataset contains no records. No entry is added to Controlitems when the value in EmptyValue is an empty string <b>('')</b>. The value in <var>DisplayEmpty</var> is used for the <var>ListField</var> displayed in the control.
</p>
<p>Use <var>EmptyValue</var> to specify the value stored in the lookup when no records are available in the linked lookup dataset, or when the NullValueKey shortcut is pressed.
</p>
</descr>
<seealso>
<link id="TDBLookup.EmptyValue"/>
<link id="TDBLookup.ControlItems"/>
<link id="TDBLookup.ListField"/>
<link id="TDBLookup.KeyField"/>
<link id="TDBLookup.NullValueKey"/>
</seealso>
<version>The EmptyValue and DisplayEmpty properties were added in revision 62844, and released in LCL version 2.0.8 and higher.
</version>
</element>
<element name="TDBEdit">
<short>
<var>TDBEdit</var> - a data-aware edit box for processing a single text-string from a dataset.
</short>
<descr>
<p>
<var>TDBEdit</var> is a
<var>TCustomMaskEdit</var> descendant which implements a data-aware control which allows editing of the value in a database field. Like its ancestor class, TDBEdit displays and edits a single line of text. For multi-line text values, use the
<var>TDBMemo</var> control.
</p>
<p>TDBEdit extends the ancestor class with additional properties needed to configure the data-aware features in the control, including:
</p>
<dl>
<dt>DataSource</dt>
<dd>Component which provides access to the dataset with the field value</dd>
<dt>DataField</dt>
<dd>Name of the field in the dataset edited in the control</dd>
<dt>Field</dt>
<dd>Field definition and metadata in the dataset</dd>
<dt>ReadOnly</dt>
<dd>Indicates if the value for the control (and its field) cannot be changed</dd>
</dl>
<p>An internal <var>TFieldDataLink</var> class instance is used to maintain an association between the control and its data source. TDBEdit provides methods which support use of TBasicAction with the data link for the control.
</p>
<p>TDBEdit extends the masking capabilities from the ancestor to include use of mask-related properties like <var>EditMask</var> and <var>Alignment</var> set in the <var>TField</var> instance for the control. Use the <var>CustomEditMask</var> property to enable an edit mask independent of the value defined in the dataset <var>Field</var>.
</p>
</descr>
<seealso>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TDBEdit.FDataLink"/>
<element name="TDBEdit.FCustomEditMask"/>
<element name="TDBEdit.FFocusedDisplay"/>
<element name="TDBEdit.DataChange">
<short>Performs actions needed when values in the dataset have been changed.
</short>
<descr>DataChange implements the OnDataChange event handler used in the internal TFieldDataLink instance.
</descr>
<seealso/>
</element>
<element name="TDBEdit.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBEdit.UpdateData">
<short>Performs actions needed to validate the edit control, and update the field in the linked dataset.
</short>
<descr>
<p>UpdateData is assigned to the OnUpdateData event handler in the internal TFieldDataLink instance used in the control.
</p>
</descr>
<seealso/>
</element>
<element name="TDBEdit.UpdateData.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBEdit.GetDataField">
<short>Gets the value for the DataField property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBEdit.GetDataField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBEdit.GetDataSource">
<short>Gets the value for the DataSource property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBEdit.GetDataSource.Result">
<short>Value for the property.</short>
</element>
<element name="TDBEdit.GetField">
<short>Gets the value for the Field property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBEdit.GetField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBEdit.SetDataField">
<short>Sets the value for the DataField property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBEdit.SetDataField.Value">
<short>New value for the property.</short>
</element>
<element name="TDBEdit.SetDataSource">
<short>Sets the value for the DataSource property.</short>
<descr>Calls the ChangeDataSource routine to perform free notifications and update the TFieldDataLink used in the class instance.
</descr>
<seealso/>
</element>
<element name="TDBEdit.SetDataSource.Value">
<short>New value for the property.</short>
</element>
<element name="TDBEdit.CMGetDataLink">
<short>Implements the CM_GETDATALINK control message.</short>
<descr/>
<seealso/>
</element>
<element name="TDBEdit.CMGetDataLink.Message">
<short>Message examined and updated in the method.</short>
</element>
<element name="TDBEdit.GetReadOnly">
<short>Gets the value for the ReadOnly property.</short>
<descr>
<p>
<var>GetReadOnly</var> is a
<var>Boolean</var> function used to get the value for the
<var>ReadOnly</var> property. Read access for the property value redirected to the ReadOnly property in the internal
<var>TFieldDataLink</var> instance used in the class.
</p>
</descr>
<seealso>
<link id="TDBEdit.ReadOnly"/>
<link id="#lcl.stdctrls.TCustomEdit.GetReadOnly">TCustomEdit.GetReadOnly</link>
<link id="#fcl.db.TDataLink.ReadOnly">TDataLink.ReadOnly</link>
</seealso>
</element>
<element name="TDBEdit.GetReadOnly.Result">
<short>Value for the property.</short>
</element>
<element name="TDBEdit.SetReadOnly">
<short>Sets the value for the ReadOnly property.</short>
<descr>
<p>
<var>SetReadOnly</var> is a procedure used to set the value for the
<var>ReadOnly</var> property. SetReadOnly calls the inherited method. Write access for the property value is redirected to the ReadOnly property in the internal
<var>TFieldDataLink</var> instance used in the class.
</p>
</descr>
<seealso>
<link id="TDBEdit.ReadOnly"/>
<link id="#fcl.db.TDataLink.ReadOnly">TDataLink.ReadOnly</link>
<link id="#lcl.stdctrls.TCustomEdit.SetReadOnly">TCustomEdit.SetReadOnly</link>
</seealso>
</element>
<element name="TDBEdit.SetReadOnly.Value">
<short>New value for the property.</short>
</element>
<element name="TDBEdit.KeyDown">
<short>Handles key down events in the control.</short>
<descr>
<p>
<var>KeyDown</var> is an overridden method in
<var>TDBEdit</var>. KeyDown calls the inherited method, and ensures that the specified virtual key code and modifier are applied in the manner needed for the data-aware control. KeyDown handles the following virtual key codes:
</p>
<dl>
<dt>VK_ESCAPE</dt>
<dd>Cancels an active edit and resets the state for the DataSource. Calls the <var>Reset</var> method in the internal <var>TFieldDataLink</var>, and re-selects the content in the control. Sets Key to the value <b>VK_UNKNOWN</b>.
</dd>
<dt>VK_DELETE or VK_BACK</dt>
<dd>Sets the value in Key to <b>VK_UNKNOWN</b> when the control is used on a field that cannot be edited.
</dd>
<dt>VK_RETURN</dt>
<dd>Calls the <var>UpdateRecord</var> method in the internal <var>TFieldDataLink</var> instance when it is in an edit state.
</dd>
</dl>
</descr>
<seealso>
<link id="TFieldDataLink.Reset"/>
<link id="TFieldDataLink.Editing"/>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.UpdateRecord">TDataLink.UpdateRecord</link>
<link id="#lcl.controls.TWinControl.KeyDown">TWinControl.KeyDown</link>
</seealso>
</element>
<element name="TDBEdit.KeyDown.Key">
<short>Virtual key code examined and applied in the method.</short>
</element>
<element name="TDBEdit.KeyDown.Shift">
<short>Key modifier examined and applied in the method.</short>
</element>
<element name="TDBEdit.UTF8KeyPress">
<short>Handles UTF-8 characters for the data-aware control.</short>
<descr>
<p>
<var>UTF8KeyPress</var> is an overridden method in TDBEdit. UTF8KeyPress calls the inherited method, and performs actions needed to handle the UTF-8-encoded character specified in the
<var>UTF8Key</var> argument.
</p>
<p>UTF8KeyPress checks the value in UTF8Key to determine the number of bytes required for the code point. A single-byte code point is converted to a Char type, and passed to the <var>FieldCanAcceptKey</var> routine to validate its content for the Field in the control. Multi-byte Unicode code points are ignored, and the Extended ASCII <b>NbSp</b> character (Decimal 255) is passed to FieldCanAcceptKey. The value in UTF8Key is set to an empty string if it is valid for the Field.
</p>
<p>Use the OnUTF8KeyPress event handler to handle/convert specific multi-byte character values.
</p>
</descr>
<seealso>
<link id="TDBEdit.OnUTF8KeyPress"/>
<link id="#lcl.maskedit.TCustomMaskEdit.UTF8KeyPress">TCustomMaskEdit.UTF8KeyPress</link>
<link id="#lcl.maskedit.TCustomMaskEdit.HandleKeyPress">TCustomMaskEdit.HandleKeyPress</link>
<link id="#lcl.controls.TWinControl.UTF8KeyPress">TWinControl.UTF8KeyPress</link>
<link id="#lcl.controls.TWinControl.OnUTF8KeyPress">TWinControl.OnUTF8KeyPress</link>
<link id="#fcl.db.TField.IsValidChar">TField.IsValidChar</link>
</seealso>
</element>
<element name="TDBEdit.UTF8KeyPress.UTF8Key">
<short>UTF-8 character examined in the method.</short>
</element>
<element name="TDBEdit.Notification">
<short>
Handles notifications when a component is added or removed from the control.
</short>
<descr>Notification is overridden in TDBEdit to ensure that the DataSource for the data link in the control is set to Nil when the component is freed. Notification calls the inherited method.
</descr>
<seealso>
<link id="TDBEdit.DataSource"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#rtl.classes.TComponent.Notification">TComponent.Notification</link>
</seealso>
</element>
<element name="TDBEdit.Notification.AComponent">
<short>Component for the notification.</short>
</element>
<element name="TDBEdit.Notification.Operation">
<short>Operation for the notification.</short>
</element>
<element name="TDBEdit.EditCanModify">
<short>Indicates if the control can modify the text for the control value.</short>
<descr>
<p>
<var>EditCanModify</var> is an overridden
<var>Boolean</var> function in TDBEdit. The return value contains the value for the
<var>CanModify</var> property in the
<var>TFieldDataLink</var> instance in the control.
</p>
<remark>
EditCanModify does <b>NOT</b> call the inherited method which always returns <b>True</b>. In addition, it is provided to maintain Delphi code compatibility; it is not referenced directly by any methods in the implementation of the control or its descendants.
</remark>
</descr>
<seealso>
<link id="TFieldDataLink.CanModify"/>
<link id="#lcl.maskedit.TCustomMaskEdit.EditCanModify">TCustomMaskEdit.EditCanModify</link>
</seealso>
</element>
<element name="TDBEdit.EditCanModify.Result">
<short>True when the control can modify the value for the field in the linked dataset.</short>
</element>
<element link="#LCL.MaskEdit.TCustomMaskEdit.GetEditText" name="TDBEdit.GetEditText"/>
<element link="#LCL.MaskEdit.TCustomMaskEdit.GetEditText.Result" name="TDBEdit.GetEditText.Result"/>
<element name="TDBEdit.Change">
<short>Performs actions needed when the value for the control has been changed.</short>
<descr>
<p>
<var>Change</var> is an overridden procedure in
<var>TDBEdit</var> used to ensure that the internal
<var>TFieldDataLink</var> instance for the control is notified when the value for the control has been modified. Change calls the
<var>Modified</var> method in
<var>TFieldDataLink</var> to perform the notification, and calls the inherited Change method.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Modified"/>
<link id="TFieldDataLink.UpdateData"/>
<link id="#lcl.maskedit.TCustomMaskEdit.Change">TCustomMaskEdit.Change</link>
<link id="#fcl.db.TDataLink.UpdateRecord">TDataLink.UpdateRecord</link>
</seealso>
</element>
<element name="TDBEdit.Reset">
<short>Cancels pending changes to the linked dataset.</short>
<descr>
<p>
<var>Reset</var> is an overridden method in
<var>TDBEdit</var> which ensures that the internal
<var>TFieldDataLink</var> instance in the control is reset when pending changes to the control value are cancelled. Reset calls the Reset method in TFieldDataLink to perform the notification, signal its
<var>OnDataChange</var> event handler, and to reset the state for its DataSource. Reset calls the inherited method prior to exit.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Reset"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="#lcl.maskedit.TCustomMaskEdit.Reset">TCustomMaskEdit.Reset</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
</seealso>
</element>
<element name="TDBEdit.WMSetFocus">
<short>Ensures that the control has the input focus.</short>
<descr>
<p>
<var>WMSetFocus</var> is an overridden method in TDBEdit. WMSetFocus ensures that the text for the control is updated before calling the inherited method. This includes applying an edit mask assigned to the control when it has input focus.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomEdit.WMSetFocus">TCustomEdit.WMSetFocus</link>
</seealso>
</element>
<element name="TDBEdit.WMSetFocus.Message">
<short>Window message handled for the control.</short>
</element>
<element name="TDBEdit.WMKillFocus">
<short>
Ensures that the liked dataset is updated when the modified control loses input focus.
</short>
<descr/>
<seealso>
<link id="#lcl.stdctrls.TCustomEdit.WMKillFocus">TCustomEdit.WMKillFocus</link>
</seealso>
</element>
<element name="TDBEdit.WMKillFocus.Message">
<short>Window message handled for the control.</short>
</element>
<element name="TDBEdit.WndProc">
<short>Handles the specified LCL message for the control.</short>
<descr>
<p>
<var>WndProc</var> is an overridden method in TDBEdit. It is used to process the specified LCL message for the control. WndProc ensures that the message is applied to the linked dataset when it can be modified, and handles the following LCL messages:
</p>
<ul>
<li>LM_CLEAR</li>
<li>LM_CUT</li>
<li>LM_PASTE</li>
</ul>
<p>The Edit and Modified methods in the internal TFieldDataLink instance are called, and the DataChange method is called to post changes for the control. No actions are performed on the dataset when it cannot be modified, but the result value in Message is set to 1 to prevent calling the default procedure for the window.
</p>
<p>WndProc calls the inherited method prior to exit.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.CanModify"/>
<link id="TFieldDataLink.Edit"/>
<link id="TFieldDataLink.Modified"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="#lcl.lmessages.TLMessage">TLMessage</link>
<link id="#lcl.lmessages.LM_CLEAR">LM_CLEAR</link>
<link id="#lcl.lmessages.LM_CUT">LM_CUT</link>
<link id="#lcl.lmessages.LM_PASTE">LM_PASTE</link>
<link id="#lcl.stdctrls.TCustomEdit.WndProc">TCustomEdit.WndProc</link>
</seealso>
</element>
<element name="TDBEdit.WndProc.Message">
<short>LCL message examined and applied in the method.</short>
</element>
<element name="TDBEdit.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, then creates and configures the internal
<var>TFieldDataLink</var> instance used in the control. The DataChange and UpdateData methods are assigned to the
<var>OnDataChange</var> and
<var>OnUpdateData</var> event handlers in the TFieldDataLink instance.
</p>
</descr>
<errors/>
<seealso>
<link id="TFieldDataLink.OnDataChange"/>
<link id="TFieldDataLink.OnUpdateData"/>
<link id="#lcl.maskedit.TCustomMaskEdit.Create">TCustomMaskEdit.Create</link>
</seealso>
</element>
<element name="TDBEdit.Create.AOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TDBEdit.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 members in the class instance are freed prior to destruction of the class instance. Destroy calls the inherited destructor prior to exit.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomEdit.Destroy">TCustomEdit.Destroy</link>
</seealso>
</element>
<element name="TDBEdit.ExecuteAction">
<short>Provides support for TBasicAction in the control.</short>
<descr>
<p>
<var>ExecuteAction</var> is an overridden method in
<var>TDBEdit</var>. It calls the inherited method, and when the action is not handled in the ancestor, executes
<var>AAction</var> using the
<var>ExecuteAction</var> method in the internal
<var>TFieldDataLink</var> instance in the class.
</p>
<p>The return value is <b>True</b> if the action was executed in the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.ExecuteAction">TComponent.ExecuteAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TDBEdit.ExecuteAction.Result">
<short>True if the action was executed in the method.</short>
</element>
<element name="TDBEdit.ExecuteAction.AAction">
<short>Action examined and executed in the method.</short>
</element>
<element name="TDBEdit.UpdateAction">
<short>Updates the specified action to reflect the current state in the linked dataset.
</short>
<descr>
<p>
<var>UpdateAction</var> is an overridden
<var>Boolean</var> function in
<var>TDBEdit</var>. UpdateAction is called when the
<var>Application</var> enters an idle state to ensure that the action reflects the current state for a linked dataset.
</p>
<p>
<var>AAction</var> is the
<var>TBasicAction</var> updated in the method.
</p>
<p>UpdateAction calls the inherited method, and when the internal dataset link has been assigned, executes its UpdateAction method. The return value is <b>True</b> when AAction is updated using either the inherited method, or the method in the linked dataset. The return value is <b>False</b> when AAction could not be updated in the method.
</p>
</descr>
<seealso>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
<link id="#rtl.classes.TComponent.UpdateAction">TComponent.UpdateAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TDBEdit.UpdateAction.Result">
<short>True if the action was updated in the method.</short>
</element>
<element name="TDBEdit.UpdateAction.AAction">
<short>Action examined and updated in the method.</short>
</element>
<element name="TDBEdit.Field">
<short>Provides access to the field definition for the data-aware control.</short>
<descr>
<p>
<var>Field</var> is a read-only
<var>TField</var> property which provides access to the field definition to which the data-aware control is linked. Read access for the property is redirected to the Field property in the internal TFieldDataLink class instance. The value in Field is updated when a new value is assigned to the Field in the TFieldDataLink instance.
</p>
<p>Use <var>DataField</var> to read or write the field name used for the data-aware control. Use <var>DataSource</var> to specify the data source with the dataset containing the specified field name.
</p>
</descr>
<seealso>
<link id="TDBEdit.DataField"/>
<link id="TDBEdit.DataSource"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="#fcl.db.TField">TField</link>
</seealso>
</element>
<element name="TDBEdit.CustomEditMask">
<short>Indicates if a custom edit mask is used in the control.</short>
<descr>
<p>
<var>CustomEditMask</var> is a
<var>Boolean</var> property which indicates if an edit mask other than the one defined for the
<var>Field</var> in the linked dataset is used in the control.
</p>
<p>When set to <b>True</b>, the features from the ancestor class are used to provide the editing mask. Set the value in the <var>EditMask</var> property when CustomEditMask is set to <b>True</b>.
</p>
<p>When set to <b>False</b>, the EditMask defined in the internal TFieldDataLink instance (and loaded from the database field definition) is used in the control.
</p>
</descr>
<seealso>
<link id="TDBEdit.EditMask"/>
<link id="TFieldDataLink.Field"/>
<link id="#lcl.maskedit.TCustomMaskEdit.EditMask">TCustomMaskEdit.EditMask</link>
</seealso>
</element>
<element name="TDBEdit.DataField">
<short>Contains the name of the field with the value for the control.</short>
<descr>
<p>
<var>DataField</var> is a
<var>String</var> property which contains the name for the field in the linked dataset where the value for the control is read and written. Read and write access to the property value are redirected to the
<var>FieldName</var> property in the internal
<var>TFieldDataLink</var> instance for the control. Changing the value in DataField causes the value in
<var>Field</var> to be updated.
</p>
<p>Set the value in <var>DataSource</var> to the component which provides access to the dataset for the data-aware control.
</p>
</descr>
<seealso>
<link id="TDBEdit.Field"/>
<link id="TDBEdit.DataSource"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element name="TDBEdit.DataSource">
<short>Provides access to the dataset with content for the control.
</short>
<descr>
<p>
<var>DataSource</var> is a <var>TDataSource</var> property which provides access to the content for the data-aware control. DataSource is used in conjunction with the <var>Field</var> property to determine the dataset and field definition used when reading the value for the control.
</p>
<p>
Read and write access to the property value is redirected to the DataSource property in the internal <var>TFieldDataLink</var> instance used in the control. Assigning a new value to the property causes the <var>ChangeDataSource</var> routine to be called to apply the value to the internal TFieldDataLink instance.
</p>
<p>
Use the <var>DataField</var> property to specify the field name accessed in the linked dataset.
</p>
</descr>
<seealso>
<link id="TDBEdit.DataField"/>
<link id="TFieldDataLink.FieldName"/>
<link id="ChangeDataSource"/>
<link id="#fcl.db.TDataSource">TDataSource</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
</seealso>
</element>
<element name="TDBEdit.ReadOnly">
<short>Indicates if the control cannot modify the field in the linked dataset.</short>
<descr>
<p>
<var>ReadOnly</var> is a
<var>Boolean</var> property which indicates if the control cannot modify its
<var>DataField</var> in the linked dataset. When set to
<b>True</b>, the underlying field value cannot be modified using the control.
</p>
<p>Read and write access for the property value are redirected to the ReadOnly property in the TFieldDataLink instance used in the control.
</p>
<remark>
A value assigned to ReadOnly may be overridden by the Field definition from the target database table.
</remark>
</descr>
<seealso>
<link id="TDBEdit.DataField"/>
<link id="TDBEdit.DataSource"/>
<link id="TDBEdit.Field"/>
<link id="TFieldDataLink.Field"/>
<link id="#lcl.stdctrls.TCustomEdit.ReadOnly">TCustomEdit.ReadOnly</link>
<link id="#fcl.db.TDataLink.ReadOnly">TDataLink.ReadOnly</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Align" name="TDBEdit.Align"/>
<element link="#lcl.stdctrls.TCustomEdit.Alignment" name="TDBEdit.Alignment"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBEdit.Anchors"/>
<element link="#lcl.stdctrls.TCustomEdit.AutoSelect" name="TDBEdit.AutoSelect"/>
<element link="#lcl.controls.TControl.AutoSize" name="TDBEdit.AutoSize"/>
<element link="#lcl.controls.TControl.BiDiMode" name="TDBEdit.BiDiMode"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBEdit.BorderSpacing"/>
<element name="TDBEdit.BorderStyle" link="#lcl.controls.TWinControl.BorderStyle"/>
<element name="TDBEdit.CharCase" link="#lcl.stdctrls.TCustomEdit.CharCase"/>
<element link="#lcl.controls.TControl.Color" name="TDBEdit.Color"/>
<element link="#lcl.controls.TControl.Constraints" name="TDBEdit.Constraints"/>
<element link="#lcl.controls.TWinControl.DoubleBuffered" name="TDBEdit.DoubleBuffered"/>
<element link="#lcl.controls.TControl.DragCursor" name="TDBEdit.DragCursor"/>
<element link="#lcl.controls.TControl.DragKind" name="TDBEdit.DragKind"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBEdit.DragMode"/>
<element link="#lcl.controls.TControl.Enabled" name="TDBEdit.Enabled"/>
<element link="#LCL.MaskEdit.TCustomMaskEdit.EditMask" name="TDBEdit.EditMask"/>
<element link="#lcl.controls.TControl.Font" name="TDBEdit.Font"/>
<element link="#lcl.stdctrls.TCustomEdit.MaxLength" name="TDBEdit.MaxLength"/>
<element link="#lcl.controls.TControl.ParentBiDiMode" name="TDBEdit.ParentBiDiMode"/>
<element link="#lcl.controls.TControl.ParentColor" name="TDBEdit.ParentColor"/>
<element link="#lcl.controls.TWinControl.ParentDoubleBuffered" name="TDBEdit.ParentDoubleBuffered"/>
<element link="#lcl.controls.TControl.ParentFont" name="TDBEdit.ParentFont"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBEdit.ParentShowHint"/>
<element link="#lcl.stdctrls.TCustomEdit.PasswordChar" name="TDBEdit.PasswordChar"/>
<element link="#lcl.controls.TControl.PopupMenu" name="TDBEdit.PopupMenu"/>
<element link="#lcl.controls.TControl.ShowHint" name="TDBEdit.ShowHint"/>
<element link="#lcl.controls.TWinControl.TabOrder" name="TDBEdit.TabOrder"/>
<element link="#lcl.controls.TWinControl.TabStop" name="TDBEdit.TabStop"/>
<element name="TDBEdit.TextHint" link="#lcl.stdctrls.TCustomEdit.TextHint"/>
<element link="#lcl.controls.TControl.Visible" name="TDBEdit.Visible"/>
<element link="#lcl.stdctrls.TCustomEdit.OnChange" name="TDBEdit.OnChange"/>
<element name="TDBEdit.OnClick" link="#lcl.controls.TControl.OnClick"/>
<element name="TDBEdit.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element name="TDBEdit.OnDblClick" link="#lcl.controls.TControl.OnDblClick"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBEdit.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBEdit.OnDragOver"/>
<element link="#lcl.controls.TControl.OnEditingDone" name="TDBEdit.OnEditingDone"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBEdit.OnEndDrag"/>
<element link="#lcl.controls.TWinControl.OnEnter" name="TDBEdit.OnEnter"/>
<element link="#lcl.controls.TWinControl.OnExit" name="TDBEdit.OnExit"/>
<element name="TDBEdit.OnKeyDown">
<short>Event handler signalled when a key is down while control has focus.</short>
<descr>
<p>
<var>OnKeyDown</var> differs from the method in <link id="#lcl.controls.TWinControl">TWinControl</link> in that the key may have already been down when the control received focus; with <var>OnKeyPress</var> the key needs to become pressed while the control has focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyDown">TWinControl.OnKeyDown</link>
</seealso>
</element>
<element name="TDBEdit.OnKeyPress">
<short>
Event handler signalled when a key is being pressed while the control has focus.
</short>
<descr>
<p>
<var>OnKeyPress</var> differs from the method in <link id="#lcl.controls.TWinControl">TWInControl</link> in that the key needs to become pressed while the control has focus; with <var>OnKeyDown</var> the key may have already been down when the control received focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyPress">TWinControl.OnKeyPress</link>
</seealso>
</element>
<element name="TDBEdit.OnKeyUp">
<short>
Event handler signalled when a key becomes up (not pressed) while the control has focus.
</short>
<descr>
<p>
<var>OnKeyUp</var> is an event handler signalled when a key is up (not pressed) while the control has focus. The key may already have been up when the control received focus, or a pressed key may become released during the time the control has focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyUp">TWinControl.OnKeyUp</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBEdit.OnMouseDown"/>
<element link="#lcl.controls.TControl.OnMouseEnter" name="TDBEdit.OnMouseEnter"/>
<element link="#lcl.controls.TControl.OnMouseLeave" name="TDBEdit.OnMouseLeave"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBEdit.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseUp" name="TDBEdit.OnMouseUp"/>
<element link="#lcl.controls.TControl.OnMouseWheel" name="TDBEdit.OnMouseWheel"/>
<element link="#lcl.controls.TControl.OnMouseWheelDown" name="TDBEdit.OnMouseWheelDown"/>
<element link="#lcl.controls.TControl.OnMouseWheelUp" name="TDBEdit.OnMouseWheelUp"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBEdit.OnStartDrag"/>
<element link="#lcl.controls.TWinControl.OnUTF8KeyPress" name="TDBEdit.OnUTF8KeyPress"/>
<element name="TDBText">
<short>Displays a string value stored in a dataset field.</short>
<descr>
<p>
<var>TDBText</var> is a
<var>TCustomLabel</var> descendant which implements a component to display the text content in a dataset field in the manner used for a label control. The stored field value is not editable in the control - just like a label component.
</p>
<p>Use the <var>Field</var> property to access the field definition used to provide the value for the control.
</p>
</descr>
<seealso>
<link id="TDBText.Field"/>
<link id="#fcl.db.TField">TField</link>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TDBText.FDataLink"/>
<element name="TDBText.DataChange">
<short>Updates the control display value when the linked dataset is changed.
</short>
<descr>
<p>
<var>DataChange</var> is used to perform actions needed when the linked dataset for the control has been changed. In TDBText, this requires setting the
<var>Caption</var> property for the control. DataChange uses the
<var>Field</var> property (when assigned) to get the display text for the field. At design--time, the
<var>Name</var> property is used when Field is unassigned. At run-time, an empty string (
<b>''</b>) is used when Field is unassigned.
</p>
<p>DataChange is assigned as the <var>OnDataChange</var> event handler in the internal <var>TFieldDataLink</var> instance.
</p>
</descr>
<seealso>
<link id="TDBText.Field"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="#lcl.controls.TControl.Caption">TControl.Caption</link>
<link id="#rtl.classes.TComponent.Name">TComponent.Name</link>
</seealso>
</element>
<element name="TDBText.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBText.GetDataField">
<short>Gets the name of the field in the linked dataset with the value for the control.
</short>
<descr/>
<seealso>
<link id="TDBText.DataField"/>
</seealso>
</element>
<element name="TDBText.GetDataField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBText.GetDataSource">
<short>Gets the value for the DataSource property.</short>
<descr/>
<seealso>
<link id="TDBText.DataSource"/>
</seealso>
</element>
<element name="TDBText.GetDataSource.Result">
<short>Value for the property.</short>
</element>
<element name="TDBText.GetField">
<short>Gets the value for the Field property.</short>
<descr/>
<seealso>
<link id="TDBText.Field"/>
</seealso>
</element>
<element name="TDBText.GetField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBText.SetDataField">
<short>Sets the value for the DataField property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBText.SetDataField.Value">
<short>New value for the property.</short>
</element>
<element name="TDBText.SetDataSource">
<short>Sets the value for the DataSource property.</short>
<descr/>
<seealso>
<link id="TDBText.DataSource"/>
</seealso>
</element>
<element name="TDBText.SetDataSource.Value">
<short>New value for the property.</short>
</element>
<element name="TDBText.CMGetDataLink">
<short>Handles the CM_GETDATALINK message for the control.</short>
<descr/>
<seealso/>
</element>
<element name="TDBText.CMGetDataLink.Message">
<short>Message handled and updated in the method.</short>
</element>
<element name="TDBText.Notification">
<short>
Handles a notification when a component is added to or removed from the control.
</short>
<descr>
<p>
<var>Notification</var> is called whenever a child component is destroyed, inserted or removed from the list of owned component. Components that were requested to send a notification when they are freed ((with <link id="TComponent.FreeNotification">FreeNotification</link>) will also call <var>Notification</var> when they are freed.
</p>
<p>
The <var>AComponent</var> parameter specifies which component sends the notification, and <var>Operation</var> specifies whether the component is being inserted into or removed from the child component list, or whether it is being destroyed.
</p>
<p>
Descendants of <var>TComponent</var> can use <link id="TComponent.FreeNotification">FreeNotification</link> to handle notifications when objects are freed. By overriding the <var>Notification</var> method, they can do special processing (typically, set a reference to this component to <var>Nil</var>) when this component is destroyed. The <var>Notification</var> method is called quite often in the streaming process, so speed should be a consideration when overriding this method.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomLabel.Notification">TCustomLabel.Notification</link>
</seealso>
</element>
<element name="TDBText.WSRegisterClass">
<short>
Registers the class type used to create new instance of the control for the Widgetset.
</short>
<descr>
<p>
<var>WSRegisterClass</var> is an overridden method used to register the widgetset class type used to create new instances of the control. WSRegisterClass calls the inherited method, and excludes loading the <var>Caption</var> property during LCL streaming.
</p>
</descr>
<version>
The <var>Caption</var> property was included in LCL component streaming prior to LCL version 0.9.29.
</version>
<seealso>
<link id="TDBText.Field"/>
<link id="#lcl.stdctrls.TCustomLabel.WSRegisterClass">TCustomLabel.WSRegisterClass</link>
</seealso>
</element>
<element name="TDBText.Loaded">
<short>Performs actions when LCL component streaming has been completed.</short>
<descr>
<p>
<var>Loaded</var> is called by the streaming system when a root component was completely read from a stream and all properties and references to other objects have been resolved by the streaming system. Descendants of
<var>TComponent</var> should override this method to do some additional processing of properties after all published properties have been set from values obtained from the stream.
</p>
<p>Application programmers should never call <var>Loaded</var> directly; this is done automatically by the LCL streaming system.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Loaded">TControl.Loaded</link>
</seealso>
</element>
<element name="TDBText.Notification.AComponent">
<short>Component affected by the notification.</short>
</element>
<element name="TDBText.Notification.Operation">
<short>Operation for the component.</short>
</element>
<element name="TDBText.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for
<var>TDBText</var>. It calls the inherited Create method, and sets up the internal
<var>TFieldDataLink</var> member used in the component.
</p>
</descr>
<seealso>
<link id="TDBText.Create"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="TFieldDataLink"/>
<link id="#lcl.stdctrls.TCustomLabel.Create">TCustomLabel.Create</link>
</seealso>
</element>
<element name="TDBText.Create.AOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TDBText.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for
<var>TDBText</var>. It frees the internal field data link in the class instance, and calls the inherited
<var>Destroy</var> method.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TGraphicControl.Destroy">TGraphicControl.Destroy</link>
</seealso>
</element>
<element name="TDBText.ExecuteAction">
<short>Implements support for standard actions in the control.</short>
<descr>
<p>
<var>ExecuteAction</var> is an overridden
<var>Boolean</var> function used to implement support for
<var>TBasicAction</var> in the control. ExecuteAction extends the inherited method by using the internal field data link (when assigned) to perform the requested action.
</p>
<p>
<var>AAction</var> is the
<var>TBasicAction</var> instance examined and potentially executed in the method.
</p>
<p>The return value for the method is <b>True</b> when the action in AAction was executed for the control.
</p>
</descr>
<seealso>
<link id="TDBText.UpdateAction"/>
<link id="#fcl.db.TDataLink.ExecuteAction">TDataLink.ExecuteAction</link>
<link id="#rtl.classes.TComponent.ExecuteAction">TComponent.ExecuteAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TDBText.ExecuteAction.Result">
<short>Returns True when the standard action was executed for the control.</short>
</element>
<element name="TDBText.ExecuteAction.AAction">
<short>Standard action examined in the method.</short>
</element>
<element name="TDBText.UpdateAction">
<short>Updates the specified action to reflect the current state in the linked dataset.
</short>
<descr>
<p>
<var>UpdateAction</var> is an overridden
<var>Boolean</var> function in
<var>TDBText</var>. UpdateAction is called when the
<var>Application</var> enters an idle state to ensure that the action reflects the current state for a linked dataset.
</p>
<p>
<var>AAction</var> is the
<var>TBasicAction</var> updated in the method.
</p>
<p>UpdateAction calls the inherited method, and when the internal dataset link has been assigned, executes its UpdateAction method. The return value is <b>True</b> when AAction is updated using either the inherited method, or the method in the linked dataset. The return value is <b>False</b> when AAction could not be updated in the method.
</p>
</descr>
<seealso>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
<link id="#rtl.classes.TComponent.UpdateAction">TComponent.UpdateAction</link>
</seealso>
</element>
<element name="TDBText.Field">
<short>Provides access to the field definition for the data-aware control.</short>
<descr>
<p>
<var>Field</var> is a read-only
<var>TField</var> property which provides access to the field definition to which the data-aware control is linked. Read access for the property is redirected to the Field property in the internal TFieldDataLink class instance.
</p>
<p>Use <var>DataField</var> to read or write the field name used for the data-aware control. Use <var>DataSource</var> to specify the data source with the dataset containing the specified field name.
</p>
</descr>
<seealso>
<link id="TDBText.DataField"/>
<link id="TDBText.DataSource"/>
<link id="#fcl.db.TField">TField</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Align" name="TDBText.Align"/>
<element link="#lcl.stdctrls.TCustomLabel.Alignment" name="TDBText.Alignment"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBText.Anchors"/>
<element link="#lcl.controls.TControl.AutoSize" name="TDBText.AutoSize"/>
<element link="#lcl.controls.TControl.BiDiMode" name="TDBText.BiDiMode"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBText.BorderSpacing"/>
<element link="#lcl.controls.TControl.Color" name="TDBText.Color"/>
<element link="#lcl.controls.TControl.Constraints" name="TDBText.Constraints"/>
<element name="TDBText.DataField">
<short>
The name of the field, as a string (i.e. cannot be referred to as an Index).
</short>
<descr>
<p>
<var>DataField</var> is a
<var>String</var> property which contains the field name in the linked dataset with the value displayed in the control. Read and write access for the property value is redirected to the
<var>FieldName</var> property in the internal
<var>TFieldDataLink</var> instance used in the control.
</p>
<p>Use <var>DataSource</var> to specify the datasource with the linked dataset for the control. Use <var>Field</var> to access the definition and metadata for the field in the linked dataset.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.FieldName"/>
<link id="TDBText.DataSource"/>
<link id="TDBText.Field"/>
</seealso>
</element>
<element name="TDBText.DataSource">
<short>Provides access to the content displayed in the control.
</short>
<descr>
<p>
<var>DataSource</var> is a
<var>TDataSource</var> property which provides access to the content for the data-aware control. DataSource is used in conjunction with the
<var>Field</var> property to determine the dataset and field definition used when reading the value for the control.
</p>
<p>Read and write access to the property value is redirected to the DataSource property in the internal TFieldDataLink instance used in the control. Assigning a new value to the property causes the <var>ChangeDataSource</var> routine to be called to apply the value to the internal TFieldDataLink instance.
</p>
<p>Use the <var>DataField</var> property to specify the field name accessed in the linked dataset.
</p>
</descr>
<seealso>
<link id="TDBText.DataField"/>
<link id="ChangeDataSource"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataSource">TDataSource</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.DragCursor" name="TDBText.DragCursor"/>
<element link="#lcl.controls.TControl.DragKind" name="TDBText.DragKind"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBText.DragMode"/>
<element link="#lcl.controls.TControl.Enabled" name="TDBText.Enabled"/>
<element link="#lcl.stdctrls.TCustomLabel.FocusControl" name="TDBText.FocusControl"/>
<element link="#lcl.controls.TControl.Font" name="TDBText.Font"/>
<element name="TDBText.Layout" link="#lcl.stdctrls.TCustomLabel.Layout"/>
<element link="#lcl.controls.TControl.ParentBiDiMode" name="TDBText.ParentBiDiMode"/>
<element link="#lcl.controls.TControl.ParentColor" name="TDBText.ParentColor"/>
<element link="#lcl.controls.TControl.ParentFont" name="TDBText.ParentFont"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBText.ParentShowHint"/>
<element link="#lcl.controls.TControl.PopupMenu" name="TDBText.PopupMenu"/>
<element name="TDBText.ShowAccelChar">
<short>
Enables or disables drawing of accelerator or shortcut keys for the label.
</short>
<descr>
<p>
<var>ShowAccelChar</var> controls if an underlined character in the label is drawn for the accelerator or shortcut key. Changing the value for the property causes the WidgetSetClass to be notified of the potential change to the Caption and size for the control.
</p>
<p>The default value for the property is <b>True</b>.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomLabel.ShowAccelChar">TCustomLabel.ShowAccelChar</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.ShowHint" name="TDBText.ShowHint"/>
<element link="#lcl.stdctrls.TCustomLabel.Transparent" name="TDBText.Transparent"/>
<element name="TDBText.Visible">
<short>Indicates if the control is displayed.</short>
<descr>
<p>The <var>Visible</var> property represents the ability to see a visual control. If Visible is set to <b>True</b> the control is shown, otherwise it is hidden. Calling Show sets Visible to <b>True</b>. Setting Visible to <b>False</b> is equivalent to calling the <var>Hide</var> method.
</p>
<remark>The Visible property does not depend on control's parent visibility. Use <var>IsVisible</var> method to consider this and get the real visibility.
</remark>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Visible">TControl.Visible</link>
</seealso>
</element>
<element name="TDBText.WordWrap">
<short>Indicates if text is wrapped at the right edge of the control.</short>
<descr>
<p>
<var>WordWrap</var> indicates whether a word is to be wrapped to the next line if the text is about to become too long for the width available in the control.
</p>
<p>
The default value for the property is <b>False</b>.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomLabel.WordWrap">TCustomLabel.WordWrap</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.OnClick" name="TDBText.OnClick"/>
<element link="#lcl.controls.TControl.OnDblClick" name="TDBText.OnDblClick"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBText.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBText.OnDragOver"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBText.OnEndDrag"/>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBText.OnMouseDown"/>
<element link="#lcl.controls.TControl.OnMouseEnter" name="TDBText.OnMouseEnter"/>
<element link="#lcl.controls.TControl.OnMouseLeave" name="TDBText.OnMouseLeave"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBText.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseUp" name="TDBText.OnMouseUp"/>
<element link="#lcl.controls.TControl.OnMouseWheel" name="TDBText.OnMouseWheel"/>
<element link="#lcl.controls.TControl.OnMouseWheelDown" name="TDBText.OnMouseWheelDown"/>
<element link="#lcl.controls.TControl.OnMouseWheelUp" name="TDBText.OnMouseWheelUp"/>
<element link="#lcl.controls.TControl.OnChangeBounds" name="TDBText.OnChangeBounds"/>
<element link="#lcl.controls.TControl.OnContextPopup" name="TDBText.OnContextPopup"/>
<element link="#lcl.controls.TControl.OnResize" name="TDBText.OnResize"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBText.OnStartDrag"/>
<element link="#lcl.stdctrls.TCustomLabel.OptimalFill" name="TDBText.OptimalFill"/>
<element name="TCustomDBListBox">
<short>Specifies a data-aware listbox control.</short>
<descr>
<p>
<var>TCustomDBListBox</var> is a
<var>TCustomListBox</var> descendant which specifies the base class for a data-aware listbox control. The control allows selection and storage of a value from a scrolling list of choices to the current record in a linked dataset.
</p>
<p>TCustomDBListBox is the ancestor class for <var>TDBListBox</var>. Applications should create instances of the derived class.
</p>
<p>Use the <var>Items</var> property to define the list of choices displayed in the listbox control.
</p>
<p>The <var>DataSource</var> property provides access to the linked dataset where the selected value is stored. <var>Field</var> contains the field definition for the column in the dataset where the selected value is stored. Use the <var>DataField</var> property to specify the name for the Field.
</p>
</descr>
<seealso>
<link id="TDBListBox"/>
<link id="TDBListBox.DataSource"/>
<link id="TDBListBox.DataField"/>
<link id="#lcl.stdctrls.TCustomListBox.Items">TCustomListBox.Items</link>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TCustomDBListBox.GetDataField">
<short>
<var>GetDataField</var> - returns the name of the data field as a string.
</short>
<seealso>
<link id="TCustomDBListBox.DataField"/>
</seealso>
</element>
<element name="TCustomDBListBox.GetDataField.Result">
<short>Value for the DataField property.</short>
</element>
<element name="TCustomDBListBox.GetDataSource">
<short>
<var>GetDataSource</var> - returns the identity of the data source.
</short>
<seealso>
<link id="TCustomDBListBox.DataSource"/>
</seealso>
</element>
<element name="TCustomDBListBox.GetDataSource.Result">
<short>Value for the DataSource property.</short>
</element>
<element name="TCustomDBListBox.GetField">
<short>
<var>GetField</var> - returns the identity of the field.
</short>
<seealso>
<link id="TCustomDBListBox.Field"/>
</seealso>
</element>
<element name="TCustomDBListBox.GetField.Result">
<short>Value for the Field property.</short>
</element>
<element name="TCustomDBListBox.GetReadOnly">
<short>
<var>GetReadOnly</var> - fetches the
<var>ReadOnly</var> status from the field datalink rather than using the inherited ReadOnly status.
</short>
<seealso>
<link id="TCustomDBListBox.ReadOnly"/>
</seealso>
</element>
<element name="TCustomDBListBox.GetReadOnly.Result">
<short>Value for the ReadOnly property.</short>
</element>
<element name="TCustomDBListBox.SetReadOnly">
<short>
<var>SetReadOnly</var> - changes the datalink
<var>ReadOnly</var> property as well as the local property, to that specified by
<var>Value</var>.
</short>
<seealso>
<link id="TCustomDBListBox.ReadOnly"/>
</seealso>
</element>
<element name="TCustomDBListBox.SetReadOnly.Value">
<short>New value for the ReadOnly property.</short>
</element>
<element name="TCustomDBListBox.SetDataField">
<short>
<var>SetDataField</var> - links to the field in the datalink with the given name.
</short>
<seealso>
<link id="TCustomDBListBox.DataField"/>
</seealso>
</element>
<element name="TCustomDBListBox.SetDataField.Value">
<short>New value for the DataField property.</short>
</element>
<element name="TCustomDBListBox.SetDataSource">
<short>
<var>SetDataSource</var> - changes the attached data source to the one specified by AValue.
</short>
<seealso>
<link id="TCustomDBListBox.DataSource"/>
</seealso>
</element>
<element name="TCustomDBListBox.SetDataSource.Value">
<short>New value for the DataSource property.</short>
</element>
<element name="TCustomDBListBox.CMGetDataLink">
<short>
<var>CMGetDataLink</var> - control message method for obtaining the data link.
</short>
</element>
<element name="TCustomDBListBox.CMGetDataLink.Message">
<short>Message examined and updated in the method.</short>
</element>
<element name="TCustomDBListBox.FDataLink">
<short>
<var>FDataLink</var> - local variable holding the identity of the field data link.
</short>
</element>
<element name="TCustomDBListBox.DataChange">
<short>Performs actions needed when the linked dataset is repositioned.
</short>
<descr>
<p>
<var>DataChange</var> is an method used to perform actions needed when the control needs to be refreshed after a positioning the linked dataset. DataChange is an abstract virtual method in
<var>TCustomDBListBox</var>, and must be implemented in a descendent class to perform the actions required for the control.
</p>
<p>DataChange is assigned to the <var>OnDataChange</var> event handler in the <var>TFieldDataLink</var> instance used in data-aware controls.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.OnDataChange"/>
<link id="TDBListBox.DataChange"/>
<link id="TDBLookupListBox.DataChange"/>
</seealso>
</element>
<element name="TCustomDBListBox.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TCustomDBListBox.KeyDown">
<short>Handles key down events for the control.</short>
<descr>
<p>
<var>KeyDown</var> is an overridden method in
<var>TCustomDBListBox</var> which applies the specified virtual key code and modifier to the control. KeyDown calls the inherited method, and ensures that the linked dataset is updated as needed for the key down event. The following actions are performed for the corresponding keys:
</p>
<dl>
<dt>VK_ESCAPE</dt>
<dd>Calls the <var>TFieldDataLink.Reset</var> method to cancel the edit operation. Key is set to VK_UNKNOWN.
</dd>
<dt>VK_DOWN, VK_UP</dt>
<dd>Calls the <var>TFieldDataLink.Edit</var> method after changing the selected item in the control.
</dd>
</dl>
</descr>
<seealso>
<link id="TFieldDataLink.Reset"/>
<link id="TFieldDataLink.Edit"/>
<link id="#lcl.controls.TWinControl.KeyDown">TWinControl.KeyDown</link>
</seealso>
</element>
<element name="TCustomDBListBox.KeyDown.Key">
<short>Virtual key code applied in the method.</short>
</element>
<element name="TCustomDBListBox.KeyDown.Shift">
<short>Modifier for the key code applied in the method.</short>
</element>
<element name="TCustomDBListBox.Notification">
<short>
Handles notifications when a component is added to or removed from the control.
</short>
<descr>
<p>
<var>Notification</var> is an overridden method in <var>TCustomDBListBox</var>. Notification calls the inherited method, and ensures that an assigned <var>DataSource</var> is set to <b>Nil</b> when <var>Operation</var> contains <var>opRemove</var>.
</p>
</descr>
<seealso>
<link id="TCustomDBListBox.DataSource"/>
<link id="#rtl.classes.TComponent.Notification">TComponent.Notification</link>
</seealso>
</element>
<element link="#rtl.Classes.TComponent.Notification.AComponent" name="TCustomDBListBox.Notification.AComponent"/>
<element link="#rtl.Classes.TComponent.Notification.Operation" name="TCustomDBListBox.Notification.Operation"/>
<element name="TCustomDBListBox.UpdateData">
<short>
<var>UpdateData</var> - method for applying any pending changes to the data.
</short>
<descr>
<p>
<var>UpdateData</var> is a virtual abstract method in
<var>TCustomDBListBox</var>, and must be implemented in a descendent class (such as
<var>TDBListBox</var> or
<var>TDBLookupListBox</var>) to perform the actions needed to update a linked dataset using the current selection in the control.
</p>
<p>UpdateData is assigned to the <var>OnUpdateData</var> event handler in the <var>TFieldDataLink</var> instance for data-aware controls.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.OnUpdateData"/>
<link id="TDBListBox.UpdateData"/>
<link id="TDBLookupListBox.UpdateData"/>
</seealso>
</element>
<element name="TCustomDBListBox.UpdateData.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TCustomDBListBox.SetItems">
<short>
<var>SetItems</var> - copies the specified Values into the
<var>Items</var> property.
</short>
<descr>
<p>
<var>SetItems</var> is overridden in <var>TCustomDBListBox</var> to ensure that the <var>DataChange</var> method is called when the new Values are assigned to the <var>Items</var> property.
</p>
</descr>
<seealso>
<link id="TCustomDBListBox.DataChange"/>
<link id="TCustomDBListBox.UpdateData"/>
<link id="#lcl.stdctrls.TCustomListBox.Items">TCustomListBox.Items</link>
</seealso>
</element>
<element name="TCustomDBListBox.SetItems.Values">
<short>New values for the property.</short>
</element>
<element name="TCustomDBListBox.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, and allocates and configures the internal <var>TFieldDataLink</var> used in the class instance. The <var>DataChange</var> and <var>UpdateData</var> methods are assigned as the <var>OnDataChange</var> and <var>OnUpdateData</var> event handlers in the TFieldDataLink instance.
</p>
</descr>
<seealso>
<link id="TCustomDBListBox.DataChange"/>
<link id="TCustomDBListBox.UpdateData"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="TFieldDataLink.OnUpdateData"/>
<link id="#lcl.stdctrls.TCustomListBox.Create">TCustomListBox.Create</link>
</seealso>
</element>
<element name="TCustomDBListBox.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<var>Destroy</var> is the overridden destructor for the class instance. Destroy frees resources allocated to internal members in the class instance, and calls the inherited destructor prior to exiting from the method.
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomListBox.Destroy">CustomListBox.Destroy</link>
</seealso>
</element>
<element name="TCustomDBListBox.ExecuteAction">
<short>Implements support for standard actions in the control.</short>
<descr>
<p>
<var>ExecuteAction</var> is an overridden <var>Boolean</var> function used to implement support for <var>TBasicAction</var> in the control. ExecuteAction extends the inherited method by using the internal field data link (when assigned) to perform the requested action.
</p>
<p>
<var>AAction</var> is the <var>TBasicAction</var> instance examined and potentially executed in the method.
</p>
<p>
The return value for the method is <b>True</b> when the action in AAction was executed for the control.
</p>
</descr>
<seealso>
<link id="TDBText.UpdateAction"/>
<link id="#fcl.db.TDataLink.ExecuteAction">TDataLink.ExecuteAction</link>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
<link id="#rtl.classes.TComponent.ExecuteAction">TComponent.ExecuteAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TCustomDBListBox.ExecuteAction.Result">
<short>True when the action is performed in the method.</short>
</element>
<element name="TCustomDBListBox.ExecuteAction.AAction">
<short>Action examined and executed in the method.</short>
</element>
<element name="TCustomDBListBox.UpdateAction">
<short>Updates the state for the specified action.</short>
<descr>
<p>
<var>UpdateAction</var> is an overridden
<var>Boolean</var> function used to update the state of the
<var>TBasicAction</var> (or descendant) instance in
<var>AAction</var>. The return value is
<b>True</b> when the action is updated in the method.
</p>
<p>UpdateAction calls the inherited method. When the return value is <b>False</b> and a linked dataset is available in the class instance, the <var>UpdateAction</var> method in TFieldDataLink is called to update the action.
</p>
</descr>
<seealso>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
<link id="#fcl.db.TDataLink.ExecuteAction">TDataLink.ExecuteAction</link>
<link id="#rtl.classes.TComponent.UpdateAction">TComponent.UpdateAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TCustomDBListBox.UpdateAction.Result">
<short>True if the action was updated in the method.</short>
</element>
<element name="TCustomDBListBox.UpdateAction.AAction">
<short>Action updated in the method.</short>
</element>
<element name="TCustomDBListBox.Field">
<short>Field definition in the linked dataset for the control.</short>
<descr>
<p>
<var>Field</var> is a read-only
<var>TField</var> property which contains the field definition used to access a column defined in the linked dataset for the control. Read access to the property is redirected to the
<var>Field</var> property in the internal
<var>TFieldDataLink</var> instance used in the control.
</p>
<p>Use the <var>DataField</var> property to specify the field name updated when a value is selected using the control. Use <var>DataSource</var> to specify the datasource component for the linked dataset.
</p>
</descr>
<seealso>
<link id="TCustomDBListBox.DataField"/>
<link id="TCustomDBListBox.DataSource"/>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TField">TField</link>
</seealso>
</element>
<element name="TCustomDBListBox.DataField">
<short>Name for the field in the linked dataset used in the control.</short>
<descr>
<p>
<var>DataField</var> is a
<var/>String property which contains the name of the field in the linked dataset for the control. It is the destination where a value selected in the control is stored.
</p>
<p>Read and write access for the property value is redirected to the FieldName property in the internal TFieldDataLink instance used in the control. Use Field to access the field definition and metadata for the column in the linked dataset.
</p>
<p>Use DataSource to specify the datasource component which provides access to the linked dataset for the control.
</p>
</descr>
<seealso>
<link id="TCustomDBListBox.DataSource"/>
<link id="TCustomDBListBox.Field"/>
<link id="TFieldDataLink.FieldName"/>
</seealso>
</element>
<element name="TCustomDBListBox.DataSource">
<short>Provides access to the linked dataset for the control.</short>
<descr>
<p>
<var>DataSource</var> is a
<var>TDataSource</var> property which contains the component used to access the linked dataset for the control. Read and write access for the property value are redirected to the
<var>DataSource</var> property in the internal
<var>TFieldDataLink</var> instance for the control. Changing the value in DataSource causes the
<var>ChangeDataSource</var> routine to be called to perform notification events and assignments for the TFieldDataLink instance.
</p>
<p>Use <var>DataField</var> to specify the name of the field in the linked dataset used to store the value selected in the control. Use <var>Field</var> to access the field definition and metadata for the column represented by DataField.
</p>
</descr>
<seealso>
<link id="TCustomDBListBox.DataField"/>
<link id="TCustomDBListBox.Field"/>
<link id="ChangeDataSource"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataSource">TDataSource</link>
</seealso>
</element>
<element name="TCustomDBListBox.ReadOnly">
<short>Indicates if the linked dataset for the control cannot be modified.</short>
<descr>
<p>
<var>ReadOnly</var> is a
<var>Boolean</var> property which indicates if the linked dataset for the control cannot be modified. Read and write access for the property value are redirected to the
<var>ReadOnly</var> property in the internal
<var>TFieldDataLink</var> instance for the control.
</p>
<p>The default value for the property is <b>False</b>.
</p>
<remark>
The value in the property may be changed during the course of editing. For example, setting ReadOnly to <b>False</b> when the linked dataset cannot actually be modified. Eventually, the property value gets updated to reflect the real read-only state for the linked dataset.
</remark>
</descr>
<seealso>
<link id="#fcl.db.TDataLink.ReadOnly">TDataLink.ReadOnly</link>
</seealso>
</element>
<element name="TDBListBox">
<short>Implements a data-aware version of <var>TListBox</var>.
</short>
<descr>
<p>
<var>TDBListBox</var> implements a data-aware version of
<var>TListBox</var>.
The control allows selection and storage of a value from a scrolling list of choices to the current record in a linked dataset.
</p>
<p>TDBListBox extends the <var>TCustomDBListBox</var> ancestor class to implement abstract/virtual methods, and to set the visibility for properties in the control.
</p>
<p>Use the <var>Items</var> property to define the list of choices displayed in the listbox control.
</p>
<p>The <var>DataSource</var> property provides access to the linked dataset where the selected value is stored. <var>Field</var> contains the field definition for the column in the dataset where the selected value is stored. Use the <var>DataField</var> property to specify the name for the Field.
</p>
</descr>
<seealso>
<link id="TCustomDBListBox"/>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TDBListBox.DataChange">
<short>Implements the event handler signalled when data in the linked dataset has been changed.
</short>
<descr>
<p>
<var>DataChange</var> is an overridden procedure in
<var>TDBListBox</var>. It implements the abstract virtual method defined in the ancestor class, and updates
<var>ItemIndex</var> to reflect the current value in the linked dataset (when available).
</p>
<p>When <var>DataField</var> is an empty string, the value in ItemIndex is set to <b>-1</b> to indicate that no item is selected in the control. Otherwise, the field value in the linked dataset is located in <var>Items</var> and its ordinal position is used in ItemIndex.
</p>
<p>DataChange is used as the OnDataChange event handler in the TFieldDataLink instance for the control.
</p>
</descr>
<seealso>
<link id="TDBListBox.Items"/>
<link id="TDBLIstBox.DataField"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.Field"/>
<link id="TCustomDBListBox.DataChange"/>
<link id="#lcl.stdctrls.TCustomListBox.ItemIndex">TCustomListBox.ItemIndex</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
</seealso>
</element>
<element name="TDBListBox.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBListBox.DoSelectionChange">
<short>Performs actions needed when the current selection in the listbox control is changed.
</short>
<descr>
<p>
<var>DoSelectionChange</var> is an overridden procedure in
<var>TDBLIstBox</var>. It provides support for changing the modified status for the linked dataset when a new item is selected in the listbox.
</p>
<p>
<var>User</var> indicates if the change was performed by user interaction with the listbox, as opposed to a programmatic change from methods or messages in the class. When User is
<b>True</b>, the internal
<var>TFieldDataLink</var> instance is used to edit and set the
<var>Modified</var> property in the linked dataset. When User is
<b>False</b>, the inherited DoSelectionChange method is called.
</p>
<p>DoSelectionChange is used in the implementation of methods in the ancestor class, like <var>LMSelChange</var> and <var>SelectAll</var>.
</p>
</descr>
<seealso>
<link id="TCustomListBox.SelectAll"/>
<link id="TFieldDataLink.CanModify"/>
<link id="TFieldDataLink.Edit"/>
<link id="TFieldDataLink.Modified"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="TDBListBox.DataChange"/>
<link id="#lcl.stdctrls.TCustomListBox.DoSelectionChange">TCustomListBox.DoSelectionChange</link>
</seealso>
</element>
<element name="TDBListBox.DoSelectionChange.User">
<short>Indicates if the change results from user interaction with the control.</short>
</element>
<element name="TDBListBox.UpdateData">
<short>Performs actions needed to update the linked dataset when the value for the control has changed.
</short>
<descr>
<p>
<var>UpdateData</var> is an overridden method in
<var>TDBLIstBox</var>. It implements the abstract virtual method defined in the ancestor, and provides support for updating the linked dataset when the value for the control has been changed.
</p>
<p>UpdateData stores the value from <var>Items</var> located at the position in <var>ItemIndex</var> to the field for the linked dataset. No actions are performed in the method when ItemIndex is <b>-1</b> (no item is selected in the control).
</p>
<p>UpdateData is used as the <var>OnUpdateData</var> event handler in the internal <var>TFieldDataLink</var> instance for the control.
</p>
</descr>
<seealso>
<link id="TDBListBox.Items"/>
<link id="TCustomDBListBox.UpdateData"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.OnUpdateData"/>
<link id="#lcl.stdctrls.TCustomListBox.ItemIndex">TCustomListBox.ItemIndex</link>
</seealso>
</element>
<element name="TDBListBox.UpdateData.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBListBox.EditingDone">
<short>
<var>EditingDone</var> - what to do when you have finished editing.
</short>
<descr>
<p>Called when user has finished editing. This procedure can be used by data links to commit the changes.
</p>
<p>For example:</p>
<ul>
<li>When focus switches to another control (default)</li>
<li>When user selected another item</li>
</ul>
<p>It's up to the control to perform the actions needed when the method is called.
</p>
</descr>
<seealso/>
</element>
<element link="#lcl.controls.TControl.Align" name="TDBListBox.Align"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBListBox.Anchors"/>
<element link="#lcl.controls.TControl.BiDiMode" name="TDBListBox.BiDiMode"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBListBox.BorderSpacing"/>
<element link="#lcl.controls.TWinControl.BorderStyle" name="TDBListBox.BorderStyle"/>
<element link="#lcl.controls.TControl.Color" name="TDBListBox.Color"/>
<element name="TDBListBox.Constraints" link="#lcl.controls.TControl.Constraints"/>
<element link="#lcl.dbctrls.TCustomDBListBox.DataField" name="TDBListBox.DataField"/>
<element link="#lcl.dbctrls.TCustomDBListBox.DataSource" name="TDBListBox.DataSource"/>
<element link="#lcl.controls.TWinControl.DoubleBuffered" name="TDBListBox.DoubleBuffered"/>
<element name="TDBListBox.DragCursor" link="#lcl.controls.TControl.DragCursor"/>
<element name="TDBListBox.DragKind" link="#lcl.controls.TControl.DragKind"/>
<element name="TDBListBox.DragMode" link="#lcl.controls.TControl.DragMode"/>
<element link="#lcl.controls.TControl.Enabled" name="TDBListBox.Enabled"/>
<element link="#lcl.stdctrls.TCustomListBox.ExtendedSelect" name="TDBListBox.ExtendedSelect"/>
<element name="TDBListBox.Font" link="#lcl.controls.TControl.Font"/>
<element link="#lcl.stdctrls.TCustomListBox.ItemHeight" name="TDBListBox.ItemHeight"/>
<element name="TDBListBox.Items" link="#lcl.stdctrls.TCustomListBox.Items"/>
<element link="#lcl.stdctrls.TCustomListBox.MultiSelect" name="TDBListBox.MultiSelect"/>
<element link="#lcl.controls.TControl.OnClick" name="TDBListBox.OnClick"/>
<element name="TDBLIstBox.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element name="TDBListBox.OnDblClick" link="#lcl.controls.TControl.OnDblClick"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBListBox.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBListBox.OnDragOver"/>
<element name="TDBListBox.OnDrawItem">
<short>
Event handler signalled to draw an Item on the data-aware list box.
</short>
<descr>
<p>
<var>OnDrawItem</var> is an event handler used to draw an Item on the data-aware list box.
</p>
<p>
For example, selecting an item may require it to be highlighted or have its font or background changed.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomListBox.OnDrawItem">TCustomListBox.OnDrawItem</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBListBox.OnEndDrag"/>
<element link="#lcl.controls.TWinControl.OnEnter" name="TDBListBox.OnEnter"/>
<element link="#lcl.controls.TWinControl.OnExit" name="TDBListBox.OnExit"/>
<element name="TDBListBox.OnKeyPress">
<short>
Event handler signalled when a key is pressed while the control has focus.
</short>
<descr>
<p>
<var>OnKeyPress</var> differs from <link id="#lcl.controls.TWinControl.OnKeyDown">OnKeyDown</link> in that the key needs to become pressed while the control has focus; with <var>OnKeyDown</var> the key may have already been down when the control received focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyPress">TWinControl.OnKeyPress</link>
</seealso>
</element>
<element name="TDBListBox.OnKeyDown">
<short>
Event handler signalled when a key is down while the control has focus.
</short>
<descr>
<p>
<var>OnKeyDown</var> differs from <link id="#lcl.controls.TWinControl.OnKeyPress">OnKeyPress</link> in that the key may have already been down when the control received focus; with <var>OnKeyPress</var> the key needs to become pressed while the control has focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyDown">TWinControl.OnKeyDown</link>
</seealso>
</element>
<element name="TDBListBox.OnKeyUp">
<short>
Event handler signalled when a key is up (not pressed) while the control has focus.
</short>
<descr>
<p>
In <var>OnKeyUp</var>, the key may already have been up when the control received focus, or a pressed key may become released during the time the control has focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyUp">TWinControl.OnKeyUp</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBListBox.OnMouseDown"/>
<element link="#lcl.controls.TControl.OnMouseEnter" name="TDBListBox.OnMouseEnter"/>
<element link="#lcl.controls.TControl.OnMouseLeave" name="TDBListBox.OnMouseLeave"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBListBox.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseUp" name="TDBListBox.OnMouseUp"/>
<element link="#lcl.controls.TControl.OnMouseWheel" name="TDBListBox.OnMouseWheel"/>
<element link="#lcl.controls.TControl.OnMouseWheelDown" name="TDBListBox.OnMouseWheelDown"/>
<element link="#lcl.controls.TControl.OnMouseWheelUp" name="TDBListBox.OnMouseWheelUp"/>
<element link="#lcl.controls.TControl.OnResize" name="TDBListBox.OnResize"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBListBox.OnStartDrag"/>
<element link="#lcl.controls.TWinControl.OnUTF8KeyPress" name="TDBListBox.OnUTF8KeyPress"/>
<element name="TDBListBox.Options" link="#lcl.stdctrls.TCustomListBox.Options"/>
<element link="#lcl.controls.TControl.ParentBiDiMode" name="TDBListBox.ParentBiDiMode"/>
<element name="TDBListBox.ParentDoubleBuffered" link="#lcl.controls.TWinControl.ParentDoubleBuffered"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBListBox.ParentShowHint"/>
<element name="TDBListBox.PopupMenu" link="#lcl.controls.TControl.PopupMenu"/>
<element link="#lcl.dbctrls.TCustomDBListBox.ReadOnly" name="TDBListBox.ReadOnly"/>
<element link="#lcl.controls.TControl.ShowHint" name="TDBListBox.ShowHint"/>
<element link="#lcl.stdctrls.TCustomListBox.Sorted" name="TDBListBox.Sorted"/>
<element link="#lcl.stdctrls.TCustomListBox.Style" name="TDBListBox.Style"/>
<element link="#lcl.controls.TWinControl.TabOrder" name="TDBListBox.TabOrder"/>
<element link="#lcl.controls.TWinControl.TabStop" name="TDBListBox.TabStop"/>
<element link="#lcl.stdctrls.TCustomListBox.TopIndex" name="TDBListBox.TopIndex"/>
<element name="TDBListBox.Visible">
<short>
Indicates if the control is visible on the parent.
</short>
<descr>
<p>The <var>Visible</var> property represents the ability to see a visual control. If Visible is <b>True</b> the control is shown, otherwise it is hidden. Calling Show sets Visible to <b>True</b>. Setting Visible to <b>False</b> is equivalent to calling Hide method.
</p>
<remark>The Visible property does not depend on control's parent visibility. Use IsVisible method to consider this and get the real visibility.
</remark>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Visible">TControl.Visible</link>
</seealso>
</element>
<element name="TDBLookupListBox">
<short>Implements a data-aware listbox control with database lookup capabilities.
</short>
<descr>
<p>
<var>TDBLookupListBox</var> is a
<var>TCustomDBListBox</var> descendant which implements a data-aware listbox with database lookup capabilities.
</p>
<p>TDBLookupListBox allows selection of a value from a list of items, and stores the value to a field in a linked dataset. The database lookup feature allows a separate dataset to be used which contains the values for the items available in the control. Individual fields can be specified for both the stored value and the the associated display value. Internally, it uses a TDBLookup component to enable the database lookup feature.
</p>
<p>In addition, the control can be used in an unbound mode where either the <var>DataSource</var> or the <var>DataField</var> is not defined for the control. This allows the lookup dataset to synchronized when the current selection in the control is changed, but prevents the selected value from being stored in the linked dataset.
</p>
<p>Use <var>ListSource</var> to provide access to the lookup dataset used in the control. Use <var>ListField</var> or <var>ListFieldIndex</var> to specify the field name or ordinal position in the lookup dataset displayed in the listbox. Use <var>KeyField</var> to specify the field name in the lookup dataset with the value stored in the DataField for the control. Use <var>KeyValue</var> to read or write the value for the KeyField in the lookup dataset.
</p>
</descr>
<seealso>
<link id="TDBLookupListBox.IsUnbound"/>
<link id="TDBLookupListBox.DataSource"/>
<link id="TDBLookupListBox.DataField"/>
<link id="TDBLookupListBox.ListSource"/>
<link id="TDBLookupListBox.ListField"/>
<link id="TDBLookupListBox.ListFieldIndex"/>
<link id="TDBLookupListBox.KeyField"/>
<link id="TDBLookupListBox.KeyValue"/>
<link id="TDBLookup"/>
</seealso>
</element>
<!-- visibility: private -->
<element name="TDBLookupListBox.FLookup"/>
<element name="TDBLookupListBox.ActiveChange"/>
<element name="TDBLookupListBox.ActiveChange.Sender"/>
<element name="TDBLookupListBox.GetDisplayEmpty"/>
<element name="TDBLookupListBox.GetDisplayEmpty.Result"/>
<element name="TDBLookupListBox.GetEmptyValue"/>
<element name="TDBLookupListBox.GetEmptyValue.Result"/>
<element name="TDBLookupListBox.GetKeyField"/>
<element name="TDBLookupListBox.GetKeyField.Result"/>
<element name="TDBLookupListBox.GetKeyValue"/>
<element name="TDBLookupListBox.GetKeyValue.Result"/>
<element name="TDBLookupListBox.GetListField"/>
<element name="TDBLookupListBox.GetListField.Result"/>
<element name="TDBLookupListBox.GetListFieldIndex"/>
<element name="TDBLookupListBox.GetListFieldIndex.Result"/>
<element name="TDBLookupListBox.GetListSource"/>
<element name="TDBLookupListBox.GetListSource.Result"/>
<element name="TDBLookupListBox.GetLookupCache"/>
<element name="TDBLookupListBox.GetLookupCache.Result"/>
<element name="TDBLookupListBox.GetNullValueKey"/>
<element name="TDBLookupListBox.GetNullValueKey.Result"/>
<element name="TDBLookupListBox.GetScrollListDataset"/>
<element name="TDBLookupListBox.GetScrollListDataset.Result"/>
<element name="TDBLookupListBox.SetDisplayEmpty"/>
<element name="TDBLookupListBox.SetDisplayEmpty.AValue"/>
<element name="TDBLookupListBox.SetEmptyValue"/>
<element name="TDBLookupListBox.SetEmptyValue.AValue"/>
<element name="TDBLookupListBox.SetKeyField"/>
<element name="TDBLookupListBox.SetKeyField.Value"/>
<element name="TDBLookupListBox.SetKeyValue"/>
<element name="TDBLookupListBox.SetKeyValue.AValue"/>
<element name="TDBLookupListBox.SetListField"/>
<element name="TDBLookupListBox.SetListField.Value"/>
<element name="TDBLookupListBox.SetListFieldIndex"/>
<element name="TDBLookupListBox.SetListFieldIndex.Value"/>
<element name="TDBLookupListBox.SetListSource"/>
<element name="TDBLookupListBox.SetListSource.Value"/>
<element name="TDBLookupListBox.SetLookupCache"/>
<element name="TDBLookupListBox.SetLookupCache.Value"/>
<element name="TDBLookupListBox.SetNullValueKey"/>
<element name="TDBLookupListBox.SetNullValueKey.AValue"/>
<element name="TDBLookupListBox.SetScrollListDataset"/>
<element name="TDBLookupListBox.SetScrollListDataset.AValue"/>
<element name="TDBLookupListBox.UpdateLookup"/>
<element name="TDBLookupListBox.DataChange">
<short>Performs actions needed when a new DataField value is selected using the lookup dataset.
</short>
<descr>
<p>
<var>DataChange</var> is an overridden method in <var>TDBLookupListBox</var>. It implements the abstract virtual method defined in the ancestor class, and provides support for setting the value in <var>ItemIndex</var> when the value for <var>KeyField</var> in the lookup dataset has changed.
</p>
<p>
DataChange uses the internal <var>TFieldDataLink</var> instance in the control to determine if the linked dataset has been opened. If the dataset is active, the value in <var>ItemIndex</var> is set to the key index position from the lookup dataset. If the linked dataset is not active, the value in ItemIndex is set to <b>-1</b> (indicating no item is selected in the control).
</p>
<p>
DataChange is used as the <var>OnDataChange</var> event handler for the internal <var>TFieldDataLink</var> instance in the control, and called from the <var>DoSelectionChange</var> method.
</p>
</descr>
<seealso>
<link id="TDBLookupListBox.DataField"/>
<link id="TDBLookupListBox.KeyField"/>
<link id="TDBLookup.KeyFieldValue"/>
<link id="TDBLookup.GetKeyIndex"/>
<link id="TCustomDBListBox.DataChange"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="#lcl.stdctrls.TCustomListBox.ItemIndex">TCustomListBox.ItemIndex</link>
</seealso>
</element>
<element name="TDBLookupListBox.DoSelectionChange">
<short>Performs actions needed when the selected item in the listbox is changed.
</short>
<descr>
<p>
<var>DoSelectionChange</var> is an overridden method in <var>TDBLookupListBox</var>. It extends the inherited method to provide support for the "unbound" usage model - where either the <var>DataField</var> or the <var>DataSource</var> is not defined for the control. This allows the lookup dataset to be synchronized to the current item selection in the listbox, but does not include storing the new value in the linked dataset.
</p>
<p>
<var>User</var> indicates if the selection change is a result of user interaction with the listbox control, as opposed to a programmatic change from methods or messages in the class. When both User and <var>IsUnbound</var> are <b>True</b>, the <var>UpdateData</var> method is called to reposition the lookup dataset to the new value for the control.
</p>
<p>
When User is <b>True</b> and IsUnbound is <b>False</b>, the internal <var>TFieldDataLink</var> is notified of the new value by calling its <var>CanModify</var>, <var>Modified</var>, and <var>UpdateRecord</var> methods. If the linked dataset cannot be modified, the <var>DataChange</var> method is called.
</p>
<p>
DoSelectionChange calls the inherited method prior to exit.
</p>
</descr>
<seealso>
<link id="TDBLookupListBox.DataField"/>
<link id="TDBLookupListBox.DataSource"/>
<link id="TDBLookupListBox.IsUnbound"/>
<link id="TDBLookupListBox.DataChange"/>
<link id="TFieldDataLink.CanModify"/>
<link id="TFieldDataLink.Modified"/>
<link id="#fcl.db.TDataLink.UpdateRecord">TDataLink.UpdateRecord</link>
<link id="#lcl.stdctrls.TCustomListBox.DoSelectionChange">TCustomListBox.DoSelectionChange</link>
<link id="#lcl.stdctrls.TCustomListBox.ItemIndex">TCustomListBox.ItemIndex</link>
</seealso>
</element>
<element name="TDBLookupListBox.DoSelectionChange.User">
<short>Indicates if the selection change is due to user interaction with the control.
</short>
</element>
<element name="TDBLookupListBox.InitializeWnd">
<short>Initializes the window handle for the control.</short>
<descr>
<p>
<var>InitializeWnd</var> is an overridden procedure in
<var>TDBLookupListBox</var>, and calls the inherited method to initialize the window handle and the
<var>Items</var> used for the control. InitializeWnd ensures that the Items property is also assigned to the control items in the TDBLookup instance used in the control.
</p>
</descr>
<seealso>
<link id="TDBLookup.ControlItems"/>
<link id="#lcl.stdctrls.TCustomListBox.InitializeWnd">TCustomListBox.InitializeWnd</link>
<link id="#lcl.stdctrls.TCustomListBox.Items">TCustomListBox.Items</link>
</seealso>
</element>
<element name="TDBLookupListBox.DestroyWnd">
<short>Frees the window handle and updates the address used for the Items in the controls.
</short>
<descr/>
<seealso>
<link id="#lcl.stdctrls.TCustomListBox.DestroyWnd">TCustomListBox.DestroyWnd</link>
</seealso>
</element>
<element name="TDBLookupListBox.KeyDown">
<short>Applies the specified virtual key code to the control.</short>
<descr>
<p>
<var>KeyDown</var> is an overridden procedure used to apply the specified virtual key code and modifier to the control.
</p>
<p>
<var>Key</var> is the virtual key code examined in the method.
<var>Shift</var> is the modifier for the virtual key code.
</p>
<p>KeyDown ensures that the <var>NullValueKey</var> shortcut defined for the control is applied to the control and its lookup dataset in the internal <var>TDBLookup</var> instance. This causes the value in <var>ItemIndex</var> to be set to <b>-1</b> to clear the selection in the listbox.
</p>
<p>KeyDown calls the inherited method prior to exit.
</p>
</descr>
<seealso>
<link id="TDBLookupListBox.NullValueKey"/>
<link id="#fcl.db.TDataLink.Active">TDataLink.Active</link>
<link id="#lcl.stdctrls.TCustomListBox.ItemIndex">TCustomListBox.ItemIndex</link>
</seealso>
</element>
<element name="TDBLookupListBox.KeyDown.Key">
<short>Virtual key code examined in the method.</short>
</element>
<element name="TDBLookupListBox.KeyDown.Shift">
<short>Modifier for the virtual key code.</short>
</element>
<element name="TDBLookupListBox.Loaded">
<short>
Performs actions needed when the control has loaded using the LCL streaming mechanism.
</short>
<descr>
<p>
<var>Loaded</var> is an overridden procedure in
<var>TDBLookupListBox</var>. It calls the inherited method, and calls the
<var>UpdateLookup</var> method to initialize the internal
<var>TDBLookup</var> instance used in the control.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent">TComponent</link>
</seealso>
</element>
<element name="TDBLookupListBox.UpdateData">
<short>Updates the data in the lookup dataset for the control.</short>
<descr>
<p>
<var>UpdateData</var> is an overridden procedure in
<var>TDBLookupListBox</var>. It implements the abstract virtual method defined in the ancestor class. UpdateData uses the value in
<var>ItemIndex</var> to update the internal TDBLookup instance for the control. When ItemIndex contains a positive non-zero value, the UpdateData method in TDBLookup is called to apply the ItemIndex value.
</p>
<remark>
No actions are performed in the method when ItemIndex contains a negative non-zero value.
</remark>
<p>UpdateData is called from the <var>DoSelectionChange</var> method when <var>IsUnbound</var> returns <b>True</b>.
</p>
</descr>
<seealso>
<link id="TDBLookupListBox.IsUnbound"/>
<link id="TDBLookup.UpdateData"/>
<link id="TCustomDBListBox.UpdateData"/>
<link id="#lcl.stdctrls.TCustomListBox.ItemIndex">TCustomListBox.ItemIndex</link>
</seealso>
</element>
<element name="TDBLookupListBox.UpdateData.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBLookupListBox.IsUnbound">
<short>Indicates if the control is being used in the "unbound" mode.</short>
<descr>
<p>
<var>IsUnbound</var> is a
<var>Boolean</var> function which indicates if the control is being used in the "unbound" mode - where either the DataField or DataSource are not assigned for the control. This mode allows the control to synchronize the lookup dataset to the current item selection in the control, but does not post the control value to its linked dataset.
</p>
<p>IsUnBound is used in the <var>DoSelectionChange</var> method to determine if the <var>UpdateData</var> method needs to be performed.
</p>
</descr>
<seealso>
<link id="TDBLookupListBox.UpdateData"/>
<link id="TDBLookupListBox.DataField"/>
<link id="TDBLookupListBox.DataSource"/>
<link id="TFieldDataLink.FieldName"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
</seealso>
</element>
<element name="TDBLookupListBox.IsUnbound.Result">
<short>True when the control does not store the current selection in the linked dataset.
</short>
</element>
<element name="TDBLookupListBox.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, and allocates resources needed for the lookup dataset used in the control. Create sets the default values for properties, and assigns the
<var>OnActiveChange</var> event handler used for the linked dataset where the selected value is stored.
</p>
</descr>
<seealso>
<link id="#LCL.DbCtrls.TCustomDBListBox.Create">TCustomDBListBox.Create</link>
<link id="TFieldDataLink.OnActiveChange"/>
<link id="TDBLookup"/>
</seealso>
</element>
<element name="TDBLookupListBox.Create.AOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TDBLookupListBox.KeyValue">
<short>Accesses the value for the KeyField in the lookup dataset.</short>
<descr>
<p>
<var>KeyValue</var> is a <var>Variant</var> property used to access the value for the
<var>KeyField</var> in the lookup dataset for the control. It is a Variant type because the KeyField may be represented as any of the valid field types supported in the lookup dataset.
</p>
<p>
Read and write access to the value is redirected to the internal <var>TDBLookup</var> instance used in the control. Read access uses the value in <var>ItemIndex</var> to call the <var>GetKeyValue</var> method in the lookup component. Write access calls the <var>GetKeyIndex</var> method in the lookup component.
</p>
</descr>
<seealso>
<link id="TDBLookup.KeyField"/>
<link id="#lcl.stdctrls.TCustomListBox.ItemIndex">TCustomListBox.ItemIndex</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Align" name="TDBLookupListBox.Align"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBLookupListBox.Anchors"/>
<element link="#lcl.controls.TControl.BiDiMode" name="TDBLookupListBox.BiDiMode"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBLookupListBox.BorderSpacing"/>
<element link="#lcl.controls.TWinControl.BorderStyle" name="TDBLookupListBox.BorderStyle"/>
<element link="#lcl.controls.TControl.Color" name="TDBLookupListBox.Color"/>
<element name="TDBLookupListBox.Constraints" link="#lcl.controls.TControl.Constraints"/>
<element link="#lcl.dbctrls.TCustomDBListBox.DataField" name="TDBLookupListBox.DataField"/>
<element link="#lcl.dbctrls.TCustomDBListBox.DataSource" name="TDBLookupListBox.DataSource"/>
<element link="#lcl.controls.TWinControl.DoubleBuffered" name="TDBLookupListBox.DoubleBuffered"/>
<element link="#lcl.controls.TControl.DragCursor" name="TDBLookupListBox.DragCursor"/>
<element link="#lcl.controls.TControl.DragKind" name="TDBLookupListBox.DragKind"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBLookupListBox.DragMode"/>
<element link="#lcl.controls.TControl.Enabled" name="TDBLookupListBox.Enabled"/>
<element name="TDBLookupListBox.Font" link="#lcl.controls.TControl.Font"/>
<element name="TDBLookupListBox.KeyField">
<short>Field name in the lookup dataset with the value for the control.
</short>
<descr>
<p>
<var>KeyField</var> is a
<var>String</var> property which contains the name of the field in the lookup dataset which provides the value stored in the data-aware control. Changing the value in KeyField causes the internal
<var>TDBLookup</var> component to be updated, and calls the
<var>UpdateLookup</var> method.
</p>
<p>Use <var>ListField</var> to set the field name with the values displayed in the list of items for the control. Use <var>ListFieldIndex</var> to specify the list field by its ordinal field position in the lookup dataset.
</p>
</descr>
<seealso>
<link id="TDBLookupListBox.ListField"/>
<link id="TDBLookupListBox.ListFieldIndex"/>
<link id="TDBLookupListBox.ListSource"/>
<link id="TDBLookup"/>
</seealso>
</element>
<element name="TDBLookupListBox.ListField">
<short>Field name with the descriptive value displayed in the listbox.</short>
<descr>
<p>
<var>ListField</var> is a <var>String</var> property which contains the name of the field in the lookup dataset displayed in the listbox for the control. ListField normally contains a more descriptive textual value associated the KeyField.
</p>
<p>
Use <var>ListFieldIndex</var> to specify the list field by its ordinal position in the lookup dataset. Use <var>KeyField</var> to specify the name of the field with the value stored in the <var>DataField</var> for the linked dataset. Use <var>ListSource</var> to specify the datasource component with the lookup dataset for the control.
</p>
</descr>
<seealso>
<link id="TDBLookupListBox.DataSource"/>
<link id="TDBLookupListBox.DataField"/>
<link id="TDBLookupListBox.ListSource"/>
<link id="TDBLookupListBox.ListFieldIndex"/>
<link id="TDBLookupListBox.KeyField"/>
</seealso>
</element>
<element name="TDBLookupListBox.ListFieldIndex">
<short>Ordinal position of the field in the lookup dataset with the descriptive value displayed in the control.
</short>
<descr>
<p>
<var>ListFieldIndex</var> is an
<var>Integer</var> property which contains the ordinal position of the field in the lookup dataset with the descriptive textual value displayed in the control.
</p>
<p>Read and write access to the property value is redirected to the ListFieldIndex property in the internal <var>TDBLookup</var> instance used in the control. Assigning a new value to the property causes the <var>UpdateLookup</var> method to be called to re-initialize the TDBLookup instance and the value in the <var>ItemIndex</var> property.
</p>
<p>The default value for the property is zero (<b>0</b>), and indicates that the first field in the lookup dataset is used as the list field.
</p>
<p>Use <var>ListSource</var> to specify the datasource component used to access the lookup dataset for the control. Use <var>ListField</var> to specify the list field by its field name. Use <var>KeyField</var> to specify the field with the value stored in the <var>DataField</var> for the control.
</p>
</descr>
<seealso>
<link id="TDBLookupListBox.ListSource"/>
<link id="TDBLookupListBox.ListField"/>
<link id="TDBLookupListBox.KeyField"/>
<link id="TDBLookupListBox.DataField"/>
</seealso>
</element>
<element name="TDBLookupListBox.ListSource">
<short>Datasource with the lookup dataset for the control.</short>
<descr>
<p>
<var>ListSource</var> is a <var>TDataSource</var> property which contains the datasource component used to access the lookup dataset for the control.
</p>
<p>
Read and write access to the property value is redirected to the <var>DataSource</var> property in the internal <var>TDBLookup</var> instance used in the control. Assigning a new value to the property causes the <var>UpdateLookup</var> method to be called to re-initialize the TDBLookup instance and the value in the <var>ItemIndex</var> property.
</p>
<p>
Use <var>ListField</var> or <var>ListFieldIndex</var> to specify the field with the descriptive value displayed in the control. Use <var>KeyField</var> to specify the field with the value stored in the <var>DataField</var> for the control.
</p>
</descr>
<seealso>
<link id="TDBLookupListBox.ListField"/>
<link id="TDBLookupListBox.ListFieldIndex"/>
<link id="TDBLookupListBox.KeyField"/>
<link id="TDBLookupListBox.DataField"/>
<link id="TDBLookup"/>
<link id="#lcl.stdctrls.TCustomListBox.ItemIndex">TCustomListBox.ItemIndex</link>
</seealso>
</element>
<element name="TDBLookupListBox.LookupCache">
<short>Indicates if caching is enabled for fields in the lookup dataset.</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookupListBox.NullValueKey">
<short>Keyboard shortcut used to assign the empty key value to the control.</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookupListBox.EmptyValue">
<short>Value used as the empty field value in the DataField for the control.</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookupListBox.DisplayEmpty">
<short>Descriptive text displayed for the EmptyValue in the control.</short>
<descr/>
<seealso/>
</element>
<element link="#lcl.controls.TControl.OnClick" name="TDBLookupListBox.OnClick"/>
<element name="TDBLookupListBox.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element link="#lcl.controls.TControl.OnDblClick" name="TDBLookupListBox.OnDblClick"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBLookupListBox.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBLookupListBox.OnDragOver"/>
<element link="#lcl.controls.TControl.OnEditingDone" name="TDBLookupListBox.OnEditingDone"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBLookupListBox.OnEndDrag"/>
<element link="#lcl.controls.TWinControl.OnEnter" name="TDBLookupListBox.OnEnter"/>
<element link="#lcl.controls.TWinControl.OnExit" name="TDBLookupListBox.OnExit"/>
<element link="#lcl.controls.TWinControl.OnKeyPress" name="TDBLookupListBox.OnKeyPress"/>
<element link="#lcl.controls.TWinControl.OnKeyDown" name="TDBLookupListBox.OnKeyDown"/>
<element link="#lcl.controls.TWinControl.OnKeyUp" name="TDBLookupListBox.OnKeyUp"/>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBLookupListBox.OnMouseDown"/>
<element name="TDBLookupListBox.OnMouseEnter" link="#lcl.controls.TControl.OnMouseEnter"/>
<element name="TDBLookupListBox.OnMouseLeave" link="#lcl.controls.TControl.OnMouseLeave"/>
<element name="TDBLookupListBox.OnMouseMove" link="#lcl.controls.TControl.OnMouseMove"/>
<element name="TDBLookupListBox.OnMouseUp" link="#lcl.controls.TControl.OnMouseUp"/>
<element name="TDBLookupListBox.OnMouseWheel" link="#lcl.controls.TControl.OnMouseWheel"/>
<element name="TDBLookupListBox.OnMouseWheelDown" link="#lcl.controls.TControl.OnMouseWheelDown"/>
<element name="TDBLookupListBox.OnMouseWheelUp" link="#lcl.controls.TControl.OnMouseWheelUp"/>
<element link="#lcl.controls.TControl.OnResize" name="TDBLookupListBox.OnResize"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBLookupListBox.OnStartDrag"/>
<element link="#lcl.controls.TWinControl.OnUTF8KeyPress" name="TDBLookupListBox.OnUTF8KeyPress"/>
<element link="#lcl.stdctrls.TCustomListBox.Options" name="TDBLookupListBox.Options"/>
<element link="#lcl.controls.TControl.ParentBiDiMode" name="TDBLookupListBox.ParentBidiMode"/>
<element link="#lcl.controls.TWinControl.ParentDoubleBuffered" name="TDBLookupListBox.ParentDoubleBuffered"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBLookupListBox.ParentShowHint"/>
<element link="#lcl.controls.TControl.PopupMenu" name="TDBLookupListBox.PopupMenu"/>
<element link="#lcl.dbctrls.TCustomDBListBox.ReadOnly" name="TDBLookupListBox.ReadOnly"/>
<element name="TDBLookupListBox.ScrollListDataset">
<short>
Indicates if the look-up data set is scrolled for a new value in the control.
</short>
<descr>
<p>
Indicates if the look-up data set is searched and scrolled when a new value is selected in the control. The default value for the property is False.
</p>
</descr>
<seealso/>
</element>
<element link="#lcl.controls.TControl.ShowHint" name="TDBLookupListBox.ShowHint"/>
<element link="#lcl.stdctrls.TCustomListBox.Sorted" name="TDBLookupListBox.Sorted"/>
<element link="#lcl.controls.TWinControl.TabOrder" name="TDBLookupListBox.TabOrder"/>
<element link="#lcl.controls.TWinControl.TabStop" name="TDBLookupListBox.TabStop"/>
<element link="#lcl.stdctrls.TCustomListBox.TopIndex" name="TDBLookupListBox.TopIndex"/>
<element link="#lcl.controls.TControl.Visible" name="TDBLookupListBox.Visible"/>
<element name="TDBRadioGroup">
<short>
<var>TDBRadioGroup</var> - a data-aware version of
<var>TRadioGroup,</var> providing a series of mutually exclusive buttons to select an entry to insert into a database field.
</short>
<descr>
<p>The properties of <var>TDBRadioGroup</var> are similar to those of <var>TRadioGroup</var> (and <var>TCustomRadioGroup</var>). Access is obtained to members of the group by selecting (in the Object Inspector) the ellipsis (...) next to the entry <b>Items</b>, and then editing the stringlist.
</p>
<p>At run-time, selecting one of the radiobuttons makes the corresponding ItemIndex available to the programmer, and the corresponding string Item gets selected and appears as the string value for the record in that field.
</p>
</descr>
<seealso>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TDBRadioGroup.FDataLink"/>
<element name="TDBRadioGroup.FOnChange"/>
<element name="TDBRadioGroup.FValue"/>
<element name="TDBRadioGroup.FValues"/>
<element name="TDBRadioGroup.FInSetValue"/>
<element name="TDBRadioGroup.GetDataField"/>
<element name="TDBRadioGroup.GetDataField.Result"/>
<element name="TDBRadioGroup.GetDataSource"/>
<element name="TDBRadioGroup.GetDataSource.Result"/>
<element name="TDBRadioGroup.GetField"/>
<element name="TDBRadioGroup.GetField.Result"/>
<element name="TDBRadioGroup.GetReadOnly"/>
<element name="TDBRadioGroup.GetReadOnly.Result"/>
<element name="TDBRadioGroup.SetDataField"/>
<element name="TDBRadioGroup.SetDataField.AValue"/>
<element name="TDBRadioGroup.SetDataSource"/>
<element name="TDBRadioGroup.SetDataSource.AValue"/>
<element name="TDBRadioGroup.SetItems"/>
<element name="TDBRadioGroup.SetItems.AValue"/>
<element name="TDBRadioGroup.SetReadOnly"/>
<element name="TDBRadioGroup.SetReadOnly.AValue"/>
<element name="TDBRadioGroup.SetValue"/>
<element name="TDBRadioGroup.SetValue.AValue"/>
<element name="TDBRadioGroup.SetValues"/>
<element name="TDBRadioGroup.SetValues.AValue"/>
<element name="TDBRadioGroup.CMGetDataLink"/>
<element name="TDBRadioGroup.CMGetDataLink.Message"/>
<element name="TDBRadioGroup.Change">
<short>Signals the OnChange event handler when assigned.
</short>
<descr>
<var>Change</var> is used to signal the
<var>OnChange</var> event handler (when assigned).
</descr>
<seealso/>
</element>
<element name="TDBRadioGroup.Notification">
<short>Sets the DataSource to Nil when the control is destroyed.
</short>
<descr>
<p>
<var>Notification</var> is an overridden method in TDBRadioGroup, and calls the inherited method. Notification ensures the
<var>DataSource</var> for the control is set to
<b>Nil</b> when
<var>Operation</var> contains
<var>opRemove</var> and
<var>AComponent</var> is the DataSource component.
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.DataSource"/>
<link id="TDBRadioGroup.Destroy"/>
<link id="#rtl.classes.TComponent">TComponent</link>
</seealso>
</element>
<element name="TDBRadioGroup.Notification.AComponent">
<short>Component for the notification.</short>
</element>
<element name="TDBRadioGroup.Notification.Operation">
<short>Operation generating the notification.</short>
</element>
<element name="TDBRadioGroup.DataChange">
<short>Updates the control display value when the linked dataset is repositioned.
</short>
<descr>
<p>
<var>DataChange</var> is used to perform actions needed when the linked dataset for the control has been repositioned. In TDBRadioGroup, this requires setting the
<var>Value</var> property for the control. DataChange uses the
<var>Field</var> property (when assigned) to get the display text for the field. Value is set to an empty string
<b>('')</b> when Field has not been assigned.
</p>
<p>DataChange is used as the <var>OnDataChange</var> event handler in the internal <var>TFieldDataLink</var> instance in the class. It is called directly when values are assigned to the Items and Value properties, and when UpdateRadioButtonStates is used to update tab navigation and the current selection index in the control.
</p>
</descr>
<seealso/>
</element>
<element name="TDBRadioGroup.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBRadioGroup.UpdateData">
<short>Updates the linked dataset using the current selection in the control.
</short>
<descr>
<p>
<var>UpdateData</var> us used to perform the actions needed to update a linked dataset using the current selection in the control.
</p>
<p>In <var>TDBRadioGroup</var>, this involves assigning the content from the <var>Value</var> property to the field for the linked dataset. UpdateData uses the internal <var>TFieldDataLink</var> instance for the control to access the <var>Field</var> for the linked dataset. No actions are performed when the field in the TFieldDataLink instance has not been assigned.
</p>
<p>UpdateData is assigned to the <var>OnUpdateData</var> event handler in the <var>TFieldDataLink</var> instance for the data-aware control.
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.DataField"/>
<link id="TDBRadioGroup.DataSource"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.OnUpdateData"/>
</seealso>
</element>
<element name="TDBRadioGroup.UpdateData.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBRadioGroup.DataLink">
<short>Provides access to properties, methods, and events for the data-aware control.
</short>
<descr>
<p>
<var>DataLink</var> is a read-only TFieldDataLink property which provides access to properties, methods, and events needed to implement the data-aware control. It maintains references to the
<var>Control</var> and its associated
<var>DataSource</var>,
<var>DataSet</var>, and
<var>Field</var>.
</p>
<p>Read and Write access to many of the properties in the control are redirected to this member in the class instance, including: DataField, DataSource, Field, ReadOnly, et. al. It is used in the implementation of methods to synchronize the actions and state for the control and its database-related components.
</p>
<p>Methods, such as DataChange and UpdateData, are used as event handlers in the property.
</p>
</descr>
<seealso>
<link id="TFieldDataLink"/>
<link id="TDBRadioGroup.DataField"/>
<link id="TDBRadioGroup.DataSource"/>
<link id="TDBRadioGroup.Field"/>
<link id="TDBRadioGroup.ReadOnly"/>
<link id="TDBRadioGroup.DataChange"/>
<link id="TDBRadioGroup.UpdateData"/>
</seealso>
</element>
<element name="TDBRadioGroup.GetButtonValue">
<short>Gets the value for the radio button at the specified position in the control.
</short>
<descr>
<p>
<var>GetButtonValue</var> is a <var>String</var> function used to get the value for the Radio Button at the ordinal position specified in <var>Index</var>.
</p>
<p>
When Index is a negative non-zero value, the return value is an empty string <b>('')</b>. Otherwise, the return value contains the content at the specified index position in Values. If no corresponding entry is available in Values, the content from Items at the specified position is used.
</p>
<p>
Use the Items property to define the Radio Buttons displayed in the control. Use Values to define the content stored in <var>DataField</var> when the radio button in <var>ItemIndex</var> is selected.
</p>
<p>
GetButtonValue is used in the implementation of the <var>UpdateRadioButtonStates</var> method.
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.Items"/>
<link id="TDBRadioGroup.ItemIndex"/>
<link id="TDBRadioGroup.Values"/>
<link id="TDBRadioGroup.Value"/>
<link id="TDBRadioGroup.UpdateRadioButtonStates"/>
</seealso>
</element>
<element name="TDBRadioGroup.GetButtonValue.Result">
<short>The value stored for the specified radio button.</short>
</element>
<element name="TDBRadioGroup.GetButtonValue.Index">
<short>Ordinal position in Items for the requested radio button.</short>
</element>
<element name="TDBRadioGroup.UpdateRadioButtonStates">
<short>Updates the linked dataset to reflect the current radio button selected in the control.
</short>
<descr>
<p>
<var>UpdateRadioButtonStates</var> is an overridden method in
<var>TDBRadioGroup</var> used to update the the linked dataset for the data-aware control when the value in ItemIndex has been changed.
</p>
<p>UpdateRadioButtonStates ensures that the <var>Value</var> for the radio button in ItemIndex is applied to the linked dataset when it can be modified. The Edit and Modified methods in DataLink are called to place the linked dataset in an edit state. Value is updated to apply the new content to the field in the linked dataset.
</p>
<p>If the dataset cannot be modified, the <var>DataChange</var> method is called directly to update the control. Value is changed to 'X' character to indicate that the linked dataset could not be modified.
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.Value"/>
<link id="TDBRadioGroup.DataLink"/>
<link id="TFieldDataLink.Modified"/>
<link id="TFieldDataLink.Edit"/>
<link id="#lcl.extctrls.TCustomRadioGroup.UpdateRadioButtonStates">
TCustomRadioGroup.UpdateRadioButtonStates</link>
</seealso>
</element>
<element name="TDBRadioGroup.Create">
<short>Constructor for the class instance.
</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for
<var>TDBRadioGroup</var>. It calls the inherited
<var>Create</var> method, and allocates resources needed for the
<var>DataLink</var> and
<var>Values</var> properties. The
<var>DataChange</var> and
<var>UpdateData</var> methods are assigned to event handlers in DataLink.
</p>
</descr>
<seealso>
<link id="#lcl.extctrls.TCustomRadioGroup.Create">TCustomRadioGroup.Create</link>
</seealso>
</element>
<element name="TDBRadioGroup.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TDBRadioGroup.Destroy">
<short>Destroy is the destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the destructor for <var>TDBRadioGroup</var>. It frees resources allocated to the <var>DataLink</var> and <var>Values</var> properties, and calls the inherited destructor prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="#lcl.extctrls.TCustomRadioGroup.Destroy">TCustomRadioGroup.Destroy</link>
</seealso>
</element>
<element name="TDBRadioGroup.EditingDone">
<short>Performs actions needed when the user has finished editing.</short>
<descr>
<p>
<var>EditingDone</var> is an overridden method in <var>TDBRadioGroup</var>. It is used to perform actions needed when the user has finished editing using the control. It occurs when the focus changes to another control, or when the user selects another item using the mouse.
</p>
<p>
EditingDone extends the behavior from the ancestor class to update the linked dataset by calling the <var>UpdateRecord</var> method in <var>DataLink</var>.
</p>
<p>
EditingDone calls the inherited method to signal the <var>OnEditingDone</var> event handler (when assigned).
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.DataLink"/>
<link id="#fcl.db.TDataLink.UpdateRecord">TDataLink.UpdateRecord</link>
<link id="#lcl.controls.TControl.EditingDone">TControl.EditingDone</link>
<link id="#lcl.controls.TControl.OnEditingDone">TControl.OnEditingDone</link>
</seealso>
</element>
<element name="TDBRadioGroup.ExecuteAction">
<short>Implements support for standard actions in the control.</short>
<descr>
<p>
<var>ExecuteAction</var> is an overridden <var>Boolean</var> function used to implement support for
<var>TBasicAction</var> in the control. ExecuteAction extends the inherited method by using the DataLink (when assigned) to perform the requested action.
</p>
<p>
<var>AAction</var> is the <var>TBasicAction</var> instance examined and potentially executed in the method.
</p>
<p>
The return value for the method is <b>True</b> when the action in AAction was executed for the control.
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.UpdateAction"/>
<link id="#fcl.db.TDataLink.ExecuteAction">TDataLink.ExecuteAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
<link id="#rtl.classes.TComponent.ExecuteAction">TComponent.ExecuteAction</link>
</seealso>
</element>
<element name="TDBRadioGroup.ExecuteAction.Result">
<short>True when the action was executed in the method.</short>
</element>
<element name="TDBRadioGroup.ExecuteAction.AAction">
<short>Action examined and executed in the method.</short>
</element>
<element name="TDBRadioGroup.UpdateAction">
<short>Updates the specified action to reflect the current state in the linked dataset.
</short>
<descr>
<p>
<var>UpdateAction</var> is an overridden <var>Boolean</var> function in <var>TDBRadioGroup</var>. UpdateAction is called when the <var>Application</var> enters an idle state to ensure that the action reflects the current state for a linked dataset.
</p>
<p>
<var>AAction</var> is the <var>TBasicAction</var> updated in the method.
</p>
<p>
UpdateAction calls the inherited method, and when DataLink has been assigned, executes its UpdateAction method. The return value is <b>True</b> when AAction is updated using either the inherited method, or the method in DataLink. The return value is <b>False</b> when AAction could not be updated in the method.
</p>
</descr>
<seealso>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
<link id="#rtl.classes.TComponent.UpdateAction">TComponent.UpdateAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TDBRadioGroup.UpdateAction.Result">
<short>True when the action was updated in the method.</short>
</element>
<element name="TDBRadioGroup.UpdateAction.AAction">
<short>Action examined and updated in the method.</short>
</element>
<element name="TDBRadioGroup.Field">
<short>The DataSet Field relevant to the data being selected.</short>
<descr>
<p>
<var>Field</var> is a read-only
<var>TField</var> property which contains the definition used to access the field in the linked dataset where the
<var>Value</var> for the data-aware control is stored. Read access for the property value is redirected to the
<var>Field</var> property in
<var>DataLink</var>.
</p>
<p>Use <var>DataSource</var> to assign the component which provides access to the linked dataset.
</p>
<p>Use <var>DataField</var> to access the name of the field in the linked dataset.
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.DataLink"/>
<link id="TDBRadioGroup.DataField"/>
<link id="TDBRadioGroup.DataSource"/>
<link id="TDBRadioGroup.Value"/>
<link id="#fcl.db.TField">TField</link>
</seealso>
</element>
<element name="TDBRadioGroup.ItemIndex">
<short>
Ordinal position for the selected radio button in the group.
</short>
<descr>
<p>
ItemIndex is an Integer property with the ordinal position for the selected radio button in the group. The default value for the property is -1, and indicates that no radio button is selected for the group. Changing the value for the property causes the widgetset control to be updated when its Handle has been assigned.
</p>
<p>
ItemIndex must be in the range <b>-1..Items.Count-1</b>. An Exception is raised with the message in rsIndexOutOfBounds if ItemIndex is set to a value less than -1 or greater than or equal to the number Items for the control.
</p>
<p>
ItemIndex is a public property in TDBRadioGroup.
</p>
<remark>
Some widgetsets do not allow a radio button group to have an unselected item index. To provide cross-platform compatibility, a hidden radio button is created for this purpose. When ItemIndex is set to -1, it actually selects the hidden radio button.
</remark>
</descr>
<seealso>
<link id="#lcl.extctrls.TCustomRadioGroup.ItemIndex">TCustomRadioGroup.ItemIndex</link>
</seealso>
</element>
<element name="TDBRadioGroup.Value">
<short>The value for the selected radio button in the control.</short>
<descr>
<p>
<var>Value</var> is a
<var>String</var> property which contains the text for the radio button at
<var>ItemIndex</var> in the control. It is given the string value from the
<var>Values</var> property stored at the position in ItemIndex. It may contain an 'X' character when the linked dataset has not been assigned, or when Values does not have a string stored at the requested position.
</p>
<p>Assigning a new string to Value causes the <var>Values</var> property to be searched to locate the radio button with the specified content. ItemIndex is updated with the new position for the radio button, which initiates a call to <var>UpdateRadioButtonStates</var> to update the linked dataset and refresh the control. The <var>Change</var> method is called to signal the <var>OnChange</var> event handler (when assigned).
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.Items"/>
<link id="TDBRadioGroup.ItemIndex"/>
<link id="TDBRadioGroup.Values"/>
<link id="TDBRadioGroup.Change"/>
<link id="TDBRadioGroup.OnChange"/>
<link id="TDBRadioGroup.UpdateRadioButtonStates"/>
</seealso>
</element>
<element link="#lcl.controls.TControl.Align" name="TDBRadioGroup.Align"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBRadioGroup.Anchors"/>
<element link="#lcl.extctrls.TCustomRadioGroup.AutoFill" name="TDBRadioGroup.AutoFill"/>
<element link="#lcl.controls.TControl.AutoSize" name="TDBRadioGroup.AutoSize"/>
<element link="#lcl.controls.TControl.BiDiMode" name="TDBRadioGroup.BiDiMode"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBRadioGroup.BorderSpacing"/>
<element name="TDBRadioGroup.Caption">
<short>
Text displayed as the caption for the control.
</short>
<descr>
<p>Gets caption as a text-string (<var>GetText</var>), or stores the new caption (<var>SetText</var>). Shows flag if caption is stored (<var>IsCaptionStored</var>).
</p>
<p>By default, the <var>Caption</var> appears the same as the control <var>Name</var> in the Object Inspector, and the developer needs to set it explicitly to some new text.
</p>
<p>The VCL implementation relies on the virtual <var>Get/SetTextBuf</var> to exchange text between widgets and VCL. This means a lot of (unnecessary) text copies.
</p>
<p>The LCL uses strings for exchanging text (more efficient). To maintain VCL compatibility, the virtual <var>RealGet/SetText</var> is introduced. These functions interface with the LCLInterface.
</p>
<p>The default <var>Get/SetTextBuf</var> implementation calls the <var>RealGet/SetText</var>. As long as the <var>Get/SetTextBuf</var> isn't overridden <var>Get/SetText</var> calls <var>RealGet/SetText</var> to avoid PChar copying.
</p>
<p>To keep things optimal, LCL implementations should always override RealGet/SetText. Get/SetTextBuf is only kept for compatibility.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Caption">TControl.Caption</link>
</seealso>
</element>
<element link="#lcl.controls.TWinControl.ChildSizing" name="TDBRadioGroup.ChildSizing"/>
<element link="#lcl.controls.TControl.Color" name="TDBRadioGroup.Color"/>
<element link="#lcl.extctrls.TCustomRadioGroup.ColumnLayout" name="TDBRadioGroup.ColumnLayout"/>
<element name="TDBRadioGroup.Columns">
<short>
Number of columns displayed for the radio buttons on the control.
</short>
<descr>
<p>
Don't confuse this with the Columns entity in a DBGrid, nor with the COLUMNS entity in a SQL database - it simply refers to the number of columns of radiobuttons to be displayed.
</p>
</descr>
<seealso>
<link id="#lcl.extctrls.TCustomRadioGroup.Columns">TCustomRadioGroup.Columns</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Constraints" name="TDBRadioGroup.Constraints"/>
<element name="TDBRadioGroup.DataField">
<short>Name of the Field in the linked dataset where the control Value is stored.</short>
<descr>
<p>
<var>DataField</var> is a
<var>String</var> property which contains the name of the field in the linked dataset where the
<var>Value</var> for the data-aware control is stored. Read and write access to the property value are redirected to the FieldName property in DataLink.
</p>
<p>Use <var>DataSource</var> to access the component which provides the linked dataset where DataField is located.
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.DataLink"/>
<link id="TDBRadioGroup.DataSource"/>
<link id="TDBRadioGroup.Value"/>
<link id="TFieldDataLink.FieldName"/>
</seealso>
</element>
<element name="TDBRadioGroup.DataSource">
<short>Provides access to the linked dataset and the field definition used in the control.
</short>
<descr>
<p>
<var>DataSource</var> is a <var>TDataSource</var> property which contains the component used to provide access to the linked dataset and the field used in the data-aware control.
</p>
<p>
Read and write access to the property value are redirected to the <var>DataSource</var> property in <var>DataLink</var>. Assigning a new value for the property causes the <var>ChangeDataSource</var> routine to be called to perform notification messages and update the DataLink property in the control.
</p>
<p>
Use the <var>DataField</var> property to get or set the name for the field in the linked dataset where the <var>Value</var> for the control is stored.
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.DataLink"/>
<link id="TDBRadioGroup.DataField"/>
<link id="TDBRadioGroup.Value"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataSource">TDataSource</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Enabled" name="TDBRadioGroup.Enabled"/>
<element link="#lcl.controls.TWinControl.DoubleBuffered" name="TDBRadioGroup.DoubleBuffered"/>
<element link="#lcl.controls.TControl.DragCursor" name="TDBRadioGroup.DragCursor"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBRadioGroup.DragMode"/>
<element link="#lcl.controls.TControl.Enabled" name="TDBRadioGroup.Enabled"/>
<element link="#lcl.controls.TControl.Font" name="TDBRadioGroup.Font"/>
<element name="TDBRadioGroup.Items">
<short>
Contains the string values used as captions for radio buttons in the grouped data-aware control.
</short>
<descr>
<p>
<var>Items</var> is a published <var>TStrings</var> property in <var>TDBRadioGroup</var>. The write access specifier ( <var>SetItems</var>) is re-implemented in the class to perform the <var>DataChange</var> method after assigning the new values(s) in the property.
</p>
<p>
Use the <var>Values</var> property to define the strings that can be stored as the <var>Value</var> for the <var>DataField</var> in the control.
</p>
<p>
Use <var>Value</var> to access the element in Values for the current selection (<var>ItemIndex</var>) in the control.
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.DataChange"/>
<link id="TDBRadioGroup.ItemIndex"/>
<link id="TDBRadioGroup.DataField"/>
<link id="TDBRadioGroup.DataSource"/>
<link id="TDBRadioGroup.DataLink"/>
<link id="TDBRadioGroup.Value"/>
<link id="#lcl.extctrls.TCustomRadioGroup.Items">TCustomRadioGroup.Items</link>
</seealso>
</element>
<element name="TDBRadioGroup.OnChange">
<short>Event Handler signalled when the Value for the control is changed.
</short>
<descr>
<p>
<var>OnChange</var> is a
<var>TNotifyEvent</var> property which contains the event handler signalled when the
<var>Value</var> for the control is changed. OnChange can be used in an application to perform actions needed after Value (and
<var>ItemIndex</var>) has been updated, and the corresponding radio button has been set to the checked state.
</p>
<p>OnChange is signalled from the <var>Change</var> method.
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.Change"/>
<link id="TDBRadioGroup.ItemIndex"/>
<link id="TDBRadioGroup.Value"/>
</seealso>
</element>
<element link="#lcl.controls.TControl.OnChangeBounds" name="TDBRadioGroup.OnChangeBounds"/>
<element link="#lcl.controls.TControl.OnClick" name="TDBRadioGroup.OnClick"/>
<element name="TDBRadioGroup.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBRadioGroup.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBRadioGroup.OnDragOver"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBRadioGroup.OnEndDrag"/>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBRadioGroup.OnMouseDown"/>
<element link="#lcl.controls.TControl.OnMouseEnter" name="TDBRadioGroup.OnMouseEnter"/>
<element link="#lcl.controls.TControl.OnMouseLeave" name="TDBRadioGroup.OnMouseLeave"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBRadioGroup.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseUp" name="TDBRadioGroup.OnMouseUp"/>
<element link="#lcl.controls.TControl.OnMouseWheel" name="TDBRadioGroup.OnMouseWheel"/>
<element link="#lcl.controls.TControl.OnMouseWheelDown" name="TDBRadioGroup.OnMouseWheelDown"/>
<element link="#lcl.controls.TControl.OnMouseWheelUp" name="TDBRadioGroup.OnMouseWheelUp"/>
<element link="#lcl.controls.TControl.OnResize" name="TDBRadioGroup.OnResize"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBRadioGroup.OnStartDrag"/>
<element link="#lcl.controls.TControl.ParentBiDiMode" name="TDBRadioGroup.ParentBiDiMode"/>
<element link="#lcl.controls.TControl.ParentColor" name="TDBRadioGroup.ParentColor"/>
<element link="#lcl.controls.TWinControl.ParentDoubleBuffered" name="TDBRadioGroup.ParentDoubleBuffered"/>
<element link="#lcl.controls.TControl.ParentFont" name="TDBRadioGroup.ParentFont"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBRadioGroup.ParentShowHint"/>
<element link="#lcl.controls.TControl.PopupMenu" name="TDBRadioGroup.PopupMenu"/>
<element name="TDBRadioGroup.ReadOnly">
<short>
<var>ReadOnly</var> - if <b>True</b>, data can only be read, not written or modified. (Doesn't really make sense for a RadioGroup!).
</short>
<descr>
<p>
<var>ReadOnly</var> is a <var>Boolean</var> property which indicates if the control, and its linked dataset can be modified. Read and write access for the property value are redirected to the <var>ReadOnly</var> property in <var>DataLink</var>.
</p>
<p>
The default value for the property is <b>False</b>.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.CanModify"/>
<link id="TDataLink.ReadOnly"/>
</seealso>
</element>
<element link="#lcl.controls.TControl.ShowHint" name="TDBRadioGroup.ShowHint"/>
<element link="#lcl.controls.TWinControl.TabOrder" name="TDBRadioGroup.TabOrder"/>
<element link="#lcl.controls.TWinControl.TabStop" name="TDBRadioGroup.TabStop"/>
<element name="TDBRadioGroup.Values">
<short>The <var>values</var> of the strings in <var>Items</var>.
</short>
<descr>
<p>
<var>Values</var> is a
<var>TStrings</var> property which contains strings entries that can be stored as the
<var>Value</var> for the control. Values is used in conjunction with the
<var>Items</var> property, which defines the captions displayed for the radio buttons in the grouped control.
</p>
<p>Assigning a new value to the property causes the <var>DataChange</var> method to be called after assigning the new property value.
</p>
</descr>
<seealso>
<link id="TDBRadioGroup.Items"/>
<link id="TDBRadioGroup.ItemIndex"/>
<link id="TDBRadioGroup.Value"/>
<link id="TDBRadioGroup.DataChange"/>
</seealso>
</element>
<element name="TDBRadioGroup.Visible">
<short>Indicates if the control is visible on its parent.</short>
<descr>
<p>
The Visible property represents the ability to see a visual control. If Visible is <b>True</b> the control is shown, otherwise it is hidden. Calling Show sets, among others, Visible to <b>True</b>. Setting Visible to <b>False</b> is equivalent to calling Hide method.
</p>
<remark>
The Visible property does not depend on control's parent visibility. Use IsVisible method to consider this and get real visibility.
</remark>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Visible">TControl.Visible</link>
</seealso>
</element>
<element name="TDBCheckBox">
<short>Implements a data-aware checkbox control.</short>
<descr>
<p>
<var>TDBCheckBox</var> implements a data-aware checkbox control for use with a logical field in a database. The dataset field can be represented using either a
<var>Boolean</var> or a
<var>String</var> data type.
</p>
<p>TDBCheckBox is a <var>TCustomCheckBox</var> descendant, and provides support for a linked dataset with the value for the control. Internally, it uses a <var>TFieldDataLink</var> instance to maintain an association between the control and its <var>DataSource</var> and <var>DataField</var>.
</p>
<p>Support for <var>TBasicAction</var> is also implemented in the control using its <var>Action</var> property.
</p>
<p>Use the following properties to configure and control the data-aware checkbox control:
</p>
<ul>
<li>DataSource</li>
<li>DataField</li>
<li>Field</li>
<li>Checked</li>
<li>ValueChecked</li>
<li>ValueUnchecked</li>
<li>Caption</li>
<li>ReadOnly</li>
<li>State</li>
</ul>
</descr>
<seealso>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TDBCheckBox.FDataLink"/>
<element name="TDBCheckBox.FValueCheck"/>
<element name="TDBCheckBox.FValueUncheck"/>
<element name="TDBCheckBox.GetDataField">
<short>Gets the value for the DataField property.</short>
</element>
<element name="TDBCheckBox.GetDataField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBCheckBox.GetDataSource">
<short>Gets the value for the DataSource property.</short>
</element>
<element name="TDBCheckBox.GetDataSource.Result">
<short>Value for the property.</short>
</element>
<element name="TDBCheckBox.GetField">
<short>Gets the value for the Field property.</short>
</element>
<element name="TDBCheckBox.GetField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBCheckBox.GetReadOnly">
<short>Gets the value for the ReadOnly property.</short>
</element>
<element name="TDBCheckBox.GetReadOnly.Result">
<short>Value for the property.</short>
</element>
<element name="TDBCheckBox.SetDataField">
<short>Sets the value for the DataField property.</short>
<descr/>
<seealso>
<link id="TDBCheckBox.DataField"/>
</seealso>
</element>
<element name="TDBCheckBox.SetDataField.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCheckBox.SetDataSource">
<short>Sets the value for the DataSource property.</short>
<descr/>
<seealso>
<link id="TDBCheckBox.DataSource"/>
</seealso>
</element>
<element name="TDBCheckBox.SetDataSource.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCheckBox.SetReadOnly">
<short>Sets the value for the ReadOnly property.</short>
<descr/>
<seealso>
<link id="TDBCheckBox.ReadOnly"/>
</seealso>
</element>
<element name="TDBCheckBox.SetReadOnly.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCheckBox.SetValueChecked">
<short>Sets the value for the ValueChecked property.</short>
<descr/>
<seealso>
<link id="TDBCheckBox.ValueChecked"/>
</seealso>
</element>
<element name="TDBCheckBox.SetValueChecked.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCheckBox.SetValueUnchecked">
<short>Sets the value for the ValueUnchecked property.</short>
<descr/>
<seealso>
<link id="TDBCheckBox.ValueUnchecked"/>
</seealso>
</element>
<element name="TDBCheckBox.SetValueUnchecked.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCheckBox.CMGetDataLink">
<short>Implements the CM_GETDATALINK control message for the data-aware control.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCheckBox.CMGetDataLink.Message">
<short>Message examined and updated in the method.</short>
</element>
<element name="TDBCheckBox.GetFieldCheckState">
<short>
<var>GetFieldCheckState</var> - returns the checkbox state for the current field.
</short>
<descr>
<p>
<var>GetFieldCheckState</var> is a
<var>TCheckBoxState</var> function used to get the current state for the checkbox. GetFieldCheckState uses the internal
<var>TFieldDataLink</var> instance in the class to access the
<var>Field</var> in the linked dataset represented by
<var>DataField</var>.
</p>
<p>The field value is examined to get the return value for the method. The return value can be one of the following:
</p>
<dl>
<dt>cbChecked</dt>
<dd>Used when the Boolean value in the Field is True.
</dd>
<dt>cbUnchecked</dt>
<dd>Used when the Boolean value in the Field is False, or the String value matched ValueChecked. Also used when the Field has not been assigned (contains Nil).
</dd>
<dt>cbGrayed</dt>
<dd>Used when the value in Field is NULL, and when none of the previous conditions are True.
</dd>
</dl>
<p>The return value is assigned to the <var>State</var> property when the <var>DoOnChange</var> and <var>DataChange</var> methods are executed.
</p>
</descr>
<seealso/>
</element>
<element name="TDBCheckBox.GetFieldCheckState.Result">
<short>Current TCheckBoxState for the control.</short>
</element>
<element name="TDBCheckBox.DataChange">
<short>Updates the control display value when the linked dataset is changed.
</short>
<descr>
<p>
<var>DataChange</var> is used to perform actions needed when the linked dataset for the control has been changed. In TDBCheckBox, this requires setting the
<var>State</var> property for the control. DataChange calls the GetFieldCheckState method to get the value for the State property.
</p>
<p>DataChange is assigned as the <var>OnDataChange</var> event handler in the internal <var>TFieldDataLink</var> instance.
</p>
</descr>
</element>
<element name="TDBCheckBox.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBCheckBox.DoOnChange">
<short>Performs actions needed when the control is clicked.</short>
<descr>
<p>
<var>DoOnChange</var> is an overridden method in <var>TDBCheckBox</var>. It ensures that the internal <var>TFieldDataLink</var> is notified of a change to the control value. The <var>Edit</var>, <var>Modified</var>, and <var>UpdateRecord</var> methods in the field data link are called to store the new value for the control. If the linked dataset cannot be edited, the <var>GetFieldCheckState</var> is called to get the value stored in the <var>State</var> property.
</p>
<p>
DoOnChange calls the inherited method prior to exit.
</p>
<remark>
No actions are performed in the method when the internal TFieldDataLink does not have an assigned <var>OnDataChange</var> event handler.
</remark>
</descr>
<seealso>
<link id="TDBCheckBox.State"/>
<link id="TDBCheckBox.GetFieldCheckState"/>
<link id="TFieldDataLink.Edit"/>
<link id="TFieldDataLink.Modified"/>
<link id="#lcl.stdctrls.TButtonControl.DoOnChange">TButtonControl.DoOnChange</link>
<link id="#fcl.db.TDataLink.UpdateRecord">TDataLink.UpdateRecord</link>
</seealso>
</element>
<element name="TDBCheckBox.UpdateData">
<short>
<var>UpdateData</var> - examines the <var>State</var> to see whether it has changed.
</short>
<descr>
<p>
<var>UpdateData</var> is a procedure used to update the linked dataset for the control when the value in the <var>State</var> property has been changed.
</p>
<p>
When State contains <var>cbGrayed</var>, the <var>Field</var> in the linked dataset is cleared. For other values, the Field data type determines whether one of the values in <var>Checked</var>, <var>ValueChecked</var>, or <var>ValueUnchecked</var> is used. If the Field is a <var>Boolean</var> data type, the value in Checked is stored to the linked dataset. Otherwise, the text for the field is updated using the value from <var>ValueChecked</var> (when Checked is <b>True</b>) or <var>ValueUnchecked</var> (when Checked is <b>False</b>).
</p>
<p>
UpdateData is used as the <var>OnUpdateData</var> event handler in the internal <var>TFieldDataLink</var> instance for the class.
</p>
</descr>
<seealso>
<link id="TDBCheckBox.State"/>
<link id="TDBCheckBox.Checked"/>
<link id="TDBCheckBox.DataField"/>
<link id="TDBCheckBox.DataSource"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.OnUpdateData"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
</seealso>
</element>
<element name="TDBCheckBox.UpdateData.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBCheckBox.Notification">
<short>Handles notification events for components used in the class instance.</short>
<descr>
<p>
<var>Notification</var> is an overridden procedure in <var>TDBCheckBox</var>, and calls the inherited method. Notification ensures that an assigned value in <var>DataSource</var> is cleared (set to <b>Nil</b>) when the DataSource component is destroyed.
</p>
</descr>
<seealso>
<link id="TDBCheckBox.DataSource"/>
<link id="#rtl.classes.TComponent.Notification">TComponent.Notification</link>
</seealso>
</element>
<element name="TDBCheckBox.Notification.AComponent">
<short>Component for the notification.</short>
</element>
<element name="TDBCheckBox.Notification.Operation">
<short>Operation for the notification.</short>
</element>
<element name="TDBCheckBox.Create">
<short>Constructor for the class instance.</short>
<descr>
<var>Create</var> is the constructor for
<var>TDBCheckBox</var>. It calls the inherited
<var>Create</var> method, and forms the logical connections for checked and unchecked, sets initial style and state, forms datalinks and actions.
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomCheckBox.Create">TCustomCheckBox.Create</link>
</seealso>
</element>
<element name="TDBCheckBox.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TDBCheckBox.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<var>Destroy</var> is the destructor for
<var>TDBCheckBox</var>. It frees links and calls inherited
<var>Destroy</var> method.
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.Destroy">TWinControl.Destroy</link>
</seealso>
</element>
<element name="TDBCheckBox.ExecuteAction">
<short>Implements support for TBasicAction in the data-aware control.
</short>
<descr>
<p>
<var>ExecuteAction</var> is an overridden
<var>Boolean</var> function in
<var>TDBCheckBox</var>. It extends the method from the ancestor class to include support for use of the internal
<var>TFieldDataLink</var> to execute the action.
</p>
<p>
<var>AAction</var> is the
<var>TBasicAction</var> examined and potentially executed in the method.
</p>
<p>The return value is <b>True</b> when <var>AAction</var> is executed in in the method.
</p>
<p>ExecuteAction calls the inherited method. If AAction is not handled in the ancestor class, the internal <var>TFieldDataLink</var> is used to execute the action. No actions are performed in the method when the field data link has not been assigned, or when the action is not supported for the data link.
</p>
<p>Use <var>Action</var> to set the <var>TBasicAction</var> assigned to the <var>ActionLink</var> for the control, and executed in the <var>Click</var> method for the control.
</p>
</descr>
<seealso>
<link id="#fcl.db.TDataLink.ExecuteAction">TDataLink.ExecuteAction</link>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
<link id="#lcl.controls.TControl.Action">TControl.Action</link>
<link id="#lcl.controls.TControl.Click">TControl.Click</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
<link id="#rtl.classes.TComponent.ExecuteAction">TComponent.ExecuteAction</link>
</seealso>
</element>
<element name="TDBCheckBox.ExecuteAction.Result">
<short>True if the action was executed in the method.</short>
</element>
<element name="TDBCheckBox.ExecuteAction.AAction">
<short>Action examined an executed in the method.</short>
</element>
<element name="TDBCheckBox.UpdateAction">
<short>Updates the state for the specified action.</short>
<descr>
<p>
<var>UpdateAction</var> is overridden in <var>TDBCheckBox</var>, and checks the action specified in
<var>AAction</var> to ensure that the current control is a target for the action.
</p>
<p>
UpdateAction calls the inherited method to determine if the control is a target for the action. If it is not handled (or updated), the internal <var>TFieldDataLink</var> instance calls its <var>UpdateAction</var> method. The action is supported when the <var>DataSource</var> is the target for the action.
</p>
<p>
No actions are performed in the method, and the return value is <b>False</b>, when the field data link has not been assigned. The return value is <b>True</b> when the action is supported for the control, and successfully updated in the method.
</p>
</descr>
<seealso>
<link id="TDBCheckBox.DataSource"/>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
<link id="#lcl.controls.TControl.Action">TControl.Action</link>
<link id="#rtl.classes.TComponent.UpdateAction">TComponent.UpdateAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TDBCheckBox.UpdateAction.Result">
<short>True when the action is supported and updated in the method.</short>
</element>
<element name="TDBCheckBox.UpdateAction.AAction">
<short>Action examined and updated in the method.</short>
</element>
<element link="#lcl.stdctrls.TButtonControl.Checked" name="TDBCheckBox.Checked"/>
<element name="TDBCheckBox.Field">
<short>Provides access to the field definition for the data-aware control.</short>
<descr>
<p>
<var>Field</var> is a read-only <var>TField</var> property which provides access to the field definition to which the data-aware control is linked. Read access for the property is redirected to the <var>Field</var> property in the internal <var>TFieldDataLink</var> class instance.
</p>
<p>
Field can be used to access properties, methods, and events for the field definition in the linked dataset. This includes the data type, field kind, size, current value, display labels, key fields, lookup information, constraints, etc. There are also properties which handle conversion of the field value to different data types.
</p>
<p>
Use <var>DataField</var> to read or write the field name used for the data-aware control. Use <var>DataSource</var> to specify the data source with the dataset containing the specified field name.
</p>
</descr>
<seealso>
<link id="TDBCheckBox.DataField"/>
<link id="TDBCheckBox.DataSource"/>
<link id="TFieldDataLink"/>
<link id="#fcl.db.TField">TField</link>
</seealso>
</element>
<element link="#lcl.stdctrls.TCustomCheckBox.State" name="TDBCheckBox.State">
<descr>
<p>See <link id="#lcl.stdctrls.TCheckBoxState">TCheckBoxState</link> for possible values of <var>State</var>.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCheckBoxState">TCheckBoxState</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Action" name="TDBCheckBox.Action"/>
<element link="#lcl.controls.TControl.Align" name="TDBCheckBox.Align"/>
<element name="TDBCheckBox.Alignment" link="#lcl.stdctrls.TCustomCheckBox.Alignment"/>
<element link="#lcl.stdctrls.TCustomCheckBox.AllowGrayed" name="TDBCheckBox.AllowGrayed"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBCheckBox.Anchors"/>
<element link="#lcl.controls.TControl.AutoSize" name="TDBCheckBox.AutoSize"/>
<element link="#lcl.controls.TControl.BiDiMode" name="TDBCheckBox.BiDiMode"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBCheckBox.BorderSpacing"/>
<element name="TDBCheckBox.Caption">
<short>
Text displayed as the caption for the control.
</short>
<descr>
<p>Gets the caption for the control as a text-string (<var>GetText</var>), or stores the new caption (<var>SetText</var>). Updates an internal flag if the caption is stored (<var>IsCaptionStored</var>).
</p>
<p>By default, the <var>Caption</var> appears the same as the control <var>Name</var> in the Object Inspector, and the developer needs to set it explicitly to some new text.
</p>
<p>The VCL implementation relies on the virtual <var>Get/SetTextBuf</var> to exchange text between widgets and VCL. This means a lot of (unnecessary) text copies.
</p>
<p>The LCL uses strings for exchanging text (more efficient). To maintain VCL compatibility, the virtual <var>RealGet/SetText</var> is introduced. These functions interface with the LCLInterface.
</p>
<p>The default <var>Get/SetTextBuf</var> implementation calls the <var>RealGet/SetText</var>. As long as the <var>Get/SetTextBuf</var> isn't overridden <var>Get/SetText</var> calls <var>RealGet/SetText</var> to avoid PChar copying.
</p>
<p>To keep things optimal, LCL implementations should always override RealGet/SetText. Get/SetTextBuf is only kept for compatibility.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Caption">TControl.Caption</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Color" name="TDBCheckBox.Color"/>
<element link="#lcl.controls.TControl.Constraints" name="TDBCheckBox.Constraints"/>
<element name="TDBCheckBox.DataField">
<short>The name (as a string) of the field with which the checkbox is to be associated.
</short>
<descr>
<p>
<var>DataField</var> is a
<var>String</var> property which specifies the name of the field in the linked dataset where the value for the data-aware control is stored. Read and write access to the property value is redirected to the
<var>FieldName</var> property in the internal
<var>TFieldDataLink</var> instance used in the class.
</p>
<p>The field can use either a <var>Boolean</var> or a <var>String</var> data type. For a String field type, use either the <var>ValueChecked</var> or <var>ValueUnchecked</var> property to define the value stored in the dataset for the corresponding control <var>State</var>.
</p>
<p>Use <var>DataSource</var> to specify the linked dataset for the data-aware control.
</p>
<p>Use <var>Checked</var> to read or write the control state (and the value for the field) as a Boolean data type.
</p>
</descr>
<seealso>
<link id="TDBCheckBox.State"/>
<link id="TDBCheckBox.Checked"/>
<link id="TDBCheckBox.DataSource"/>
<link id="TDBCheckBox.ValueChecked"/>
<link id="TDBCheckBox.ValueUnchecked"/>
<link id="TFieldDataLink.FieldName"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
</seealso>
</element>
<element name="TDBCheckBox.DataSource">
<short>Provides access to the dataset with content for the control.
</short>
<descr>
<p>
<var>DataSource</var> is a
<var>TDataSource</var> property which provides access to the content for the data-aware control. DataSource is used in conjunction with the
<var>Field</var> property to determine the dataset and field definition used when reading the value for the control.
</p>
<p>Read and write access to the property value is redirected to the DataSource property in the internal <var>TFieldDataLink</var> instance used in the control. Assigning a new value at run-time to the property causes the <var>ChangeDataSource</var> routine to be called to apply the value to the internal TFieldDataLink instance.
</p>
<p>Use the <var>DataField</var> property to specify the field name accessed in the linked dataset.
</p>
</descr>
<seealso/>
</element>
<element link="#lcl.controls.TWinControl.DoubleBuffered" name="TDBCheckBox.DoubleBuffered"/>
<element link="#lcl.controls.TControl.DragCursor" name="TDBCheckBox.DragCursor"/>
<element link="#lcl.controls.TControl.DragKind" name="TDBCheckBox.DragKind"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBCheckBox.DragMode"/>
<element link="#lcl.controls.TControl.Enabled" name="TDBCheckBox.Enabled"/>
<element link="#lcl.controls.TControl.Font" name="TDBCheckBox.Font"/>
<element link="#lcl.controls.TControl.Hint" name="TDBCheckBox.Hint"/>
<element link="#lcl.stdctrls.TButtonControl.OnChange" name="TDBCheckBox.OnChange"/>
<element link="#lcl.controls.TControl.OnClick" name="TDBCheckBox.OnClick"/>
<element name="TDBCheckBox.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBCheckBox.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBCheckBox.OnDragOver"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBCheckBox.OnEndDrag"/>
<element link="#lcl.controls.TWinControl.OnEnter" name="TDBCheckBox.OnEnter"/>
<element link="#lcl.controls.TWinControl.OnExit" name="TDBCheckBox.OnExit"/>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBCheckBox.OnMouseDown"/>
<element link="#lcl.controls.TControl.OnMouseEnter" name="TDBCheckBox.OnMouseEnter"/>
<element link="#lcl.controls.TControl.OnMouseLeave" name="TDBCheckBox.OnMouseLeave"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBCheckBox.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseUp" name="TDBCheckBox.OnMouseUp"/>
<element link="#lcl.controls.TControl.OnMouseWheel" name="TDBCheckBox.OnMouseWheel"/>
<element link="#lcl.controls.TControl.OnMouseWheelDown" name="TDBCheckBox.OnMouseWheelDown"/>
<element link="#lcl.controls.TControl.OnMouseWheelUp" name="TDBCheckBox.OnMouseWheelUp"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBCheckBox.OnStartDrag"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBCheckBox.ParentShowHint"/>
<element link="#lcl.controls.TControl.ParentBiDiMode" name="TDBCheckBox.ParentBiDiMode"/>
<element link="#lcl.controls.TControl.ParentColor" name="TDBCheckBox.ParentColor"/>
<element link="#lcl.controls.TWinControl.ParentDoubleBuffered" name="TDBCheckBox.ParentDoubleBuffered"/>
<element link="#lcl.controls.TControl.ParentFont" name="TDBCheckBox.ParentFont"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBCheckBox.ParentShowHint"/>
<element link="#lcl.controls.TControl.PopupMenu" name="TDBCheckBox.PopupMenu"/>
<element name="TDBCheckBox.ReadOnly">
<short>
<var>ReadOnly</var> - if
<b>True</b>, data may be read but not written or modified (doesn't make much sense for a check-box unless the box is NOT Enabled!).
</short>
<descr/>
<seealso/>
</element>
<element link="#lcl.controls.TControl.ShowHint" name="TDBCheckBox.ShowHint"/>
<element link="#lcl.controls.TWinControl.TabOrder" name="TDBCheckBox.TabOrder"/>
<element link="#lcl.controls.TWinControl.TabStop" name="TDBCheckBox.TabStop"/>
<element name="TDBCheckBox.ValueChecked">
<short>
<var>ValueChecked</var> is the value to use when the box is checked, for example
<b>True</b> or 1
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCheckBox.ValueUnchecked">
<short>
<var>ValueUnchecked</var> is the value to use when the box is unchecked, for example
<b>False</b> or 0
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCheckBox.Visible">
<short>
Indicates if the control is visible on its parent.
</short>
<descr>
<p>The Visible property represents the ability to see a visual control. If Visible is <b>True</b> the control is shown, otherwise it is hidden. Calling Show sets, among others, Visible to <b>True</b>. Setting Visible to <b>False</b> is equivalent to calling Hide method.
</p>
<remark>The Visible property does not depend on control's parent visibility. Use IsVisible method to consider this and get real visibility.
</remark>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Visible">TControl.Visible</link>
</seealso>
</element>
<element name="TCustomDBComboBox">
<short>
<var>TCustomDBComboBox</var> is a data-aware combo-box for displaying information from a database.
</short>
<descr>
<p>
<var>TCustomDBComboBox</var> is a
<var>TCustomComboBox</var> descendant which specifies a data-aware combo-box control used to display and edit values in a database table. TCustomDBComboBox extends the ancestor class to provide
<var>DataField</var>,
<var>DataSource</var>, and
<var>Field</var> properties needed to control access to the field in a linked dataset.
</p>
<p>Methods are provided which enable the database features for the control, and maintain the interaction between the control and the underlying dataset. Internally, a <var>TFieldDataLink</var> class instance is used to maintain the association between the control and it data source and field.
</p>
<p>TCustomDBComboBox is used as the ancestor for the <var>TDBComboBox</var> and <var>TDBLookupComboBox</var> controls. Do not create instances of TCustomDBComboBox; use one of the descendent classes.
</p>
</descr>
<seealso>
<link id="TDBComboBox"/>
<link id="TDBLookupComboBox"/>
<link id="#lcl.stdctrls.TCustomComboBox">TCustomComboBox</link>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TCustomDBComboBox.FDataLink"/>
<element name="TCustomDBComboBox.FDetectedEvents"/>
<element name="TCustomDBComboBox.GetDataField">
<short>Gets the value for the DataField property.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDBComboBox.GetDataField.Result">
<short>Value for the DataField property.</short>
</element>
<element name="TCustomDBComboBox.GetDataSource">
<short>Gets the value for the DataSource property.</short>
<descr>
<p>
<var>GetDataSource</var> is a
<var>TDataSource</var> function used to get the value for the
<var>DataSource</var> property.
</p>
</descr>
<seealso>
<link id="TCustomDBComboBox.DataSource"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
</seealso>
</element>
<element name="TCustomDBComboBox.GetDataSource.Result">
<short>Value for the DataSource property.</short>
</element>
<element name="TCustomDBComboBox.GetField">
<short>Gets the value for the Field property.</short>
<descr>
<p>
<var>GetField</var> is a
<var>TField</var> function used to get the value for the
<var>Field</var> property.
</p>
</descr>
<seealso>
<link id="TCustomDBComboBox.Field"/>
<link id="#fcl.db.TField">TField</link>
</seealso>
</element>
<element name="TCustomDBComboBox.GetField.Result">
<short>Value for the Field property.</short>
</element>
<element name="TCustomDBComboBox.GetReadOnly">
<short>Gets the value for the ReadOnly property.</short>
<descr/>
<seealso>
<link id="TCustomDBComboBox.ReadOnly"/>
</seealso>
</element>
<element name="TCustomDBComboBox.GetReadOnly.Result">
<short>Value for the ReadOnly property.</short>
</element>
<element name="TCustomDBComboBox.SetDataField">
<short>Sets the value for the DataField property.</short>
<descr/>
<seealso>
<link id="TCustomDBComboBox.DataField"/>
</seealso>
</element>
<element name="TCustomDBComboBox.SetDataField.AValue">
<short>New value for the DataField property.</short>
</element>
<element name="TCustomDBComboBox.SetDataSource">
<short>Sets the value for the DataSource property.</short>
<descr/>
<seealso>
<link id="TCustomDBComboBox.DataSource"/>
</seealso>
</element>
<element name="TCustomDBComboBox.SetDataSource.AValue">
<short>New value for the DataSource property.</short>
</element>
<element name="TCustomDBComboBox.SetReadOnly">
<short>Sets the value for the ReadOnly property.</short>
<descr/>
<seealso>
<link id="TCustomDBComboBox.ReadOnly"/>
</seealso>
</element>
<element name="TCustomDBComboBox.SetReadOnly.AValue">
<short>New value for the ReadOnly property.</short>
</element>
<element name="TCustomDBComboBox.CMGetDataLink">
<short>Implements the message to get the data link for the control.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDBComboBox.CMGetDataLink.Message">
<short>Control message updated in the the method.</short>
</element>
<element name="TCustomDBComboBox.DoEdit">
<short>Performs LCL deferred edit messages for events detected in the control.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDBComboBox.DoEdit.Result">
<short>True if the field was edited in the linked data set.</short>
</element>
<element name="TCustomDBComboBox.DoOnCloseUp">
<short>Performs actions to close the drop down for the combo-box.</short>
<descr/>
<seealso>
<link id="TCustomDBComboBox.CloseUp"/>
<link id="TCustomComboBox.OnCloseUp"/>
<link id="TCustomDBComboBox.Text"/>
<link id="TCustomComboBox.AutoSelect"/>
<link id="TCustomComboBox.AutoSelected"/>
<link id="TCustomComboBox.SelectAll"/>
<link id="TCustomComboBox.SelText"/>
</seealso>
</element>
<element name="TCustomDBComboBox.DoOnSelect">
<short>Calls Select to trigger the OnSelect event handler.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDBComboBox.DoOnChange">
<short>Calls Change to trigger the OnChange event handler.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDBComboBox.LMDeferredEdit">
<short>Implements the LCL message for a deferred edit.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDBComboBox.LMDeferredEdit.Message">
<short>Message handled in the method.</short>
</element>
<element name="TCustomDBComboBox.DetectedEvents">
<short>Deferred messages pending for the control.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDBComboBox.CloseUp">
<short>Sets deferred events when the drop down for the combo-box is closed.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDBComboBox.Select">
<short>Checks for the DBCBEVENT_SELECT message in the control.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDBComboBox.DataChange">
<short>
<var>DataChange</var> - updates any changes in text.
</short>
<descr>
<p>
<var>DataChange</var> is an abstract virtual method in
<var>TCustomDBComboBox</var>. It must be implemented in a descendent class to perform the actions needed for the data-aware control.
</p>
</descr>
</element>
<element name="TCustomDBComboBox.DoMouseWheel">
<short>Checks for mouse wheel events in the control.</short>
<descr/>
<seealso/>
</element>
<element name="TCustomDBComboBox.DoMouseWheel.Shift">
<short>Shift state for the mouse wheel event.</short>
</element>
<element name="TCustomDBComboBox.DoMouseWheel.WheelDelta">
<short>Number of clicks that the mouse wheel was moved.</short>
</element>
<element name="TCustomDBComboBox.DoMouseWheel.MousePos">
<short>Mouse cursor position for the mouse wheel event.</short>
</element>
<element name="TCustomDBComboBox.Notification" link="#lcl.controls.TControl.Notification"/>
<element name="TCustomDBComboBox.Change">
<short>
<var>Change</var> -if there has been a change to the data the link must be notified.
</short>
<descr>
<p>
<var>Change</var> is an overridden method in
<var>TCustomDBComboBox</var>. It ensures that the internal data link for the control is notified when the value for the control is changed. This includes posting the DBCBEVENT_CHANGE deferred event message to the handle for the control.
</p>
<remark>
Change does not call the inherited method directly.
</remark>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.Change">TCustomComboBox.Change</link>
</seealso>
</element>
<element name="TCustomDBComboBox.KeyDown">
<short>Performs actions needed to apply the key down event.</short>
<descr>
<p>KeyDown is an overridden method in TCustomDBComboBox, and calls the inherited method on entry. It ensures that a virtual key which affects the datasource state is applied to the control. KeyDown handles the following virtual key codes:
</p>
<dl>
<dt>VK_ESCAPE</dt>
<dd>Editing is cancelled. Calls the Cancel method in the linked dataset when the datasource is in an edit state. Calls the Reset method for the data link if the datasource is not being edited. Calls SelectAll to re-select content in the control. Sets Key to VK_UNKNOWN after applying the original virtual key code.
</dd>
</dl>
</descr>
<seealso>
<link id="TFieldDataLink.Reset"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
<link id="#fcl.db.TDataSet.Cancel">TDataSet.Cancel</link>
<link id="#lcl.stdctrls.TCustomComboBox.KeyDown">TCustomComboBox.KeyDown</link>
</seealso>
</element>
<element name="TCustomDBComboBox.KeyDown.Key">
<short>Virtual key code handled in the method.</short>
</element>
<element name="TCustomDBComboBox.KeyDown.Shift">
<short>Key modifier handled in the method.</short>
</element>
<element name="TCustomDBComboBox.UpdateData">
<short>
<var>UpdateData</var> - implements any pending changes in the data.</short>
<descr>
<p>
<var>UpdateData</var> is an abstract virtual method in <var>TCustomDBComboBox</var>. It must be implemented in descendent classes, like TDBComboBox or TDBLookComboBox, to perform any actions needed to update the value stored in the Field for the control.
</p>
</descr>
<seealso>
<link id="TDBComboBox.UpdateData"/>
<link id="TDBLookUpComboBox.UpdateData"/>
</seealso>
</element>
<element name="TCustomDBComboBox.UpdateRecord">
<short>Updates the record in the linked dataset with the value for the control.
</short>
<descr>
<p>
<var>UpdateRecord</var> is a procedure used to update the record in the linked dataset with the value for the control. UpdateRecord uses the internal <var>TFieldDataLink</var> instance to checking the editing state for the control. When both <var>Editing</var> and <var>IsModified</var> are <b>True</b>, the <var>UpdateRecord</var> method in the data link is called. No actions are performed in the method if either condition is not met.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Editing"/>
<link id="#fcl.db.TDataLink.UpdateRecord">TDataLink.UpdateRecord</link>
</seealso>
</element>
<element name="TCustomDBComboBox.WndProc">
<short>Handles cut, copy and paste window messages for the control.
</short>
<descr>
<p>
<var>WndProc</var> is an overridden method in
<var>TCustomDBComboBox</var>. WndProc ensures that LCL Cut, Copy, and Paste window messages are applied when both the control and the dataset can be modified. WndProc uses the internal
<var>TFieldDataLink</var> instance to examine the value in
<var>CanModify</var>. When it is
<b>True</b>, the inherited method is called. Otherwise, the Message result is set to 1 to prevent calling the default window process.
</p>
<p>The inherited method is called for LCL window messages other than Cut, Copy, and Paste.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.CanModify"/>
<link id="#lcl.controls.TWinControl.WndProc">TWinControl.WndProc</link>
</seealso>
</element>
<element name="TCustomDBComboBox.WndProc.Message">
<short>LCL window message examined in the method.</short>
</element>
<element name="TCustomDBComboBox.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 constructor on entry. Create allocates and configures the internal
<var>TFieldDataLink</var> instance used in the control. Its
<var>OnDataChange</var> and
<var>OnUpdateData</var> event handlers are set to the
<var>DataChange</var> and
<var>UpdateData</var> methods (respectively). Create sets the value used in
<var>ControlStyle</var>.
</p>
</descr>
<seealso>
<link id="TCustomDBComboBox.DataChange"/>
<link id="TCustomDBComboBox.UpdateData"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="TFieldDataLink.OnUpdateData"/>
<link id="#lcl.controls.TControl.ControlStyle">TControl.ControlStyle</link>
</seealso>
</element>
<element name="TCustomDBComboBox.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TCustomDBComboBox.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance. Destroy ensures that the internal
<var>TFieldDataLink</var> instance for the class is freed prior to calling the inherited destructor.
</p>
</descr>
<seealso>
<link id="TFieldDataLink"/>
<link id="#lcl.stdctrls.TCustomComboBox.Destroy">TCustomComboBox.Destroy</link>
</seealso>
</element>
<element name="TCustomDBComboBox.ExecuteAction">
<short>Provides support for TBasicAction in the control.</short>
<descr>
<p>
<var>ExecuteAction</var> is an overridden method in
<var>TCustomDBComboBox</var>. It calls the inherited method, and when the action is not handled in the ancestor, executes
<var>AAction</var> using the
<var>ExecuteAction</var> method in the internal
<var>TFieldDataLink</var> instance in the class.
</p>
<p>The return value is <b>True</b> if the action was executed in the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.ExecuteAction">TComponent.ExecuteAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TCustomDBComboBox.ExecuteAction.AAction">
<short>Action examined and executed in the method.</short>
</element>
<element name="TCustomDBComboBox.ExecuteAction.Result">
<short>True if the action was executed in the method.</short>
</element>
<element name="TCustomDBComboBox.UpdateAction">
<short>Updates the specified action to reflect the current state in the linked dataset.
</short>
<descr>
<p>
<var>UpdateAction</var> is an overridden
<var>Boolean</var> function in
<var>TDBEdit</var>. UpdateAction is called when the
<var>Application</var> enters an idle state to ensure that the action reflects the current state for a linked dataset.
</p>
<p>
<var>AAction</var> is the
<var>TBasicAction</var> updated in the method.
</p>
<p>UpdateAction calls the inherited method, and when the internal dataset link has been assigned, executes its UpdateAction method. The return value is <b>True</b> when AAction is updated using either the inherited method, or the method in the linked dataset. The return value is <b>False</b> when AAction could not be updated in the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
<link id="#rtl.classes.TComponent.UpdateAction">TComponent.UpdateAction</link>
</seealso>
</element>
<element name="TCustomDBComboBox.UpdateAction.AAction">
<short>Action examined and updated in the method.</short>
</element>
<element name="TCustomDBComboBox.UpdateAction.Result">
<short>True when the action was updated in the method.</short>
</element>
<element name="TCustomDBComboBox.EditingDone">
<short>
<var>EditingDone</var> - updates data through the link, then calls inherited
<var>EditingDone</var>.
</short>
<descr>
<p>
<var>EditingDone</var> is an overridden method used to perform actions needed when the control has finished editing its value. EditingDone calls
<var>UpdateRecord</var> to post the modified control value to the Field in the linked dataset. EditingDone calls the inherited method to signal the
<var>OnEditingDone</var> event handler prior to exit.
</p>
<p>EditingDone is called in the implementation of the CloseUp and KeyDown methods.
</p>
</descr>
<seealso>
<link id="TCustomDBComboBox.UpdateRecord"/>
<link id="#lcl.stdctrls.TCustomComboBox.CloseUp">TCustomComboBox.CloseUp</link>
<link id="#lcl.stdctrls.TCustomComboBox.KeyDown">TCustomComboBox.KeyDown</link>
<link id="#lcl.controls.TControl.EditingDone">TControl.EditingDone</link>
</seealso>
</element>
<element name="TCustomDBComboBox.Field">
<short>Contains the field definition from the linked dataset.
</short>
<descr>
<p>
<var>Field</var> is a read-only
<var>TField</var> property which contains the definition for the field in the linked dataset where the value for the control is stored. Read access for the property value is redirected to the Field property in the internal
<var>TFieldDataLink</var> instance used in the class.
</p>
<p>The value in Field is updated when the <var>UpdateField</var> method in TFieldDataLink is called after setting the <var>DataField</var> for the control.
</p>
</descr>
<seealso>
<link id="TCustomDBComboBox.DataField"/>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TField">TField</link>
</seealso>
</element>
<element link="#lcl.stdctrls.TCustomComboBox.Text" name="TCustomDBComboBox.Text"/>
<element link="#lcl.stdctrls.TCustomComboBox.ItemIndex" name="TCustomDBComboBox.ItemIndex"/>
<element name="TCustomDBComboBox.DataField">
<short>The name of the Field which provides the values displayed in the control.</short>
<descr>
<p>
<var>DataField</var> is a
<var>String</var> property which contains the name for the field in the linked dataset where the value for the control is read and written. Read and write access to the property value are redirected to the
<var>FieldName</var> property in the internal
<var>TFieldDataLink</var> instance for the control. Changing the value in DataField causes the value in
<var>Field</var> to be updated.
</p>
<p>Set the value in <var>DataSource</var> to the component which provides access to the dataset for the data-aware control.
</p>
</descr>
<seealso>
<link id="TCustomDBComboBox.DataSource"/>
<link id="TCustomDBComboBox.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TDataLink.Dataset">TDataLink.Dataset</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
</seealso>
</element>
<element name="TCustomDBComboBox.DataSource">
<short>Provides access to the dataset with content for the control.</short>
<descr>
<p>
<var>DataSource</var> is a
<var>TDataSource</var> property which provides access to the content for the data-aware control. DataSource is used in conjunction with the
<var>Field</var> property to determine the dataset and field definition used when reading the value for the control.
</p>
<p>Read and write access to the property value is redirected to the DataSource property in the internal <var>TFieldDataLink</var> instance used in the control. Assigning a new value to the property causes the <var>ChangeDataSource</var> routine to be called to apply the value to the internal TFieldDataLink instance.
</p>
<p>Use the <var>DataField</var> property to specify the field name accessed in the linked dataset.
</p>
</descr>
<seealso>
<link id="TCustomDBComboBox.DataField"/>
<link id="TFieldDataLink.FieldName"/>
<link id="ChangeDataSource"/>
<link id="#fcl.db.TDataSource">TDataSource</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
</seealso>
</element>
<element name="TCustomDBComboBox.ReadOnly">
<short>Indicates if the control is prevented from changing the field value in its linked dataset.
</short>
<descr>
<p>
<var>ReadOnly</var> is a
<var>Boolean</var> property which indicates if the control cannot modify its
<var>DataField</var> in the linked dataset. When set to
<b>True</b>, the underlying field value cannot be modified using the control.
</p>
<p>Read and write access for the property value are redirected to the ReadOnly property in the TFieldDataLink instance used in the control.
</p>
<remark>
A value assigned to ReadOnly may be overridden by the Field definition from the target database table.
</remark>
</descr>
<seealso>
<link id="TCustomDBComboBox.DataField"/>
<link id="TCustomDBComboBox.DataSource"/>
<link id="TCustomDBComboBox.Field"/>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TDataLink.ReadOnly">TDataLink.ReadOnly</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element name="TDBComboBox">
<short>
<var>TDBComboBox</var> - a data-aware version of
<var>TComboBox</var> to allow selection of a value from a list of entries into a database field.
</short>
<descr>
<p>
<var>TDBComboBox</var> has properties similar to <var>TComboBox</var> and <var>TCustomComboBox</var>. It consists of an Edit Box which is the Data-aware part of the component, and a drop-down list box.
</p>
<p>
In a typical application a user would be presented with the drop-down list, would make a selection and then this would appear in the edit box and become the data value for that cell in the database.
</p>
<p>
As an example, a list of countries might be presented, and the selected value from the list would be used to populate the appropriate field ('Country') in that record of the database.
</p>
</descr>
<seealso>
<link id="TCustomDBComboBox"/>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TDBComboBox.DataChange">
<short>
<var>DataChange</var> - updates the text if it has changed.
</short>
<descr>
<p>
<var>DataChange</var> is an overridden method used to perform actions needed when the value in the linked dataset has been changed. DataChange uses the
<var>Field</var> property from the data link (when assigned) to get the current value stored in the
<var>Text</var> property for the control. If Field has not been assigned, or the dataset is not active, the value in Text is set to an empty string
<b>('')</b>.
</p>
<p>DataChange is assigned as the <var>OnDataChange</var> event handler in the internal <var>TFieldDataLink</var> instance used in the control.
</p>
</descr>
<seealso>
<link id="TCustomDBComboBox.Text"/>
<link id="TCustomDBComboBox.Field"/>
<link id="TCustomDBComboBox.DataChange"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="#fcl.db.TField">TField</link>
</seealso>
</element>
<element name="TDBComboBox.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBComboBox.KeyPress">
<short>Applies standard keystrokes to the control.</short>
<descr>
<p>
<var>KeyPress</var> is an overridden method used to apply standard keystrokes to the data-aware control. KeyPress calls the inherited method to process the keystroke character in
<var>Key</var>. If the key is not handled in the ancestor, and is in the range #32..#255, it can be potentially applied to the
<var>Field</var> in the linked dataset. FieldCanAcceptKey, in the implementation section, is called to to determine if the keystroke can be used and applied to the field type. When valid for the field, Key is set to #0 to suppress further processing of the keystroke.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TField">TField</link>
<link id="#lcl.controls.TWinControl.KeyPress">TWinControl.KeyPress</link>
</seealso>
</element>
<element name="TDBComboBox.KeyPress.Key">
<short>Keystroke character examined in the method.</short>
</element>
<element name="TDBComboBox.UpdateData">
<short>Applies the changed value for the control to the field in its linked dataset.
</short>
<descr>
<p>
<var>UpdateData</var> is an overridden method which implements the abstract virtual method defined in
<var>TCustomDBComboBox</var>. UpdateData is used to applying pending changes in the control value to the field in the linked dataset. The value in the Text property for the control is stored to the Field defined in the internal TFieldDataLink instance in the class.
</p>
<p>UpdateData is assigned as the OnUpdateData event handler in the internal TFieldDataLink instance used in the control.
</p>
</descr>
<seealso>
<link id="TCustomDBComboBox.UpdateData"/>
<link id="TCustomDBComboBox.Text"/>
<link id="TFieldDataLink.OnUpdateData"/>
</seealso>
</element>
<element name="TDBComboBox.UpdateData.Sender">
<short>Object for the event notification.</short>
</element>
<element link="#lcl.controls.TControl.Align" name="TDBComboBox.Align"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBComboBox.Anchors"/>
<element link="#lcl.stdctrls.TCustomComboBox.ArrowKeysTraverseList" name="TDBComboBox.ArrowKeysTraverseList"/>
<element link="#lcl.stdctrls.TCustomComboBox.AutoComplete" name="TDBComboBox.AutoComplete"/>
<element link="#lcl.stdctrls.TCustomComboBox.AutoCompleteText" name="TDBComboBox.AutoCompleteText"/>
<element name="TDBComboBox.AutoDropDown">
<short>Indicates if the drop-down is automatically displayed when the control gets the input focus.
</short>
<descr>
<p>
<var>AutoDropDown</var> indicates whether the drop-down list for the control appears as soon as the control receives the input focus. When set to <b>False</b>, the drop-down list appears when the downward triangular glyph for the control is clicked. The default value for the property is <b>False</b>.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.AutoDropDown">TCustomComboBox.AutoDropDown</link>
</seealso>
</element>
<element link="#lcl.stdctrls.TCustomComboBox.AutoSelect" name="TDBComboBox.AutoSelect"/>
<element link="#lcl.controls.TControl.AutoSize" name="TDBComboBox.AutoSize"/>
<element link="#lcl.controls.TControl.BiDiMode" name="TDBComboBox.BiDiMode"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBComboBox.BorderSpacing"/>
<element link="#lcl.controls.TWinControl.BorderStyle" name="TDBComboBox.BorderStyle"/>
<element link="#lcl.stdctrls.TCustomComboBox.CharCase" name="TDBComboBox.CharCase"/>
<element link="#lcl.controls.TControl.Color" name="TDBComboBox.Color"/>
<element link="#lcl.controls.TControl.Constraints" name="TDBComboBox.Constraints"/>
<element link="#lcl.dbctrls.TCustomDBComboBox.DataField" name="TDBComboBox.DataField"/>
<element link="#lcl.dbctrls.TCustomDBComboBox.DataSource" name="TDBComboBox.DataSource"/>
<element link="#lcl.controls.TWinControl.DoubleBuffered" name="TDBComboBox.DoubleBuffered"/>
<element link="#lcl.controls.TControl.DragCursor" name="TDBComboBox.DragCursor"/>
<element link="#lcl.controls.TControl.DragKind" name="TDBComboBox.DragKind"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBComboBox.DragMode"/>
<element link="#lcl.stdctrls.TCustomComboBox.DropDownCount" name="TDBComboBox.DropDownCount"/>
<element link="#lcl.controls.TControl.Enabled" name="TDBComboBox.Enabled"/>
<element link="#lcl.controls.TControl.Font" name="TDBComboBox.Font"/>
<element link="#lcl.stdctrls.TCustomComboBox.ItemHeight" name="TDBComboBox.ItemHeight"/>
<element link="#lcl.stdctrls.TCustomComboBox.Items" name="TDBComboBox.Items"/>
<element link="#lcl.stdctrls.TCustomComboBox.ItemWidth" name="TDBComboBox.ItemWidth"/>
<element name="TDBComboBox.MaxLength">
<short>
The maximum length for text entered in the edit box for the control.
</short>
<descr>
<p>
MaxLength is an Integer property which contains the maximum length for a value entered in the Text for the control. It controls the number of characters allowed in the edit box, but does not limit the length of the value that can be directly assigned to Text. MaxLength is passed to and read from the widgetset class when a handle has been assigned for the control.
</p>
<p>
The default value for the property is -1 in TDBComboBox, and forces the widgetset class to update its value for the property. Setting the value for the property does not alter the existing value in Text.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.MaxLength">TCustomComboBox.MaxLength</link>
</seealso>
</element>
<element link="#lcl.stdctrls.TCustomComboBox.OnChange" name="TDBComboBox.OnChange"/>
<element link="#lcl.controls.TControl.OnChangeBounds" name="TDBComboBox.OnChangeBounds"/>
<element link="#lcl.controls.TControl.OnClick" name="TDBComboBox.OnClick"/>
<element name="TDBComboBox.OnCloseUp" link="#lcl.stdctrls.TCustomComboBox.OnCloseUp"/>
<element name="TDBComboBox.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element link="#lcl.controls.TControl.OnDblClick" name="TDBComboBox.OnDblClick"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBComboBox.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBComboBox.OnDragOver"/>
<element link="#lcl.stdctrls.TCustomComboBox.OnDrawItem" name="TDBComboBox.OnDrawItem"/>
<element link="#lcl.stdctrls.TCustomComboBox.OnDropDown" name="TDBComboBox.OnDropDown"/>
<element link="#lcl.controls.TControl.OnEditingDone" name="TDBComboBox.OnEditingDone"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBComboBox.OnEndDrag"/>
<element link="#lcl.controls.TWinControl.OnEnter" name="TDBComboBox.OnEnter"/>
<element link="#lcl.controls.TWinControl.OnExit" name="TDBComboBox.OnExit"/>
<element name="TDBComboBox.OnKeyDown">
<short>
Event handler signalled when a key is down while the control has focus.
</short>
<descr>
<p>
<var>OnKeyDown</var> differs from <link id="#lcl.controls.TWinControl.OnKeyPress">OnKeyPress</link> in that the key may have already been down when the control received focus; with <var>OnKeyPress</var> the key needs to become pressed while the control has focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyDown">TWinControl.OnKeyDown</link>
</seealso>
</element>
<element name="TDBComboBox.OnKeyPress">
<short>
Event handler signalled when a key is pressed while the control has focus.
</short>
<descr>
<p>
<var>OnKeyPress</var> differs from <link id="#lcl.controls.TWinControl.OnKeyDown">OnKeyDown</link> in that the key needs to become pressed while the control has focus; with <var>OnKeyDown</var> the key may have already been down when the control received focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyPress">TWinControl.OnKeyPress</link>
</seealso>
</element>
<element name="TDBComboBox.OnKeyUp">
<short>
Event handler signalled when when a key is released while the control has focus.
</short>
<descr>
<p>
In <var>OnKeyUp</var>, the key may already have been up when the control received focus, or a pressed key may become released during the time the control has focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyUp">TWinControl.OnKeyUp</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBComboBox.OnMouseDown"/>
<element link="#lcl.controls.TControl.OnMouseEnter" name="TDBComboBox.OnMouseEnter"/>
<element link="#lcl.controls.TControl.OnMouseLeave" name="TDBComboBox.OnMouseLeave"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBComboBox.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseUp" name="TDBComboBox.OnMouseUp"/>
<element link="#lcl.controls.TControl.OnMouseWheel" name="TDBComboBox.OnMouseWheel"/>
<element link="#lcl.controls.TControl.OnMouseWheelDown" name="TDBComboBox.OnMouseWheelDown"/>
<element link="#lcl.controls.TControl.OnMouseWheelUp" name="TDBComboBox.OnMouseWheelUp"/>
<element link="#lcl.stdctrls.TCustomComboBox.OnSelect" name="TDBComboBox.OnSelect"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBComboBox.OnStartDrag"/>
<element link="#lcl.controls.TWinControl.OnUTF8KeyPress" name="TDBComboBox.OnUTF8KeyPress"/>
<element link="#lcl.controls.TControl.ParentBiDiMode" name="TDBComboBox.ParentBiDiMode"/>
<element link="#lcl.controls.TControl.ParentColor" name="TDBComboBox.ParentColor"/>
<element link="#lcl.controls.TWinControl.ParentDoubleBuffered" name="TDBComboBox.ParentDoubleBuffered"/>
<element link="#lcl.controls.TControl.ParentFont" name="TDBComboBox.ParentFont"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBComboBox.ParentShowHint"/>
<element link="#lcl.controls.TControl.PopupMenu" name="TDBComboBox.PopupMenu"/>
<element link="#lcl.dbctrls.TCustomDBComboBox.ReadOnly" name="TDBComboBox.ReadOnly"/>
<element link="#lcl.controls.TControl.ShowHint" name="TDBComboBox.ShowHint"/>
<element link="#lcl.stdctrls.TCustomComboBox.Sorted" name="TDBComboBox.Sorted"/>
<element link="#lcl.stdctrls.TCustomComboBox.Style" name="TDBComboBox.Style"/>
<element link="#lcl.controls.TWinControl.TabOrder" name="TDBComboBox.TabOrder"/>
<element link="#lcl.controls.TWinControl.TabStop" name="TDBComboBox.TabStop"/>
<element name="TDBComboBox.Visible">
<short>Indicates if the control is visible on its parent.</short>
<descr>
<p>The Visible property represents the ability to see a visual control. If Visible is <b>True</b> the control is shown, otherwise it is hidden. Calling Show sets, among others, Visible to <b>True</b>. Setting Visible to <b>False</b> is equivalent to calling Hide method.
</p>
<p>The Visible property does not depend on control's parent visibility. Use IsVisible method to consider this and get real visibility.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Visible">TControl.Visible</link>
</seealso>
</element>
<element name="TDBLookupComboBox">
<short>
<var>TDBLookupComboBox</var> - a data-aware combo-box for examining a lookup table in a database.
</short>
<descr>
<p>
<var>TDBLookupComboBox</var> is a <var>TCustomDBComboBox</var> descendant which implements a data-aware combo-box control that adds lookup capabilities using values from a separate dataset. Like the ancestor class, the <var>DataField</var> and <var>DataSource</var> properties are used to identify the dataset and field where the selected value for the control is stored. The <var>ListSource</var>, <var>KeyField</var>, and <var>ListField</var> properties are added to define the dataset with the values displayed and captured using the drop down for the combo-box control. Internally, a <var>TDBLookUp</var> instance is used to perform lookup operations for the control.
</p>
<p>
Other important properties used to manage the behavior and appearance of the control include:
</p>
<ul>
<li>AutoComplete</li>
<li>AutoDropDown</li>
<li>AutoSelect</li>
<li>NullValueKey</li>
<li>EmptyValue</li>
<li>DisplayEmpty</li>
<li>ScrollListDataset</li>
</ul>
</descr>
<seealso>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
<link id="TCustomDBComboBox"/>
<link id="TDBLookup"/>
</seealso>
</element>
<element name="TDBLookupComboBox.DefineProperties">
<short>
Defines read and write routines for properties values in the class instance.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookupComboBox.DefineProperties.Filer">
<short>
TFiler instance used to read and write properties during component streaming.
</short>
</element>
<element name="TDBLookupComboBox.DoEdit">
<short>
Implements support for the "unbound" editing mode in the data-aware control.
</short>
<descr/>
<seealso>
<link id="TCustomDBComboBox.DoEdit"/>
</seealso>
</element>
<element name="TDBLookupComboBox.DoEdit.Result">
<short>True if the field was edited in the linked data set.</short>
</element>
<element name="TDBLookupComboBox.DoAutoCompleteSelect">
<short>
Ensures the internal TDBLookup instance is updated when the control is used in "unbound" mode.
</short>
<descr>
<p>
<var>DoAutoCompleteSelect</var> is an overridden method in <var>TDBLookComboBox</var> which re-implements the virtual method from the ancestor class. It does not call the inherited method.
</p>
<p>
DoAutoCompleteSelect ensures that the dataset for the <var>ListSource</var> is re-positioned when the value in <var>ItemIndex</var> has been changed. This includes calling the <var>UpdateData</var> method for the internal <var>TDBLookup</var> instance when the control is used in "unbound" mode (without a <var>DataSource</var> or <var>DataField</var>).
</p>
<p>
DoAutoCompleteSelect is called when the <var>KeyUp</var> method handles an alphanumeric key entered while the auto-complete feature has been enabled in <var>AutoCompleteText</var>.
</p>
</descr>
<seealso>
<link id="TDBLookupComboBox.UpdateData"/>
<link id="TDBLookup.UpdateData"/>
<link id="#lcl.stdctrls.TCustomComboBox.DoAutoCompleteSelect">TCustomComboBox.DoAutoCompleteSelect</link>
<link id="#lcl.stdctrls.TCustomComboBox.AutoCompleteText">TCustomComboBox.AutoCompleteText</link>
</seealso>
</element>
<element name="TDBLookupComboBox.IsUnbound">
<short>
Indicates if the control lacks a datasource or field name ("unbound" mode).
</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookupComboBox.IsUnbound.Result">
<short>
True if either DataSource or DataField are not assigned in the field data link.
</short>
</element>
<!-- visibility: private -->
<element name="TDBLookupComboBox.FLookup"/>
<element name="TDBLookupComboBox.ActiveChange"/>
<element name="TDBLookupComboBox.ActiveChange.Sender"/>
<element name="TDBLookupComboBox.GetDisplayEmpty"/>
<element name="TDBLookupComboBox.GetDisplayEmpty.Result"/>
<element name="TDBLookupComboBox.GetDropDownRows"/>
<element name="TDBLookupComboBox.GetDropDownRows.Result"/>
<element name="TDBLookupComboBox.GetEmptyValue"/>
<element name="TDBLookupComboBox.GetEmptyValue.Result"/>
<element name="TDBLookupComboBox.GetKeyField"/>
<element name="TDBLookupComboBox.GetKeyField.Result"/>
<element name="TDBLookupComboBox.GetKeyValue"/>
<element name="TDBLookupComboBox.GetKeyValue.Result"/>
<element name="TDBLookupComboBox.GetListField"/>
<element name="TDBLookupComboBox.GetListField.Result"/>
<element name="TDBLookupComboBox.GetListFieldIndex"/>
<element name="TDBLookupComboBox.GetListFieldIndex.Result"/>
<element name="TDBLookupComboBox.GetListSource"/>
<element name="TDBLookupComboBox.GetListSource.Result"/>
<element name="TDBLookupComboBox.GetLookupCache"/>
<element name="TDBLookupComboBox.GetLookupCache.Result"/>
<element name="TDBLookupComboBox.GetNullValueKey"/>
<element name="TDBLookupComboBox.GetNullValueKey.Result"/>
<element name="TDBLookupComboBox.GetScrollListDataset"/>
<element name="TDBLookupComboBox.GetScrollListDataset.Result"/>
<element name="TDBLookupComboBox.ReadDropDownCount"/>
<element name="TDBLookupComboBox.ReadDropDownCount.Reader"/>
<element name="TDBLookupComboBox.SetDropDownRows"/>
<element name="TDBLookupComboBox.SetDropDownRows.AValue"/>
<element name="TDBLookupComboBox.SetDisplayEmpty"/>
<element name="TDBLookupComboBox.SetDisplayEmpty.AValue"/>
<element name="TDBLookupComboBox.SetEmptyValue"/>
<element name="TDBLookupComboBox.SetEmptyValue.AValue"/>
<element name="TDBLookupComboBox.SetKeyField"/>
<element name="TDBLookupComboBox.SetKeyField.Value"/>
<element name="TDBLookupComboBox.SetKeyValue"/>
<element name="TDBLookupComboBox.SetKeyValue.Value"/>
<element name="TDBLookupComboBox.SetListField"/>
<element name="TDBLookupComboBox.SetListField.Value"/>
<element name="TDBLookupComboBox.SetListFieldIndex"/>
<element name="TDBLookupComboBox.SetListFieldIndex.Value"/>
<element name="TDBLookupComboBox.SetListSource"/>
<element name="TDBLookupComboBox.SetListSource.Value"/>
<element name="TDBLookupComboBox.SetLookupCache"/>
<element name="TDBLookupComboBox.SetLookupCache.Value"/>
<element name="TDBLookupComboBox.SetNullValueKey"/>
<element name="TDBLookupComboBox.SetNullValueKey.AValue"/>
<element name="TDBLookupComboBox.SetScrollListDataset"/>
<element name="TDBLookupComboBox.SetScrollListDataset.AValue"/>
<element name="TDBLookupComboBox.UpdateLookup"/>
<element name="TDBLookupComboBox.UpdateItemIndex"/>
<element name="TDBLookupComboBox.InitializeWnd">
<short>Ensures that the lookup uses the address for the items defined in the control.</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookupComboBox.DestroyWnd">
<short>Updates the lookup with the address for the items in the control when the control handle is freed.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookupComboBox.KeyDown">
<short>Handles the Null key shortcut in key down events.</short>
<descr>
<p>
<var>KeyDown</var> is an overridden method used to handle and apply virtual key code messages (
<b>WM_KEYDOWN</b>) received in the control.
<var>Key</var> and
<var>Shift</var> contain the virtual key code and the
<b>Shift-Ctrl-Alt</b> modifiers for the message.
</p>
<p>KeyDown ensures that the shortcut in <var>NullValueKey</var> is applied to the <var>TDBLookup</var> and the <var>ItemIndex</var> for the control. KeyDown calls the inherited method prior to exit.
</p>
</descr>
<seealso>
<link id="TDBLookUpComboBox.NullValueKey"/>
<link id="TCustomDBComboBox.KeyDown"/>
<link id="TCustomDBComboBox.ItemIndex"/>
<link id="TDBLookup"/>
</seealso>
</element>
<element name="TDBLookupComboBox.KeyDown.Key">
<short>Key examined in the method.</short>
</element>
<element name="TDBLookupComboBox.KeyDown.Shift">
<short>Modifier(s) for the key examined in the method.</short>
</element>
<element name="TDBLookupComboBox.UTF8KeyPress">
<short>Handles UTF-8 characters for the data-aware control.</short>
<descr>
<p>
<var>UTF8KeyPress</var> is an overridden method in <var>TDBLookupComboBox</var>. UTF8KeyPress ensures that the value in <var>Key</var> is cleared when the linked dataset cannot be modified, or the control is being used in the "unbound" mode.
</p>
<p>
UTF8KeyPress calls the inherited method prior to exit.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomComboBox.UTF8KeyPress">TCustomComboBox.UTF8KeyPress</link>
</seealso>
</element>
<element name="TDBLookupComboBox.UTF8KeyPress.UTF8Key">
<short>UTF-8-encoded value examined in the method.</short>
</element>
<element name="TDBLookupComboBox.Loaded" link="#lcl.controls.TWinControl.Loaded"/>
<element name="TDBLookupComboBox.UpdateData">
<short>
<var>UpdateData</var> - copies the local data from the corresponding entry from the lookup field.
</short>
<seealso>
<link id="TCustomDBComboBox.UpdateData"/>
</seealso>
</element>
<element name="TDBLookupComboBox.DataChange">
<short>Updates the control when the value in the linked dataset has been changed.</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookupComboBox.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBLookupComboBox.DoOnSelect">
<short>Performs the OnSelect event handler when in drop-down list mode.</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookupComboBox.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, and allocates resources for the internal
<var>TDBLookup</var> instance used in the class. The
<var>ActiveChange</var> method is assigned as the
<var>OnActiveChange</var> event handler in the internal
<var>TFieldDataLink</var> instance used in the class. Creates sets the default values for the
<var>EmptyValue</var> and
<var>DisplayEmpty</var> properties.
</p>
</descr>
<seealso>
<link id="TDBLookupComboBox.DisplayEmpty"/>
<link id="TDBLookupComboBox.EmptyValue"/>
<link id="TDBLookUp"/>
<link id="TFieldDataLink.OnActiveChange"/>
<link id="#lcl.stdctrls.TCustomComboBox.Create">TCustomComboBox.Create</link>
</seealso>
</element>
<element name="TDBLookupComboBox.KeyValue">
<short>Value for the key field in the lookup dataset at the position in ItemIndex.
</short>
<descr>
<p>Read and write access for the property value is provided using methods in the internal <var>TDBLookup</var> instance used in the class. Reading the value calls the <var>GetKeyValue</var> method in TDBLookup. Writing the value calls the <var>GetKeyIndex</var> method in TDBLookUp.
</p>
</descr>
<seealso/>
</element>
<element name="TDBLookupComboBox.DropDownCount">
<short>Deprecated. Use DropDownRows instead.</short>
<descr/>
<seealso>
<link id="TDBLookUpComboBox.DropDownRows"/>
<link id="#lcl.stdctrls.TCustomComboBox.DropDownCount">TCustomComboBox.DropDownCount</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Align" name="TDBLookupComboBox.Align"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBLookupComboBox.Anchors"/>
<element link="#lcl.stdctrls.TCustomComboBox.ArrowKeysTraverseList" name="TDBLookupComboBox.ArrowKeysTraverseList"/>
<element link="#lcl.stdctrls.TCustomComboBox.AutoComplete" name="TDBLookupComboBox.AutoComplete"/>
<element link="#lcl.stdctrls.TCustomComboBox.AutoDropDown" name="TDBLookupComboBox.AutoDropDown"/>
<element link="#lcl.stdctrls.TCustomComboBox.AutoSelect" name="TDBLookupComboBox.AutoSelect"/>
<element link="#lcl.controls.TControl.AutoSize" name="TDBLookupComboBox.AutoSize"/>
<element link="#lcl.controls.TControl.BiDIMode" name="TDBLookupComboBox.BiDiMode"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBLookupComboBox.BorderSpacing"/>
<element link="#lcl.controls.TWinControl.BorderStyle" name="TDBLookupComboBox.BorderStyle"/>
<element link="#lcl.stdctrls.TCustomComboBox.CharCase" name="TDBLookupComboBox.CharCase"/>
<element link="#lcl.controls.TControl.Color" name="TDBLookupComboBox.Color"/>
<element link="#lcl.controls.TControl.Constraints" name="TDBLookupComboBox.Constraints"/>
<element link="#lcl.dbctrls.TCustomDBComboBox.DataField" name="TDBLookupComboBox.DataField"/>
<element link="#lcl.dbctrls.TCustomDBComboBox.DataSource" name="TDBLookupComboBox.DataSource"/>
<element link="#lcl.controls.TWinControl.DoubleBuffered" name="TDBLookupComboBox.DoubleBuffered"/>
<element link="#lcl.controls.TControl.DragCursor" name="TDBLookupComboBox.DragCursor"/>
<element link="#lcl.controls.TControl.DragKind" name="TDBLookupComboBox.DragKind"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBLookupComboBox.DragMode"/>
<element name="TDBLookupComboBox.DropDownRows">
<short>Number of rows displayed in the drop-down list for the control.</short>
<descr>
<p>
<var>DropDownRows</var> is the replacement for the deprecated <var>DropDownCount</var> property. It is compatible with the name used in the Delphi VCL. Read and write access to the property value are redirected to the DropDownCount property in the ancestor class.
</p>
<p>
The default value for the property is <b>7</b> in <var>TDBLookUpComboBox</var>.
</p>
</descr>
<seealso>
<link id="TDBLookupComboBox.DropDownCount"/>
<link id="#lcl.stdctrls.TCustomComboBox.DropDownCount">TCustomComboBox.DropDownCount</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Enabled" name="TDBLookupComboBox.Enabled"/>
<element link="#lcl.controls.TControl.Font" name="TDBLookupComboBox.Font"/>
<element name="TDBLookupComboBox.KeyField">
<short>
<var>KeyField</var> the name of the field containing the key data.</short>
<descr>
<p>
<var>KeyField</var> is a <var>String</var> property which contains the name of the field in the lookup dataset which corresponds to the <var>DataField</var> in the linked dataset. Read and write access to the property value are redirected to the <var>KeyField</var> property in the internal <var>TDBLookup</var> instance used in the class. Setting a new value for the property causes the internal field data link to be refreshed, and potentially changes the value and the item index in the control.
</p>
<p>
Use <var>ListSource</var> to specify the component which provides access to the lookup dataset.
</p>
<p>Use <var>ListField</var> to specify the field with values displayed in the drop-down for the combo-box control.
</p>
</descr>
<seealso>
<link id="TDBLookUpComboBox.ListSource"/>
<link id="TDBLookUpComboBox.ListField"/>
<link id="TCustomDBComboBox.ItemIndex"/>
<link id="TCustomDBComboBox.Text"/>
<link id="TDBLookup.KeyField"/>
<link id="TFieldDataLink"/>
</seealso>
</element>
<element name="TDBLookupComboBox.ListField">
<short>
<var>ListField</var> is the name of the field containing the list data displayed in the control.
</short>
<descr>
<p>
<var>ListField</var> is a <var>String</var> property which contains the name of the field in the lookup dataset with the values displayed in the drop-down for the combo-box control. Read and write access for the property value are redirected to the <var>ListField</var> in the internal <var>TDBLookup</var> instance used in the class. Setting a new value for the property causes the internal <var>TFieldDataLink</var> in the class to be refreshed, and results in a change to the <var>ItemIndex</var> and the current value for the control.
</p>
<p>
Use <var>ListSource</var> to assign the component which provides access to the lookup dataset for the control.
</p>
<p>
Use <var>KeyField</var> to specify the field in the lookup dataset stored in <var>DataField</var> when an item is selected in the data-aware control.
</p>
<p>
Use <var>ListFieldIndex</var> to get the ordinal position in the lookup dataset for current value in the control.
</p>
</descr>
<seealso/>
</element>
<element name="TDBLookupComboBox.ListFieldIndex">
<short>
<var>ListFieldIndex</var> - the index value of the field containing the list.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookupComboBox.ListSource">
<short>
<var>ListSource</var> the data source that contains the list.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBLookupComboBox.LookupCache">
<short>
Indicates if look-up items are cached in the field data link for the control.
</short>
<descr>
<p>
<var>LookupCache</var> is a <var>Boolean</var> property which indicates if look-up items are cached in the field data link for the control. The property value is re-directed to the <var>LookupCache</var> property in the internal <var>TDBLookup</var> instance for the control. Changing the property to <b>True</b> causes the value in <var>ItemIndex</var> to be updated to the value in from the look-up cache.
</p>
</descr>
<seealso>
<link id="TDBLookUp.Initialize"/>
<link id="TDBLookUp.LookupCache"/>
<link id="#lcl.stdctrls.TCustomComboBox.Items">TCustomComboBox.Items</link>
<link id="#lcl.stdctrls.TCustomComboBox.ItemIndex">TCustomComboBox.ItemIndex</link>
</seealso>
</element>
<element name="TDBLookupComboBox.NullValueKey">
<short>Keyboard shortcut which causes an empty value to be assigned to the field value for the lookup control.
</short>
<descr>
<p>
<var>NullValueKey</var> is a <var>TShortCut</var> property which contains the keystroke used to assign a Null value to the data-aware control. Read and write access for the property value are redirected to the <var>NullValueKey</var> property in the internal <var>TDBLookup</var> instance used in the class.
</p>
<p>
NullValueKey is used in TDBLookup methods, and handled in the <var>KeyDown</var> method for data-aware controls which support the feature. The default value for the property is zero (0) and indicates that the shortcut key is not used for the control.
</p>
</descr>
<seealso/>
</element>
<element name="TDBLookupComboBox.EmptyValue">
<short>Value stored for the lookup control when a lookup value is not available.</short>
<descr>
<p>
<var>EmptyValue</var> is a <var>String</var> property which contains the value stored in the list of key values when no records are available in the linked lookup dataset, or when the <var>NullValueKey</var> shortcut is pressed.
</p>
<p>
Use <var>EmptyValue</var> to specify a KeyField value automatically added to the <var>ControlItems</var> property when the linked lookup dataset contains no records. No entry is added to Controlitems when the value in EmptyValue is an empty string <b>('')</b>. The value in <var>DisplayEmpty</var> is used for the <var>ListField displayed</var> in the control.
</p>
<p>
Use <var>DisplayEmpty</var> to specify the value displayed in the lookup control when no records are available in the linked lookup dataset, or when the NullValueKey shortcut is pressed.
</p>
</descr>
<seealso>
<link id="TDBLookup.DisplayEmpty"/>
<link id="TDBLookup.ControlItems"/>
<link id="TDBLookup.ListField"/>
<link id="TDBLookup.KeyField"/>
<link id="TDBLookup.NullValueKey"/>
</seealso>
<version>The EmptyValue and DisplayEmpty properties were added in revision 62844, and released in LCL version 2.0.8 and higher.
</version>
</element>
<element name="TDBLookupComboBox.DisplayEmpty">
<short>Value displayed in the lookup control when a lookup value is not available.</short>
<descr>
<p>
<var>DisplayEmpty</var> is a <var>String</var> property which contains the value displayed in the lookup when no records are available in the linked lookup dataset, or when the <var>NullValueKey</var> shortcut is pressed.
</p>
<p>
Use <var>EmptyValue</var> to specify a KeyField value automatically added to the <var>ControlItems</var> property when the linked lookup dataset contains no records. No entry is added to Controlitems when the value in EmptyValue is an empty string <b>('')</b>. The value in <var>DisplayEmpty</var> is used for the <var>ListField</var> displayed in the control.
</p>
<p>
Use <var>EmptyValue</var> to specify the value stored in the lookup when no records are available in the linked lookup dataset, or when the NullValueKey shortcut is pressed.
</p>
</descr>
<seealso>
<link id="TDBLookup.EmptyValue"/>
<link id="TDBLookup.ControlItems"/>
<link id="TDBLookup.ListField"/>
<link id="TDBLookup.KeyField"/>
<link id="TDBLookup.NullValueKey"/>
</seealso>
<version>
The EmptyValue and DisplayEmpty properties were added in revision 62844, and released in LCL version 2.0.8 and higher.
</version>
</element>
<element link="#lcl.stdctrls.TCustomComboBox.OnChange" name="TDBLookupComboBox.OnChange"/>
<element link="#lcl.controls.TControl.OnChangeBounds" name="TDBLookupComboBox.OnChangeBounds"/>
<element link="#lcl.controls.TControl.OnClick" name="TDBLookupComboBox.OnClick"/>
<element link="#lcl.stdctrls.TCustomComboBox.OnCloseUp" name="TDBLookupComboBox.OnCloseUp"/>
<element name="TDBLookUpComboBox.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element link="#lcl.controls.TControl.OnDblClick" name="TDBLookupComboBox.OnDblClick"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBLookupComboBox.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBLookupComboBox.OnDragOver"/>
<element link="#lcl.stdctrls.TCustomComboBox.OnDrawItem" name="TDBLookupComboBox.OnDrawItem"/>
<element link="#lcl.stdctrls.TCustomComboBox.OnDropDown" name="TDBLookupComboBox.OnDropDown"/>
<element link="#lcl.controls.TControl.OnEditingDone" name="TDBLookupComboBox.OnEditingDone"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBLookupComboBox.OnEndDrag"/>
<element link="#lcl.controls.TWinControl.OnEnter" name="TDBLookupComboBox.OnEnter"/>
<element link="#lcl.controls.TWinControl.OnExit" name="TDBLookupComboBox.OnExit"/>
<element link="#lcl.controls.TWinControl.OnKeyDown" name="TDBLookupComboBox.OnKeyDown"/>
<element link="#lcl.controls.TWinControl.OnKeyPress" name="TDBLookupComboBox.OnKeyPress"/>
<element link="#lcl.controls.TWinControl.OnKeyUp" name="TDBLookupComboBox.OnKeyUp"/>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBLookupComboBox.OnMouseDown"/>
<element link="#lcl.controls.TControl.OnMouseEnter" name="TDBLookupComboBox.OnMouseEnter"/>
<element link="#lcl.controls.TControl.OnMouseLeave" name="TDBLookupComboBox.OnMouseLeave"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBLookupComboBox.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseUp" name="TDBLookupComboBox.OnMouseUp"/>
<element link="#lcl.controls.TControl.OnMouseWheel" name="TDBLookupComboBox.OnMouseWheel"/>
<element link="#lcl.controls.TControl.OnMouseWheelDown" name="TDBLookupComboBox.OnMouseWheelDown"/>
<element link="#lcl.controls.TControl.OnMouseWheelUp" name="TDBLookupComboBox.OnMouseWheelUp"/>
<element link="#lcl.stdctrls.TCustomComboBox.OnSelect" name="TDBLookupComboBox.OnSelect"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBLookupComboBox.OnStartDrag"/>
<element name="TDBLookupComboBox.OnUTF8KeyPress" link="#lcl.controls.TWinControl.OnUTF8KeyPress"/>
<element name="TDBLookupComboBox.ParentBiDiMode" link="#lcl.controls.TControl.ParentBiDiMode"/>
<element link="#lcl.controls.TControl.ParentColor" name="TDBLookupComboBox.ParentColor"/>
<element link="#lcl.controls.TWinControl.ParentDoubleBuffered" name="TDBLookupComboBox.ParentDoubleBuffered"/>
<element link="#lcl.controls.TControl.ParentFont" name="TDBLookupComboBox.ParentFont"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBLookupComboBox.ParentShowHint"/>
<element link="#lcl.controls.TControl.PopupMenu" name="TDBLookupComboBox.PopupMenu"/>
<element link="#lcl.stdctrls.TCustomComboBox.ReadOnly" name="TDBLookupComboBox.ReadOnly"/>
<element name="TDBLookupComboBox.ScrollListDataset">
<short>Indicates if the Dataset in ListSource can be scrolled when loading/locating key and display values.
</short>
<descr>
<p>
<var>ScrollListDataset</var> is a
<var>Boolean</var> property which indicates if the linked lookup dataset can be scrolled when loading values from the fields identified in KeyField and ListField. The value in ScrollListDataset is used in the implementation of the
<var>Initialize</var> and
<var>UpdateData</var> methods.
</p>
</descr>
<seealso>
<link id="TDBLookup.KeyField"/>
<link id="TDBLookup.ListField"/>
<link id="TDBLookup.ListSource"/>
<link id="TDBLookup.Initialize"/>
<link id="TDBLookup.UpdateData"/>
</seealso>
</element>
<element link="#lcl.controls.TControl.ShowHint" name="TDBLookupComboBox.ShowHint"/>
<element link="#lcl.stdctrls.TCustomComboBox.Sorted" name="TDBLookupComboBox.Sorted"/>
<element link="#lcl.stdctrls.TCustomComboBox.Style" name="TDBLookupComboBox.Style"/>
<element link="#lcl.controls.TWinControl.TabOrder" name="TDBLookupComboBox.TabOrder"/>
<element link="#lcl.controls.TWinControl.TabStop" name="TDBLookupComboBox.TabStop"/>
<element link="#lcl.controls.TControl.Visible" name="TDBLookupComboBox.Visible"/>
<element name="TDBMemo">
<short>
<var>TDBMemo</var> - a data-aware Memo box to process the multi-line text of a single field in a dataset.
</short>
<descr>
<p>
<var>TDBMemo</var> is a <var>TCustomMemo</var> descendant which implements a data-aware memo control. Like its ancestor, TDBMemo can be used to display or edit multi-line textual content. It extends the ancestor class to provide properties which define the datasource and field name with the value maintained in the control. For situations where data-awareness is not needed, use the TMemo control.
</p>
<p>
Internally, the control uses a <var>TFieldDataLink</var> to maintain an association between the control and its datasource, dataset, and field.
</p>
<p>
Use <var>DataSource</var> to assign the component with the linked dataset for the control.
</p>
<p>
Use <var>DataField</var> to specify the name of the field in the linked dataset with the value for the control.
</p>
<p>
Use the <var>AutoDisplay</var> property to control whether the field content is automatically displayed during record navigation in the linked dataset. When AutoDisplay is set to <b>False</b>, the DisplayLabel for the Field is shown in the control and it content must be loaded by calling the <var>LoadMemo</var> method.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomMemo">TCustomMemo</link>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TDBMemo.FDataLink"/>
<element name="TDBMemo.FAutoDisplay"/>
<element name="TDBMemo.FDBMemoFocused"/>
<element name="TDBMemo.FDBMemoLoaded"/>
<element name="TDBMemo.GetDataField">
<short>Gets the value for the DataField property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBMemo.GetDataField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBMemo.GetDataSource">
<short>Gets the value for the DataSource property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBMemo.GetDataSource.Result">
<short>Value for the property.</short>
</element>
<element name="TDBMemo.GetField">
<short>Gets the value for the Field property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBMemo.GetField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBMemo.GetReadOnly">
<short>Gets the value for the ReadOnly property.</short>
<descr/>
<seealso>
<link id="#lcl.stdctrls.TCustomEdit.GetReadOnly">TCustomEdit.GetReadOnly</link>
</seealso>
</element>
<element name="TDBMemo.GetReadOnly.Result">
<short>Value for the property.</short>
</element>
<element name="TDBMemo.SetAutoDisplay">
<short>Sets the value for the AutoDisplay property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBMemo.SetAutoDisplay.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBMemo.SetDataField">
<short>Sets the value for the DataField property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBMemo.SetDataField.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBMemo.SetDataSource">
<short>Sets the value for the DataSource property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBMemo.SetDataSource.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBMemo.CMGetDataLink">
<short>Implements the CM_GETDATALINK message for the control.</short>
<descr/>
<seealso/>
</element>
<element name="TDBMemo.CMGetDataLink.Message">
<short>Message handled in the method.</short>
</element>
<element name="TDBMemo.GetReadOnly">
<short>Gets the value for the ReadOnly property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBMemo.GetReadOnly.Result">
<short>Value for the property.</short>
</element>
<element name="TDBMemo.SetReadOnly">
<short>Sets the value for the ReadOnly property.</short>
<descr/>
<seealso>
<link id="#lcl.stdctrls.TCustomEdit.SetReadOnly">TCustomEdit.SetReadOnly</link>
</seealso>
</element>
<element name="TDBMemo.SetReadOnly.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBMemo.DataChange">
<short>
<var>DataChange</var> - if Data changed, loads the new data into the appropriate part of the Field.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBMemo.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBMemo.Notification">
<short>
Handles the notification when a component is added or removed from the control.
</short>
<descr>
<p>
<var>Notification</var> is an overridden method in <var>TDBMemo</var>. It calls the inherited method on entry, and ensures that the <var>DataSource</var> property is <b>Nil</b>'d when the component it is removed from the class instance.
</p>
</descr>
<seealso>
<link id="TDBMemo.DataSource"/>
<link id="#lcl.controls.TControl.Notification">TControl.Notification</link>
</seealso>
</element>
<element name="TDBMemo.Notification.AComponent">
<short>Component for the notification.</short>
</element>
<element name="TDBMemo.Notification.Operation">
<short>Operation performed on / for the component.</short>
</element>
<element name="TDBMemo.UpdateData">
<short>
<var>UpdateData</var> - if data changed, copy new text via the datalink.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBMemo.UpdateData.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBMemo.Change">
<short>Performs actions needed when the value for the control has been changed.</short>
<descr>
<p>
<var>Change</var> is an overridden method used to perform actions needed when the value for the control has been changed. Change ensures that the linked dataset is notified by calling its
<var>Modified</var> method. Change calls the inherited method prior to exit to signal the
<var>OnChange</var> event or other handlers implemented in the ancestor class.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.Modified"/>
<link id="#lcl.stdctrls.TCustomEdit.Change">TCustomEdit.Change</link>
<link id="#lcl.stdctrls.TCustomEdit.OnChange">TCustomEdit.OnChange</link>
</seealso>
</element>
<element name="TDBMemo.KeyDown">
<short>Handles key down events in the data-aware control.</short>
<descr>
<p>
<var>KeyDown</var> is an overridden method used to handle key down events in the control.
</p>
<p>
<var>Key</var> is the virtual key code examined and handled in the method.
<var>Shift</var> is the
<b>Shift-Ctrl-Alt</b> modifier for the virtual key code.
</p>
<p>KeyDown calls the inherited method to handle the key down event in the method form ancestor class. If Key is not already applied, it is checked for the following values:
</p>
<dl>
<dt>VK_ESCAPE</dt>
<dd>Editing is being cancelled. Calls the <var>Reset</var> method in the <var>TFieldDataLink</var> instance used in the class. Call <var>SelectAll</var> to re-select content in the control. Sets Key to <b>VK_UNKNOWN</b> to indicate that it was handled in the method.
</dd>
<dt>VK_DELETE, VK_BACK</dt>
<dd>Content is being removed in the control. If the <var>Field</var> in the internal <var>TFieldDataLink</var> is not editable, the value in Key is set <b>VK_UNKNOWN</b>.
</dd>
</dl>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.KeyDown">TWinControl.KeyDown</link>
</seealso>
</element>
<element name="TDBMemo.KeyDown.Key">
<short>Virtual key code examined in the method.</short>
</element>
<element name="TDBMemo.KeyDown.Shift">
<short>Sift modifier for the key code.</short>
</element>
<element link="#lcl.controls.TWinControl.KeyPress" name="TDBMemo.KeyPress"/>
<element name="TDBMemo.KeyPress.Key" link="#lcl.controls.TWinControl.KeyPress.Key"/>
<element link="#lcl.controls.TControl.WndProc" name="TDBMemo.WndProc"/>
<element link="#lcl.controls.TControl.WndProc.Message" name="TDBMemo.WndProc.Message"/>
<element name="TDBMemo.WSRegisterClass">
<short>Registers the widgetset class created for new instances of the control.</short>
<descr/>
<seealso/>
</element>
<element name="TDBMemo.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, and allocates resources for the internal <var>TFieldDataLink</var> instance used in the class. The <var>DataChange</var> and <var>UpdateData</var> methods are assigned as the <var>OnDataChange</var> and <var>OnUpdateData</var> event handlers in the <var>TFieldDataLink</var> instance. Create sets the default values for the <var>ControlStyle</var> and <var>AutoDisplay</var> properties.
</p>
</descr>
<seealso>
<link id="TDBMemo.DataChange"/>
<link id="TDBMemo.UpdateData"/>
<link id="TDBMemo.AutoDisplay"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="TFieldDataLink.OnUpdateData"/>
<link id="#lcl.stdctrls.TCustomMemo.Create">TCustomMemo.Create</link>
<link id="#lcl.controls.TControl.ControlStyle">TControl.ControlStyle</link>
</seealso>
</element>
<element name="TDBMemo.Create.TheOwner">
<short>Owner for the class instance.</short>
</element>
<element name="TDBMemo.Destroy">
<short>
<var>Destroy</var> - destructor for
<var>TDBMemo</var>: frees datalinks then calls inherited
<var>Destroy</var>.
</short>
<descr/>
<seealso>
<link id="#lcl.stdctrls.TCustomMemo.Destroy">TCustomMemo.Destroy</link>
</seealso>
</element>
<element name="TDBMemo.EditingDone">
<short>Called when editing has been completed in the control.</short>
<descr>
<p>
<var>EditingDone</var> is an overridden method in <var>TDBMemo</var>. It is called when the user has finished editing in the control, and ensures that changes are applied to the field in the linked data set.
</p>
<p>
In TDBMemo, it calls the <var>UpdateRecord</var> method in the field data link when it can be modified and has been placed in edit mode. The inherited method is called to signal the <var>OnEditingDone</var> event handler (when assigned).
</p>
<p>
If the field cannot be modified in the linked data set, or the data set is not in Edit mode, the <var>Reset</var> method in the field data link is called. This will signal the <var>OnDataChange</var> event handler (when assigned), but the linked data set is not updated.
</p>
<p>
EditingDone is called from the KeyUpAfterInterface method when the VK_RETURN
key code is handled, and when the focus is changed to another control.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.CanModify"/>
<link id="TFieldDataLink.Editing"/>
<link id="TFieldDataLink.Reset"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="#fcl.db.TDataLink.UpdateRecord">TDataLink.UpdateRecord</link>
<link id="#lcl.stdctrls.TCustomEdit.EditingDone">TCustomEdit.EditingDone</link>
<link id="#lcl.controls.TControl.OnEditingDone">TControl.OnEditingDone</link>
</seealso>
</element>
<element name="TDBMemo.LoadMemo">
<short>
Loads the lines of text for the memo from the field in the linked data set.
</short>
<descr>
<p>
<var>LoadMemo</var> is a method used to load the text for the control from the field in the linked data set. No actions are performed in the method if the value for the memo has already been loaded, the field in the data link has not been assigned, or the field does not use the TBlobField field type.
</p>
<p>
LoadMemo signals the <var>OnGetText</var> event handler (when assigned) in the field data link to get the value that is stored in the <var>Lines</var> property. If the event handler has not been assigned, the <var>AsString</var> method in the linked data field is used to get the value for the control.
</p>
<p>
If an <var>EInvalidOperation</var> exception occurs while getting the value for the control, the exception message is stored in the Lines property.
</p>
<p>
LoadMemo is called when the value in <var>AutoDisplay</var> is changed to <b>True</b>, when the <var>DataChange</var> method is called, and when the <b>Enter</b> key is handled in the <var>KeyPress</var> method.
</p>
</descr>
<seealso/>
</element>
<element name="TDBMemo.ExecuteAction">
<short>Provides support for TBasicAction in the control.</short>
<descr>
<p>
<var>ExecuteAction</var> is an overridden method in
<var>TDBMemo</var>. It calls the inherited method, and when the action is not handled in the ancestor, executes
<var>AAction</var> using the
<var>ExecuteAction</var> method in the internal
<var>TFieldDataLink</var> instance in the class.
</p>
<p>The return value is <b>True</b> if the action was executed in the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.ExecuteAction">TComponent.ExecuteAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TDBMemo.ExecuteAction.Result">
<short>True if the action was executed in the method.</short>
</element>
<element name="TDBMemo.ExecuteAction.AAction">
<short>Action examined and executed in the method.</short>
</element>
<element name="TDBMemo.UpdateAction">
<short>Updates the specified action to reflect the current state in the linked dataset.
</short>
<descr>
<p>
<var>UpdateAction</var> is an overridden
<var>Boolean</var> function in
<var>TDBMemo</var>. UpdateAction is called when the
<var>Application</var> enters an idle state to ensure that the action reflects the current state for a linked dataset.
</p>
<p>
<var>AAction</var> is the
<var>TBasicAction</var> updated in the method.
</p>
<p>UpdateAction calls the inherited method, and when the internal dataset link has been assigned, executes its UpdateAction method. The return value is <b>True</b> when AAction is updated using either the inherited method, or the method in the linked dataset. The return value is <b>False</b> when AAction could not be updated in the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
<link id="#rtl.classes.TComponent.UpdateAction">TComponent.UpdateAction</link>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
</seealso>
</element>
<element name="TDBMemo.UpdateAction.Result">
<short>True if the action was updated in the method.</short>
</element>
<element name="TDBMemo.UpdateAction.AAction">
<short>Action examined and updated in the method.</short>
</element>
<element name="TDBMemo.Field">
<short>Provides access to the field definition for the data-aware control.</short>
<descr>
<p>
<var>Field</var> is a read-only
<var>TField</var> property which provides access to the field definition to which the data-aware control is linked. Read access for the property is redirected to the Field property in the internal TFieldDataLink class instance. The value in Field is updated when a new value is assigned to the Field in the TFieldDataLink instance.
</p>
<p>Use <var>DataField</var> to read or write the field name used for the data-aware control. Use <var>DataSource</var> to specify the component with the dataset containing the specified field name.
</p>
</descr>
<seealso>
<link id="TDBMemo.DataField"/>
<link id="TDBMemo.DataSource"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="#fcl.db.TField">TField</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Align" name="TDBMemo.Align"/>
<element link="#lcl.stdctrls.TCustomEdit.Alignment" name="TDBMemo.Alignment"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBMemo.Anchors"/>
<element name="TDBMemo.AutoDisplay">
<short>
<var>AutoDisplay</var> - if
<b>True</b>, automatically displays the data when loaded from the linked dataset.
</short>
<descr>
<p>
<var>AutoDisplay</var> is a
<var>Boolean</var> property which indicates if the content in the control is automatically displayed when it is loaded from the linked dataset. Changing the value in AutoDisplay causes the
<var>LoadMemo</var> method to be called to load the content for the control. The default value for the property is
<b>True</b>.
</p>
<p>AutoDisplay is used in the implementation of the <var>DataChange</var> method called when the content dataset from the dataset has been updated.
</p>
</descr>
<seealso>
<link id="TDBMemo.DataChange"/>
<link id="TDBMemo.LoadMemo"/>
</seealso>
</element>
<element link="#lcl.controls.TControl.BiDIMode" name="TDBMemo.BiDiMode"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBMemo.BorderSpacing"/>
<element name="TDBMemo.BorderStyle" link="#lcl.controls.TWinControl.BorderStyle"/>
<element link="#lcl.stdctrls.TCustomEdit.CharCase" name="TDBMemo.CharCase"/>
<element link="#lcl.controls.TControl.Color" name="TDBMemo.Color"/>
<element link="#lcl.controls.TControl.Constraints" name="TDBMemo.Constraints"/>
<element name="TDBMemo.DataField">
<short>The name of the field, as a string (i.e. cannot be referred to as an Index).</short>
<descr>
<p>
<var>DataField</var> is a <var>String</var> property which contains the name of the field in the linked dataset where the value for the control is stored. Read and write access to the property value are redirected to the <var>FieldName</var> property in the <var>TFieldDataLink</var> instance used in the class. Changing the value in DataField causes the value in the <var>Field</var> property to be updated.
</p>
<p>
Use <var>DataSource</var> to specify the component which provides access to the linked dataset for the control.
</p>
</descr>
<seealso>
<link id="TDBMemo.DataSource"/>
<link id="TDBMemo.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element name="TDBMemo.DataSource">
<short>Provides access to the dataset with content for the control.
</short>
<descr>
<p>
<var>DataSource</var> is a <var>TDataSource</var> property which provides access to the content for the data-aware control. DataSource is used in conjunction with the <var>Field</var> property to determine the dataset and field definition used when reading the value for the control.
</p>
<p>
Read and write access to the property value is redirected to the DataSource property in the internal <var>TFieldDataLink</var> instance used in the control. Assigning a new value to the property causes the <var>ChangeDataSource</var> routine to be called to apply the value to the internal TFieldDataLink instance.
</p>
<p>
Use the <var>DataField</var> property to specify the field name accessed in the linked dataset.
</p>
</descr>
<seealso>
<link id="TDBMemo.DataField"/>
<link id="TFieldDataLink.FieldName"/>
<link id="ChangeDataSource"/>
<link id="#fcl.db.TDataSource">TDataSource</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
</seealso>
</element>
<element link="#lcl.controls.TWinControl.DoubleBuffered" name="TDBMemo.DoubleBuffered"/>
<element link="#lcl.controls.TControl.DragCursor" name="TDBMemo.DragCursor"/>
<element link="#lcl.controls.TControl.DragKind" name="TDBMemo.DragKind"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBMemo.DragMode"/>
<element link="#lcl.controls.TControl.Enabled" name="TDBMemo.Enabled"/>
<element link="#lcl.controls.TControl.Font" name="TDBMemo.Font"/>
<element link="#lcl.stdctrls.TCustomEdit.MaxLength" name="TDBMemo.MaxLength"/>
<element link="#lcl.stdctrls.TCustomEdit.OnChange" name="TDBMemo.OnChange"/>
<element link="#lcl.controls.TControl.OnClick" name="TDBMemo.OnClick"/>
<element link="#lcl.controls.TControl.OnContextPopup" name="TDBMemo.OnContextPopup"/>
<element link="#lcl.controls.TControl.OnDblClick" name="TDBMemo.OnDblClick"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBMemo.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBMemo.OnDragOver"/>
<element link="#lcl.controls.TControl.OnEditingDone" name="TDBMemo.OnEditingDone"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBMemo.OnEndDrag"/>
<element link="#lcl.controls.TWinControl.OnEnter" name="TDBMemo.OnEnter"/>
<element link="#lcl.controls.TWinControl.OnExit" name="TDBMemo.OnExit"/>
<element link="#lcl.controls.TWinControl.OnKeyDown" name="TDBMemo.OnKeyDown"/>
<element link="#lcl.controls.TWinControl.OnKeyPress" name="TDBMemo.OnKeyPress"/>
<element link="#lcl.controls.TWinControl.OnKeyUp" name="TDBMemo.OnKeyUp"/>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBMemo.OnMouseDown"/>
<element link="#lcl.controls.TControl.OnMouseEnter" name="TDBMemo.OnMouseEnter"/>
<element link="#lcl.controls.TControl.OnMouseLeave" name="TDBMemo.OnMouseLeave"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBMemo.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseUp" name="TDBMemo.OnMouseUp"/>
<element link="#lcl.controls.TControl.OnMouseWheel" name="TDBMemo.OnMouseWheel"/>
<element link="#lcl.controls.TControl.OnMouseWheelDown" name="TDBMemo.OnMouseWheelDown"/>
<element link="#lcl.controls.TControl.OnMouseWheelUp" name="TDBMemo.OnMouseWheelUp"/>
<element name="TDBMemo.OnResize" link="#lcl.controls.TControl.OnResize"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBMemo.OnStartDrag"/>
<element link="#lcl.controls.TWinControl.OnUTF8KeyPress" name="TDBMemo.OnUTF8KeyPress"/>
<element link="#lcl.controls.TControl.ParentBiDiMode" name="TDBMemo.ParentBiDiMode"/>
<element link="#lcl.controls.TWinControl.ParentDoubleBuffered" name="TDBMemo.ParentDoubleBuffered"/>
<element link="#lcl.controls.TControl.ParentFont" name="TDBMemo.ParentFont"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBMemo.ParentShowHint"/>
<element link="#lcl.controls.TControl.PopupMenu" name="TDBMemo.PopupMenu"/>
<element name="TDBMemo.ReadOnly">
<short>Indicates that the text in the control cannot be modified.
</short>
<descr>
<p>
<var>ReadOnly</var> is a
<var>Boolean</var> property which indicates whether the control is prevented from modifying its textual content. When set to False, the control value can be edited.
</p>
<p>Read and write access specifiers in TDBMemo are overridden, and to the property value is redirected to the ReadOnly property in the TFieldDataLink instance used in the class. Write access calls the inherited method prior to updating the value in the field data link.
</p>
<remark>A value assigned to ReadOnly may be overridden by the Field definition from the target database table.
</remark>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomEdit.ReadOnly">TCustomEdit.ReadOnly</link>
<link id="#fcl.db.TDataLink.ReadOnly">TDataLink.ReadOnly</link>
</seealso>
</element>
<element link="#lcl.stdctrls.TCustomMemo.ScrollBars" name="TDBMemo.ScrollBars"/>
<element link="#lcl.controls.TControl.ShowHint" name="TDBMemo.ShowHint"/>
<element link="#lcl.controls.TWinControl.TabOrder" name="TDBMemo.TabOrder"/>
<element link="#lcl.controls.TWinControl.TabStop" name="TDBMemo.Tabstop"/>
<element link="#lcl.controls.TControl.Visible" name="TDBMemo.Visible"/>
<element link="#lcl.stdctrls.TCustomMemo.WantReturns" name="TDBMemo.WantReturns"/>
<element link="#lcl.stdctrls.TCustomMemo.WantTabs" name="TDBMemo.WantTabs"/>
<element link="#lcl.stdctrls.TCustomMemo.WordWrap" name="TDBMemo.WordWrap"/>
<element name="TDBGroupBox">
<short>
<var>TDBGroupBox</var> - a data-aware version of
<var>TGroupBox,</var> allowing a number of data-aware objects to be grouped together on a form.
</short>
<descr>
<p>
<var>TDBGroupBox</var> is a
<var>TCustomGroupBox</var> descendant which implements a data-aware container for visual controls. A typical use case would involve using a database table where records contain one field which defines the group box caption, while other fields provide the values for additional data-aware controls.
</p>
<p>Like other data-aware controls, TDBGroupBox contains both a <var>DataSource</var> and a <var>DataField</var> property which provides access to the linked dataset and the field with the caption for the control.
</p>
</descr>
<seealso>
<link id="#lcl.stdctrls.TCustomGroupBox">TCustomGroupBox</link>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TDBGroupBox.FDataLink">
<short>
<var>FDataLink</var> - local variable storing the identity of the Field Data Link.
</short>
</element>
<element name="TDBGroupBox.GetDataField">
<short>Gets the value for the DataField property.</short>
<descr/>
<seealso>
<link id="TDBGroupBox.DataField"/>
</seealso>
</element>
<element name="TDBGroupBox.GetDataField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBGroupBox.GetDataSource">
<short>Gets the value for the DataSource property.</short>
<descr/>
<seealso>
<link id="TDBGroupBox.DataSource"/>
</seealso>
</element>
<element name="TDBGroupBox.GetDataSource.Result">
<short>Value for the property.</short>
</element>
<element name="TDBGroupBox.GetField">
<short>Gets the value for the Field property.</short>
<descr/>
<seealso>
<link id="TDBGroupBox.Field"/>
</seealso>
</element>
<element name="TDBGroupBox.GetField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBGroupBox.SetDataField">
<short>Sets the value for the DataField property.</short>
<descr/>
<seealso>
<link id="TDBGroupBox.DataField"/>
</seealso>
</element>
<element name="TDBGroupBox.SetDataField.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBGroupBox.SetDataSource">
<short>Sets the value for the DataSource property.</short>
<descr/>
<seealso>
<link id="TDBGroupBox.DataSource"/>
</seealso>
</element>
<element name="TDBGroupBox.SetDataSource.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBGroupBox.CMGetDataLink">
<short>
<var>CMGetDataLink</var> implements the control message for finding the data link.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBGroupBox.CMGetDataLink.Message">
<short>Message where the field data link is stored in the method.</short>
</element>
<element name="TDBGroupBox.DataChange">
<short>Updates the value for the control when the linked dataset is changed.
</short>
<descr>
<p>
<var>DataChange</var> is a procedure used to update the value displayed for the control when its linked dataset has been changed.
</p>
<p>DataChange is used as the <var>OnDataChange</var> event handler in the internal <var>TFieldDataLink</var> instance used in the class. It is called after navigating to a different record in the linked dataset, or when the value for the <var>DataField</var> has been changed in program code.
</p>
<p>DataChange uses the <var>Field</var> definition (when assigned) to get the value for the <var>Caption</var> in the control. When the Field has not been assigned, the Caption is set to an empty string <b>('')</b>.
</p>
</descr>
<seealso>
<link id="TDBGroupBox.Caption"/>
<link id="TDBGroupBox.DataField"/>
<link id="TDBGroupBox.DataSource"/>
<link id="TDBGroupBox.Field"/>
<link id="TFieldDataLink"/>
</seealso>
</element>
<element name="TDBGroupBox.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBGroupBox.Notification">
<short>
Handles a notification when a component is added to or removed from the control.
</short>
<descr>
<p>
<var>Notification</var> is called whenever a child component is destroyed, inserted or removed from the list of owned component. Components that were requested to send a notification when they are freed ((with
<link id="TComponent.FreeNotification">FreeNotification</link>) will also call
<var>Notification</var> when they are freed.
</p>
<p>The <var>AComponent</var> parameter specifies which component sends the notification, and <var>Operation</var> specifies whether the component is being inserted into or removed from the child component list, or whether it is being destroyed.
</p>
<p>Descendants of <var>TComponent</var> can use <link id="TComponent.FreeNotification">FreeNotification</link> to request notification of the destruction of another object. By overriding the <var>Notification</var> method, they can do special processing (typically, set a reference to this component to <var>Nil</var>) when this component is destroyed. The <var>Notification</var> method is called quite often in the streaming process, so speed should be a consideration when overriding this method.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Notification">TControl.Notification</link>
</seealso>
</element>
<element name="TDBGroupBox.Notification.AComponent">
<short>Component for the notification event.</short>
</element>
<element name="TDBGroupBox.Notification.Operation">
<short>Operation for the notification event.</short>
</element>
<element name="TDBGroupBox.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for
<var>TDBGroupBox</var>. It calls the inherited
<var>Create</var> method, and allocates resources for the internal
<var>TFieldDataLink</var> used in the control. The current class instance is assigned as the
<var>Control</var> for the Field Data Link, and the
<var>DataChange</var> method is used as the
<var>OnDataChange</var> event handler.
</p>
</descr>
<seealso>
<link id="TDBGroupBox.DataChange"/>
<link id="TFieldDataLink"/>
<link id="TFieldDataLink.Control"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="#lcl.stdctrls.TCustomGroupBox.Create">TCustomGroupBox.Create</link>
</seealso>
</element>
<element name="TDBGroupBox.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TDBGroupBox.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for
<var>TDBGroupBox</var>. It frees resources allocated to the internal
<var>TFieldDataLink</var> instance used in the control, and calls the inherited
<var>Destroy</var> method prior to exit.
</p>
</descr>
<seealso>
<link id="TFieldDataLink"/>
<link id="#lcl.controls.TWinControl.Destroy">TWinControl.Destroy</link>
</seealso>
</element>
<element name="TDBGroupBox.ExecuteAction">
<short>Provides support for TBasicAction in the control.</short>
<descr>
<p>
<var>ExecuteAction</var> is an overridden method in
<var>TDBGroupBox</var>. It calls the inherited method, and when the action is not handled in the ancestor, executes
<var>AAction</var> using the
<var>ExecuteAction</var> method in the internal
<var>TFieldDataLink</var> instance in the class.
</p>
<p>The return value is <b>True</b> if the action was executed in the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.ExecuteAction">TComponent.ExecuteAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TDBGroupBox.ExecuteAction.Result">
<short>True if the action was executed in the method.</short>
</element>
<element name="TDBGroupBox.ExecuteAction.AAction">
<short>Action examined and executed in the method.</short>
</element>
<element name="TDBGroupBox.UpdateAction">
<short>Updates the specified action to reflect the current state in the linked dataset.
</short>
<descr>
<p>
<var>UpdateAction</var> is an overridden
<var>Boolean</var> function in
<var>TDBGroupBox</var>. UpdateAction is called when the
<var>Application</var> enters an idle state to ensure that the action reflects the current state for a linked dataset.
</p>
<p>
<var>AAction</var> is the
<var>TBasicAction</var> updated in the method.
</p>
<p>UpdateAction calls the inherited method, and when the internal dataset link has been assigned, executes its UpdateAction method. The return value is <b>True</b> when AAction is updated using either the inherited method, or the method in the linked dataset. The return value is <b>False</b> when AAction could not be updated in the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
<link id="#rtl.classes.TComponent.UpdateAction">TComponent.UpdateAction</link>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
</seealso>
</element>
<element name="TDBGroupBox.UpdateAction.Result">
<short>True if the action was updated in the method.</short>
</element>
<element name="TDBGroupBox.UpdateAction.AAction">
<short>Action examined and updated in the method.</short>
</element>
<element name="TDBGroupBox.Field">
<short>The <var>Field</var> to which the datalink is attached.</short>
<descr>
<p>
<var>Field</var> is a read-only
<var>TField</var> property which contains the field definition in the linked
<var>DataSet</var> for the database column represented by the
<var>DataField</var> property. Field provides access to the metadata for the database column, such as: field type, size, display values, lookup settings and content, editing mask, et. al.
</p>
<p>Read access to the property value is redirected to the <var>Field</var> property in the internal <var>TFieldDataLink</var> instance used in the class.
</p>
<p>The <var>DataSource</var> property contains the component which provides access to the Dataset for the data-aware control.
</p>
</descr>
<seealso>
<link id="TDBGroupBox.DataSource"/>
<link id="TDBGroupBox.DataField"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Align" name="TDBGroupBox.Align"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBGroupBox.Anchors"/>
<element link="#lcl.controls.TControl.BiDiMode" name="TDBGroupBox.BiDiMode"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBGroupBox.BorderSpacing"/>
<element name="TDBGroupBox.Caption">
<short>
Text displayed as the caption for the control.
</short>
<descr>
<p>Gets caption as a text string (<var>GetText</var>), or stores the new caption (<var>SetText</var>). Sets an internal flag if the caption is stored (<var>IsCaptionStored</var>).
</p>
<p>By default, the <var>Caption</var> is the same as the control <var>Name</var> in the Object Inspector. The developer needs to set it explicitly to some new text.
</p>
<p>The VCL implementation relies on the virtual <var>Get/SetTextBuf</var> to exchange text between widgets and VCL. This means a lot of (unnecessary) text copies.
</p>
<p>The LCL uses strings for exchanging text (more efficient). To maintain VCL compatibility, the virtual <var>RealGet/SetText</var> is introduced. These functions interface with the LCLInterface.
</p>
<p>The default <var>Get/SetTextBuf</var> implementation calls <var>RealGet/SetText</var>. As long as the <var>Get/SetTextBuf</var> isn't overridden <var>Get/SetText</var> calls <var>RealGet/SetText</var> to avoid PChar copy operations.
</p>
<p>For optimal usage, LCL implementations should always override RealGet/SetText. Get/SetTextBuf is only kept for compatibility.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Caption">TControl.Caption</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.ClientHeight" name="TDBGroupBox.ClientHeight"/>
<element link="#lcl.controls.TControl.ClientWidth" name="TDBGroupBox.ClientWidth"/>
<element link="#lcl.controls.TControl.Color" name="TDBGroupBox.Color"/>
<element link="#lcl.controls.TControl.Constraints" name="TDBGroupBox.Constraints"/>
<element name="TDBGroupBox.Cursor" link="#lcl.controls.TControl.Cursor"/>
<element name="TDBGroupBox.DataField">
<short>Contains the name of the field with the value for the control.</short>
<descr>
<p>
<var>DataField</var> is a <var>String</var> property which contains the name for the field in the linked dataset where the value for the control is read and written. Read and write access to the property value are redirected to the <var>FieldName</var> property in the internal <var>TFieldDataLink</var> instance for the control. Changing the value in DataField causes the value in <var>Field</var> to be updated.
</p>
<p>
Set the value in <var>DataSource</var> to the component which provides access to the dataset for the data-aware control.
</p>
</descr>
<seealso>
<link id="TDBGroupBox.Field"/>
<link id="TDBGroupBox.DataSource"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element name="TDBGroupBox.DataSource">
<short>Provides access to the dataset with content for the control.
</short>
<descr>
<p>
<var>DataSource</var> is a <var>TDataSource</var> property which provides access to the content for the data-aware control. DataSource is used in conjunction with the <var>Field</var> property to determine the dataset and field definition used when reading the value for the control.
</p>
<p>
Read and write access to the property value is redirected to the DataSource property in the internal <var>TFieldDataLink</var> instance used in the control. Assigning a new value to the property causes the <var>ChangeDataSource</var> routine to be called to apply the value to the internal TFieldDataLink instance.
</p>
<p>
Use the <var>DataField</var> property to specify the field name accessed in the linked dataset.
</p>
</descr>
<seealso>
<link id="TDBGroupBox.DataField"/>
<link id="TFieldDataLink.FieldName"/>
<link id="ChangeDataSource"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataSource">TDataSource</link>
</seealso>
</element>
<element link="#lcl.controls.TWinControl.DoubleBuffered" name="TDBGroupBox.DoubleBuffered"/>
<element link="#lcl.controls.TControl.DragCursor" name="TDBGroupBox.DragCursor"/>
<element link="#lcl.controls.TControl.DragKind" name="TDBGroupBox.DragKind"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBGroupBox.DragMode"/>
<element link="#lcl.controls.TControl.Enabled" name="TDBGroupBox.Enabled"/>
<element link="#lcl.controls.TControl.Font" name="TDBGroupBox.Font"/>
<element link="#lcl.controls.TControl.OnClick" name="TDBGroupBox.OnClick"/>
<element name="TDBGroupBox.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element link="#lcl.controls.TControl.OnDblClick" name="TDBGroupBox.OnDblClick"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBGroupBox.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBGroupBox.OnDragOver"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBGroupBox.OnEndDrag"/>
<element link="#lcl.controls.TWinControl.OnEnter" name="TDBGroupBox.OnEnter"/>
<element link="#lcl.controls.TWinControl.OnExit" name="TDBGroupBox.OnExit"/>
<element name="TDBGroupBox.OnKeyDown">
<short>
Event handler signalled when a key is down while the control has focus.
</short>
<descr>
<p>
<var>OnKeyDown</var> differs from <link id="TDBGroupBox.OnKeyPress">OnKeyPress</link> in that the key may have already been down when the control received focus; with <var>OnKeyPress</var> the key needs to become pressed while the control has focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyDown">TWinControl.OnKeyDown</link>
</seealso>
</element>
<element name="TDBGroupBox.OnKeyPress">
<short>
Event handler signalled when a key is being pressed while the control has focus.
</short>
<descr>
<p>
<var>OnKeyPress</var> is an event controller signalled when a key is being pressed while the control has focus.
</p>
<p>
Differs from <link id="TDBGroupBox.OnKeyDown">OnKeyDown</link> in that the key needs to become pressed while the control has focus; with <var>OnKeyDown</var> the key may have already been down when the control received focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyPress">TWinControl.OnKeyPress</link>
</seealso>
</element>
<element name="TDBGroupBox.OnKeyUp">
<short>
Event handler signalled when a key is up (not pressed) while the control has focus.
</short>
<descr>
<p>
<var>OnKeyUp</var> is an event handler signalled when a key is up (not pressed) while the control has focus.
</p>
<p>The key may already have been up when the control received focus, or a pressed key may become released during the time the control has focus.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.OnKeyUp">TWinControl.OnKeyUp</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBGroupBox.OnMouseDown"/>
<element link="#lcl.controls.TControl.OnMouseEnter" name="TDBGroupBox.OnMouseEnter"/>
<element link="#lcl.controls.TControl.OnMouseLeave" name="TDBGroupBox.OnMouseLeave"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBGroupBox.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseUp" name="TDBGroupBox.OnMouseUp"/>
<element link="#lcl.controls.TControl.OnMouseWheel" name="TDBGroupBox.OnMouseWheel"/>
<element link="#lcl.controls.TControl.OnMouseWheelDown" name="TDBGroupBox.OnMouseWheelDown"/>
<element link="#lcl.controls.TControl.OnMouseWheelUp" name="TDBGroupBox.OnMouseWheelUp"/>
<element link="#lcl.controls.TControl.OnResize" name="TDBGroupBox.OnResize"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBGroupBox.OnStartDrag"/>
<element link="#lcl.controls.TWinControl.OnUTF8KeyPress" name="TDBGroupBox.OnUTF8KeyPress"/>
<element link="#lcl.controls.TControl.ParentBiDiMode" name="TDBGroupBox.ParentBiDiMode"/>
<element link="#lcl.controls.TControl.ParentColor" name="TDBGroupBox.ParentColor"/>
<element link="#lcl.controls.TWinControl.ParentDoubleBuffered" name="TDBGroupBox.ParentDoubleBuffered"/>
<element link="#lcl.controls.TControl.ParentFont" name="TDBGroupBox.ParentFont"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBGroupBox.ParentShowHint"/>
<element link="#lcl.controls.TControl.PopupMenu" name="TDBGroupBox.PopupMenu"/>
<element link="#lcl.controls.TControl.ShowHint" name="TDBGroupBox.ShowHint"/>
<element link="#lcl.controls.TWinControl.TabOrder" name="TDBGroupBox.TabOrder"/>
<element link="#lcl.controls.TWinControl.TabStop" name="TDBGroupBox.TabStop"/>
<element name="TDBGroupBox.Visible">
<short>
Indicates if the control is visible on its parent.
</short>
<descr>
<p>The Visible property represents the ability to see a visual control. If Visible is <b>True</b> the control is shown, otherwise it is hidden. Calling Show sets, among others, Visible to <b>True</b>. Setting Visible to <b>False</b> is equivalent to calling Hide method.
</p>
<remark>The Visible property does not depend on control's parent visibility. Use IsVisible method to consider this and get real visibility.
</remark>
</descr>
<seealso>
<link id="#lcl.controls.TControl.Visible">TControl.Visible</link>
</seealso>
</element>
<element name="TOnDBImageRead">
<short>
Specifies an event handler signalled to identify the graphic type for a database image.
</short>
<descr>
<p>
<var>TOnDBImageRead</var> is the type used for the <var>OnDBImageRead</var> property in <var>TDBImage</var>. It provides a mechanism for identifying the graphic class needed to load image content in the specified stream. In general, it is used when image data in S contains an additional header that must be processed / handled prior to reading the raw image data.
</p>
</descr>
<seealso>
<link id="TDbImage.OnDbImageRead"/>
<link id="TDbImage.LoadPicture"/>
</seealso>
</element>
<element name="TOnDBImageRead.Sender">
<short>
Object (TDBImage) instance for the event notification.
</short>
</element>
<element name="TOnDBImageRead.S">
<short>
Stream instance with the image data examined in the event handler.
</short>
</element>
<element name="TOnDBImageRead.GraphExt">
<short>
Returns the file extension used for the graphic type, or an empty string when not determined.
</short>
</element>
<element name="TOnDBImageWrite">
<short>
Event handler signalled when an image is written to the specified stream.
</short>
<descr>
<p>
<var>TOnDBImageWrite</var> is the type used for the <var>OnDbImageWrite</var> property in <var>TDBImage</var>.
</p>
</descr>
<seealso>
<link id="TDbImage.OnDbImageWrite"/>
<link id="TDbImage.UpdateData"/>
</seealso>
</element>
<element name="TOnDBImageWrite.Sender">
<short>Object (TDBImage) for the event notification.</short>
</element>
<element name="TOnDBImageWrite.S">
<short>Stream instance where the image is stored.</short>
</element>
<element name="TOnDBImageWrite.GraphExt">
<short>File extension associated with the image data.</short>
</element>
<element name="TDBImage">
<short>
<var>TDBImage</var> - a data-aware Image box to display a single image from a dataset.
</short>
<descr>
<p>TDBImage is a TCustomImage descendant which implements a data-aware image control.
TDBImage is used to retrieve or save a graphic image in a field in a dataset. The field is generally a Binary Large Object (BLOB). The control allows use of clipboard operations, like Copy/Cut/Paste to add or update the content in the image.
</p>
<p>If an application doesn't need the data-aware capabilities of TDBImage, use a TImage control.
</p>
<p>TDBImage, like most data-aware controls, provides DataSource and DataField properties to connect the control to a dataset and field. Internally, it uses a TFieldDataLink to maintain an association between the control and its database-related configuration settings.
</p>
<p>Use the AutoDisplay, AutoSize, Stretch, Proportional, and Transparent properties to determine the display and sizing behavior for the graphic image.
</p>
</descr>
<seealso>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TDBImage.FDataLink"/>
<element name="TDBImage.FAutoDisplay"/>
<element name="TDBImage.FOnDBImageRead"/>
<element name="TDBImage.FOnDBImageWrite"/>
<element name="TDBImage.FQuickDraw"/>
<element name="TDBImage.FPictureLoaded"/>
<element name="TDBImage.FUpdatingRecord"/>
<element name="TDBImage.FWriteHeader"/>
<element name="TDBImage.GetDataField">
<short>Gets the value for the DataField property.</short>
<descr>
<p>
Returns the FieldName property from the field data link.
</p>
</descr>
<seealso/>
</element>
<element name="TDBImage.GetDataField.Result">
<short>Field name with the data for the control.</short>
</element>
<element name="TDBImage.GetDataSource">
<short>Gets the value for the DataSource property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBImage.GetDataSource.Result">
<short>Value for the DataSource property.</short>
</element>
<element name="TDBImage.GetField">
<short>Gets the value for the Field property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBImage.GetField.Result">
<short>Value for the Field property.</short>
</element>
<element name="TDBImage.GetReadOnly">
<short>Gets the value for the ReadOnly property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBImage.GetReadOnly.Result">
<short>Value for the ReadOnly property.</short>
</element>
<element name="TDBImage.SetAutoDisplay">
<short>Sets the value for the AutoDisplay property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBImage.SetAutoDisplay.AValue">
<short>Value for the AutoDisplay property.</short>
</element>
<element name="TDBImage.SetDataField">
<short>Sets the value for the DataField property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBImage.SetDataField.AValue">
<short>New value for the DataField property.</short>
</element>
<element name="TDBImage.SetDataSource">
<short>Sets the value for the DataSource property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBImage.SetDataSource.AValue">
<short>New value for the DataSource property.</short>
</element>
<element name="TDBImage.SetReadOnly">
<short>Sets the value for the ReadOnly property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBImage.SetReadOnly.AValue">
<short>New value for the ReadOnly property.</short>
</element>
<element name="TDBImage.CMGetDataLink">
<short>Implements the CM_GETDATALINK message for the control.</short>
<descr/>
<seealso/>
</element>
<element name="TDBImage.CMGetDataLink.Message">
<short>Message for the handler.</short>
</element>
<element name="TDBImage.Notification">
<short>
Handles notifications when a component in the class instance is added or removed.
</short>
<descr>
<p>
Notification is an overridden method in TDBImage used to handle the notification received when a component for the control is added or removed. It calls the inherited method on entry.
</p>
<p>
Notification ensures that the Datasource member is set to Nil when its component is removed from the control. Needed when the data link for the control has been assigned.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.Notification">TComponent.Notification</link>
</seealso>
</element>
<element name="TDBImage.Notification.AComponent">
<short>Component for the notification.</short>
</element>
<element name="TDBImage.Notification.Operation">
<short>Operation for the notification.</short>
</element>
<element name="TDBImage.DataChange">
<short>Performs actions needed when the content in the linked dataset has been changed.
</short>
<descr>
<p>
<var>DataChange</var> is a procedure used to perform actions needed when the content in the linked dataset has been changed. Such as when the record position has changed when scrolling the dataset.
</p>
<p>DataChange ensures that the <var>TGraphic</var> instance in <var>Picture</var> is set to <b>Nil</b>. If <var>AutoDisplay</var> is set to <b>True</b>, the graphic image is loaded by calling the <var>LoadPicture</var> method.
</p>
<p>DataChange is assigned as the <var>OnDataChange</var> event handler in the internal <var>TFieldDataLink</var> instance used in the class.
</p>
</descr>
<seealso>
<link id="TDBImage.AutoDisplay"/>
<link id="TDBImage.LoadPicture"/>
<link id="TFieldDataLink.OnDataChange"/>
<link id="#lcl.extctrls.TCustomImage.Picture">TCustomImage.Picture</link>
<link id="#lcl.graphics.TPicture.Graphic">TPicture.Graphic</link>
</seealso>
</element>
<element name="TDBImage.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBImage.UpdateData">
<short>Performs actions needed to validate and store the content for the image control.
</short>
<descr>
<p>UpdateData is a procedure used to validate and store the content for the image control.
</p>
<p>UpdateData examines the Picture in the image control to ensure that it has been assigned, and contains image content. The Field in the linked dataset is cleared if either condition is False, and no additional actions are performed in the method.
</p>
<p>Otherwise, a BLOB stream is created and used to write the image content to the field in the linked dataset. The OnDBImageWrite event handler is signalled (when assigned) to write a custom image header to the BLOB stream. If OnDBImageWrite is not used, and WriteHeader is True, the file extension for the graphic format is written to the BLOB stream. Finally, the content for the bitmap graphic is written to the BLOB stream.
</p>
<p>UpdateData is assigned as the OnUpdateData event handler in the internal TFieldDataLink instance used in the control.
</p>
</descr>
<seealso>
<link id="TDBImage.Field"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.OnUpdateData"/>
</seealso>
</element>
<element name="TDBImage.UpdateData.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBImage.PictureChanged">
<short>
Performs actions needed when the Picture property in the image control has been changed.
</short>
<descr>
<p>PictureChanged is an overridden method in TDBImage, and calls the inherited method. PictureChanged ensures that the Change method is called if it has not already been executed.
</p>
<p>PictureChanged is assigned as the OnChange event handler for the TPicture instance in the Picture property.
</p>
</descr>
<seealso>
<link id="#lcl.extctrls.TCustomImage.PictureChanged">TCustomImage.PictureChanged</link>
<link id="#lcl.graphics.TPicture.OnChange">TPicture.OnChange</link>
</seealso>
</element>
<element name="TDBImage.PictureChanged.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBImage.WSRegisterClass">
<short>Register the component class with the widgetset.</short>
<descr>
<p>
<var>WSRegisterClass</var> is a class method used to register the component class with the widgetset.
</p>
<p>
It is overridden in <var>TDBImage</var> to ensure that the class is registered only once. No actions are performed in the method if the class has already been registered with the widgetset. It calls the inherited method to register ancestor image classes.
</p>
<p>
TDBImage calls <var>RegisterPropertyToSkip</var> to exclude the <var>Picture</var> property during LCL component streaming. TDBImage loads its Picture data from the data set, and not from an LFM resource. Picture was removed in Lazarus version 0.9.29.
</p>
</descr>
<seealso>
<link id="#lcl.extctrls.TCustomImage.WSRegisterClass">TCustomImage.WSRegisterClass</link>
<link id="#lcl.extctrls.TCustomImage.Picture">TCustomImage.Picture</link>
<link id="#lcl.lresources.RegisterPropertyToSkip">RegisterPropertyToSkip</link>
</seealso>
</element>
<element name="TDBImage.DoCopyToClipboard">
<short>Implements the clipboard Copy (Ctrl+C) command.</short>
<descr>
<p>
<var>DoCopyToClipboard</var> is a procedure used to implement the clipboard
<b>Copy</b> (
<b>Ctrl+C</b>) command. DoCopyToClipboard assigns the
<var>Picture</var> in the control to the
<var>Clipboard</var> for the application.
</p>
<p>For the Windows platform, the <var>TBitmap</var> format is expected in Picture. For all other platforms, the <var>TPortableNetworkGraphic</var> format is expected. DoCopyToClipboard calls the <var>AddFormat</var> method in Clipboard when needed. If Picture uses a <var>Graphic</var> format other than expected, it is written to a memory stream and loaded into the Clipboard using the newly registered graphic format.
</p>
</descr>
<seealso>
<link id="#lcl.extctrls.TCustomImage.Picture">TCustomImage.Picture</link>
<link id="#lcl.clipbrd.TClipboard.AddFormat">TClipboard.AddFormat</link>
<link id="#lcl.clipbrd.TClipboard">TClipboard</link>
<link id="#lcl.graphics.TGraphic">TGraphic</link>
<link id="#lcl.graphics.TBitmap">TBitmap</link>
<link id="#lcl.graphics.TPortableNetworkGraphic">TPortableNetworkGraphic</link>
</seealso>
</element>
<element name="TDBImage.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 constructor.
</p>
<p>Create allocates resources for the internal <var>TFieldDataLink</var> instance used in the class, and configures the data link. The <var>DataChange</var> and <var>UpdateData</var> methods are used as the <var>OnDataChange</var> and <var>OnUpdateData</var> event handlers in the data link.
</p>
<p>Create sets the default value for the following properties:
</p>
<dl>
<dt>ControlStyle</dt>
<dd>Includes csReplicatable in the existing style for the control.</dd>
<dt>AutoDisplay</dt>
<dd>Set to True.</dd>
<dt>QuickDraw</dt>
<dd>Set to True.</dd>
<dt>WriteHeader</dt>
<dd>Set to True.</dd>
</dl>
</descr>
<seealso>
<link id="#lcl.extctrls.TCustomImage.Create">TCustomImage.Create</link>
</seealso>
</element>
<element name="TDBImage.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TDBImage.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 internal
<var>TFieldDataLink</var> instance is freed, and calls the inherited destructor prior to exiting from the method.
</p>
</descr>
<seealso>
<link id="#lcl.extctrls.TCustomImage.Destroy">TCustomImage.Destroy</link>
</seealso>
</element>
<element name="TDBImage.ExecuteAction">
<short>Provides support for TBasicAction in the control.</short>
<descr>
<p>
<var>ExecuteAction</var> is an overridden method in
<var>TDBImge</var>. It calls the inherited method, and when the action is not handled in the ancestor, executes
<var>AAction</var> using the
<var>ExecuteAction</var> method in the internal
<var>TFieldDataLink</var> instance in the class.
</p>
<p>The return value is <b>True</b> if the action was executed in the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.ExecuteAction">TComponent.ExecuteAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TDBImage.ExecuteAction.Result">
<short>True if the action was executed in the method.</short>
</element>
<element name="TDBImage.ExecuteAction.AAction">
<short>Action examined and executed in the method.</short>
</element>
<element name="TDBImage.UpdateAction">
<short>Updates the specified action to reflect the current state in the linked dataset.
</short>
<descr>
<p>
<var>UpdateAction</var> is an overridden
<var>Boolean</var> function in
<var>TDBImage</var>. UpdateAction is called when the
<var>Application</var> enters an idle state to ensure that the action reflects the current state for a linked dataset.
</p>
<p>
<var>AAction</var> is the
<var>TBasicAction</var> updated in the method.
</p>
<p>UpdateAction calls the inherited method, and when the internal dataset link has been assigned, executes its UpdateAction method. The return value is <b>True</b> when AAction is updated using either the inherited method, or the method in the linked dataset. The return value is <b>False</b> when AAction could not be updated in the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
<link id="#rtl.classes.TComponent.UpdateAction">TComponent.UpdateAction</link>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
</seealso>
</element>
<element name="TDBImage.UpdateAction.Result">
<short>True if the action was updated in the method.</short>
</element>
<element name="TDBImage.UpdateAction.AAction">
<short>Action examined and updated in the method.</short>
</element>
<element name="TDBImage.Field">
<short>Definition for the field in the linked dataset where the control value is stored.</short>
<descr>
<p>
<var>Field</var> is a read-only
<var>TField</var> property which provides access to the field definition to which the data-aware control is linked. Read access for the property is redirected to the Field property in the internal TFieldDataLink class instance. The value in Field is updated when a new value is assigned to the Field in the TFieldDataLink instance.
</p>
<p>Use <var>DataField</var> to read or write the field name used for the data-aware control. Use <var>DataSource</var> to specify the component with the dataset containing the specified field name.
</p>
</descr>
<seealso>
<link id="TDBImage.DataField"/>
<link id="TDBImage.DataSource"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="#fcl.db.TField">TField</link>
</seealso>
</element>
<element name="TDBImage.Change">
<short>Notifies the linked dataset when the value in the control is changed.
</short>
<descr>
<p>
<var>Change</var> is a procedure used to notify the linked dataset in
<var>DataSource</var> when the image in the control has been changed. Change calls the
<var>Modified</var> method in the internal
<var>TFieldDataLink</var> instance used in the class. This results in the
<var>UpdateData</var> method being called to post the new value to the field in the dataset.
</p>
</descr>
<seealso>
<link id="TDBImage.UpdateData"/>
<link id="TDBImage.DataField"/>
<link id="TDBImage.DataSource"/>
<link id="TFieldDataLink.Modified"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element name="TDBImage.LoadPicture">
<short>Loads the graphic content for the control from a field in the linked dataset.</short>
<descr>
<p>
<var>LoadPicture</var> is a procedure used to load the graphic content into the image control from the field in the linked dataset. <var>DataField</var> contains the field name with the value for the control. <var>DataSource</var> is the component which provides access to the dataset with the specified field name.
</p>
<p>
LoadPicture uses the internal <var>TFieldDataLink</var> in the class instance to access the dataset and the field definition used in the operation. The Field is assigned to the <var>Picture</var> in the control when it is not already in use. If the Field is a <b>BLOB</b> field type, a <b>BLOB</b> stream is created and used to load the content in Picture.
</p>
<p>
LoadPicture uses the <var>OnDBImageRead</var> event handler (when assigned) to identify and load the graphic header and content for the image. When OnDBImageRead is implemented, it is assumed that a known graphic type is processed in its entirety in the handler. Otherwise, an invalid graphic type is returned and the remainder of the stream content is the graphic image data. In particular, returning an invalid graphic class while the stream contains an image header will not work.
</p>
<p>
If OnDBImageRead is not used, the <var>ReadImageHeader</var> method is called and the content for the graphic type is read and assigned to the Picture in the control.
</p>
<p>
LoadPicture is called when the value in the <var>AutoDisplay</var> property is changed to <b>True</b>, and from the implementation of the <var>DataChange</var> method.
</p>
<p>
Use <var>PictureLoaded</var> to determine if LoadPicture has already been called for the current record in the linked dataset.
</p>
</descr>
<seealso>
<link id="TDBImage.AutoDisplay"/>
<link id="TDBImage.PictureLoaded"/>
<link id="TDBImage.DataChange"/>
<link id="TDBImage.Field"/>
<link id="TDBImage.DataField"/>
<link id="TDBImage.DataSource"/>
<link id="TDBImage.OnDBImageRead"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#lcl.extctrls.TCustomImage.Picture">TCustomImage.Picture</link>
<link id="#lcl.graphics.TPicture.Graphic">TPicture.Graphic</link>
</seealso>
</element>
<element name="TDBImage.CopyToClipboard">
<short>Performs actions needed for the Clipboard Copy (Ctrl+C) command.</short>
<descr/>
<seealso/>
</element>
<element name="TDBImage.CutToClipboard">
<short>Performs actions needed for the Clipboard Cut (Ctrl+C) command.</short>
<descr/>
<seealso/>
</element>
<element name="TDBImage.PasteFromClipboard">
<short>Performs actions needed for the Clipboard Paste (Ctrl+V) command.</short>
<descr/>
<seealso/>
</element>
<element name="TDBImage.PictureLoaded">
<short>Indicates if the graphic content for the data-aware control has been loaded from its linked dataset.
</short>
<descr/>
<seealso/>
</element>
<element link="#lcl.controls.TControl.Align" name="TDBImage.Align"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBImage.Anchors"/>
<element link="#lcl.extctrls.TCustomImage.AntiAliasingMode" name="TDBImage.AntiAliasingMode"/>
<element name="TDBImage.AutoDisplay">
<short>
<var>AutoDisplay</var> - if
<b>True</b>, automatically displays when focus is given.
</short>
<descr>
<p>
<var>AutoDisplay</var> is a
<var>Boolean</var> property which indicates if the graphic content for the control is automatically displayed when values become available in the linked dataset. AutoDisplay is used in the implementation of the
<var>DataChange</var> method to determine if
<var>LoadPicture</var> is called.
</p>
<p>Setting the property to <b>True</b> calls the LoadPicture method to retrieve the graphic content from the field in <var>DataField</var>.
</p>
<p>The default value for the property is <b>True</b>.
</p>
</descr>
<seealso>
<link id="TDBImage.LoadPicture"/>
<link id="TDBImage.DataChange"/>
<link id="TDBImage.Field"/>
<link id="TDBImage.DataField"/>
<link id="TDBImage.DataSource"/>
<link id="TFieldDataLink"/>
</seealso>
</element>
<element name="TDBImage.AutoSize" link="#lcl.controls.TControl.AutoSize"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBImage.BorderSpacing"/>
<element link="#lcl.extctrls.TCustomImage.Center" name="TDBImage.Center"/>
<element link="#lcl.controls.TControl.Constraints" name="TDBImage.Constraints"/>
<element name="TDBImage.DataField">
<short>Contains the name of the field with the value for the control.</short>
<descr>
<p>
<var>DataField</var> is a <var>String</var> property which contains the name for the field in the linked dataset where the value for the control is read and written. Read and write access to the property value are redirected to the <var>FieldName</var> property in the internal <var>TFieldDataLink</var> instance for the control. Changing the value in DataField causes the value in <var>Field</var> to be updated.
</p>
<p>
Set the value in <var>DataSource</var> to the component which provides access to the dataset for the data-aware control.
</p>
<p>
Graphic content read from DataField is stored in the Picture property for display and editing using the control.
</p>
</descr>
<seealso>
<link id="TDBImage.Field"/>
<link id="TDBImage.DataSource"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
<link id="#lcl.extctrls.TCustomImage.Picture">TCustomImage.Picture</link>
</seealso>
</element>
<element name="TDBImage.DataSource">
<short>Provides access to the dataset with content for the control.
</short>
<descr>
<p>
<var>DataSource</var> is a <var>TDataSource</var> property which provides access to the content for the data-aware control. DataSource is used in conjunction with the <var>Field</var> property to determine the dataset and field definition used when reading the value for the control.
</p>
<p>
Read and write access to the property value is redirected to the DataSource property in the internal <var>TFieldDataLink</var> instance used in the control. Assigning a new value to the property causes the <var>ChangeDataSource</var> routine to be called to apply the value to the internal TFieldDataLink instance.
</p>
<p>
Use the <var>DataField</var> property to specify the field name accessed in the linked dataset.
</p>
</descr>
<seealso>
<link id="#fcl.db.TDataSource">TDataSource</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.DragCursor" name="TDBImage.DragCursor"/>
<element link="#lcl.controls.TControl.DragKind" name="TDBImage.DragKind"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBImage.DragMode"/>
<element name="TDBImage.KeepOriginXWhenClipped" link="#lcl.extctrls.TCustomImage.KeepOriginXWhenClipped"/>
<element name="TDBImage.KeepOriginYWhenClipped" link="#lcl.extctrls.TCustomImage.KeepOriginYWhenClipped"/>
<element name="TDBImage.OnClick" link="#lcl.controls.TControl.OnClick"/>
<element name="TDBImage.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element name="TDBImage.OnDblClick" link="#lcl.controls.TControl.OnDblClick"/>
<element name="TDBImage.OnDBImageRead">
<short>Event to read a custom header from image stream.</short>
<descr>
<p>By default, the <var>TDbImage</var> component expects a header at the start of the image stream. This helps to efficiently identify the image format contained in the data stream. On writing, the header is controlled by the <var>WriteHeader</var> property or the <var>OnDbImageWrite</var> event handler.
</p>
<p>When loading image data which was created by external applications, the data stream may not have a header or the header is not a format identifier that the <var>TDbImage</var> component would recognize.
</p>
<p>In this case, the <var>OnDbImageRead</var> event can be used to identify the image format in the data stream. In the <var>GraphExt</var> parameter it must return a format identifier corresponding to the registered image format. This format identifier could e.g. be read from the data stream provided in the <var>s</var> parameter. On return, the data stream should start with the raw image data.
</p>
<p>If the <var>OnDbImageRead</var> handler was not implemented or if it returns an invalid format identifier, the <var>TDbImage</var> component will try to load the image by checking the data stream content. This means that it is not necessary to write an <var>OnDbImageRead</var> event handler for the most common image formats, For example: jpg, png, gif or bmp.
</p>
<p>The <var>TDbImage</var> component will be able to identify the image format even if the data stream doesn't have a header for those TGraphic registered classes that implement the IsStreamFormatSupported method.
</p>
</descr>
</element>
<element name="TDBImage.OnDBImageWrite">
<short>Event to write a custom header into image stream.</short>
<descr>
<p>Use <var>OnDBImageWrite</var> to write a custom header in the image stream. This header could be "decoded" in the handler for the <var>OnDbImageRead</var> event when loading. The header will be followed by the image raw data.
</p>
<p>By default, <var>TDbImage</var> will write an image header in order to efficiently identify the image format when loading. This behavior is controlled by the <var>WriteHeader</var> property. If your database will be shared with external applications that do not support this, it is important to not write an image header. This could be achieved by writing an empty handler for <var>OnDbImageWrite</var>. Note that an empty handler has the same effect as setting <var>WriteHeader</var> to <b>False</b>.
</p>
<p>
<var>OnDbImageWrite</var> has precedence over the
<var>WriteHeader</var> property.
</p>
</descr>
</element>
<element link="#lcl.controls.TControl.PopupMenu" name="TDBImage.PopupMenu"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBImage.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBImage.OnDragOver"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBImage.OnEndDrag"/>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBImage.OnMouseDown"/>
<element link="#lcl.controls.TControl.OnMouseEnter" name="TDBImage.OnMouseEnter"/>
<element link="#lcl.controls.TControl.OnMouseLeave" name="TDBImage.OnMouseLeave"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBImage.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseUp" name="TDBImage.OnMouseUp"/>
<element name="TDBImage.OnMouseWheel" link="#lcl.controls.TControl.OnMouseWheel"/>
<element name="TDBImage.OnMouseWheelDown" link="#lcl.controls.TControl.OnMouseWheelDown"/>
<element name="TDBImage.OnMouseWheelUp" link="#lcl.controls.TControl.OnMouseWheelUp"/>
<element name="TDBImage.OnResize" link="#lcl.controls.TControl.OnResize"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBImage.OnStartDrag"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBImage.ParentShowHint"/>
<element link="#lcl.extctrls.TCustomImage.Proportional" name="TDBImage.Proportional"/>
<element name="TDBImage.QuickDraw">
<short>
<var>QuickDraw</var> - if
<b>True</b>, quick drawing is implemented.
</short>
<descr>
<p>QuickDraw is a Boolean property which indicates if QuickDraw is enabled for the platform or OS. The default value for the property is <b>True</b>.
</p>
<remark>
QuickDraw is not used in the current LCL implementation.
</remark>
</descr>
<seealso/>
</element>
<element name="TDBImage.ReadOnly">
<short>Indicates if the control cannot modify the image in the field for the linked dataset.</short>
<descr>
<p>
<var>ReadOnly</var> is a
<var>Boolean</var> property which indicates if the control cannot modify its
<var>DataField</var> in the linked dataset. When set to
<b>True</b>, the underlying field value cannot be modified using the control.
</p>
<p>Read and write access for the property value are redirected to the ReadOnly property in the TFieldDataLink instance used in the control.
</p>
<remark>
A value assigned to ReadOnly may be overridden by the Field definition in the target database table.
</remark>
</descr>
<seealso>
<link id="TDBImage.DataField"/>
<link id="TDBImage.DataSource"/>
<link id="TDBImage.Field"/>
<link id="#fcl.db.TDataLink.ReadOnly">TDataLink.ReadOnly</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.ShowHint" name="TDBImage.ShowHint"/>
<element link="#lcl.extctrls.TCustomImage.Stretch" name="TDBImage.Stretch"/>
<element name="TDBImage.StretchInEnabled" link="#lcl.extctrls.TCustomImage.StretchInEnabled"/>
<element name="TDBImage.StretchOutEnabled" link="#lcl.extctrls.TCustomImage.StretchOutEnabled"/>
<element link="#lcl.extctrls.TCustomImage.Transparent" name="TDBImage.Transparent"/>
<element name="TDBImage.Visible" link="#lcl.controls.TControl.Visible"/>
<element name="TDBImage.WriteHeader">
<short>Write a header in the image stream.</short>
<descr>
<p>The <var>WriteHeader</var> property controls whether or not a header will be written to the image stream. By default a header will be written. This helps to efficiently identify the image format when loading. The writing of a header in the image stream could be a problem if the database will be shared with external applications that do not expect a header in the image stream. In this case, set WriteHeader value to <b>False</b> in order to skip the header writing.
</p>
<p>The default value is <b>True</b>.
</p>
<p>Note: The <var>WriteHeader</var> value is ignored if the <var>OnDbImageWrite</var> event is implemented.
</p>
</descr>
</element>
<element name="TDBCalendar">
<short>
<var>TDBCalendar</var> - a data-aware version of
<var>TCalendar</var>, for selecting a date to store in a database field.
</short>
<descr>
<p>
<var>TDBCalendar</var> is a
<var>TCalendar</var> descendant which implements a data-aware calendar control used to select a date and store its value in a database field.
<var>TDBCalendar</var>, like its ancestor, displays a calendar which can be used to navigate through years, months, and days to select the Date value for the control. When Date has been assigned, it is stored in the field identified by the name in DataField.
</p>
<p>Use Field to access the definition and metadata for the field where the Date value is stored.
</p>
<p>Use DataSource to assign the component with the dataset where the Date value is stored.
</p>
<p>Use DisplaySettings to control the visual appearance and content displayed on the calendar control.
</p>
<p>Use the OnYearChanged event to perform action required when the navigation arrows in the calendar are used to change the year in the Date value.
</p>
<p>Internally, a TFieldDataLink class instance is used to maintain the association between the control, the datasource, and the field. In addition, support for using standard actions is provided in the ExecuteAction and UpdateAction methods.
</p>
<remark/>
</descr>
<seealso>
<link id="#lcl.calendar.TCalendar">TCalendar</link>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
</seealso>
</element>
<element name="TDBCalendar.FDataLink">
<short>
<var>FDataLink</var> is a local variable used to hold field information for the linked dataset.
</short>
</element>
<element name="TDBCalendar.DataChange">
<short>
<var>DataChange</var> - if the link is active, transmit the changed data.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCalendar.DataChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBCalendar.UpdateDate">
<short>
<var>UpdateDate</var> - implements any pending changes in the date selected.
</short>
</element>
<element name="TDBCalendar.UpdateData.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBCalendar.GetDataField">
<short>Gets the value for the DataField property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCalendar.GetDataField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBCalendar.GetDataSource">
<short>Gets the value for the DataSource property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCalendar.GetDataSource.Result">
<short>Value for the property.</short>
</element>
<element name="TDBCalendar.GetField">
<short>Gets the value for the Field property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCalendar.GetField.Result">
<short>Value for the property.</short>
</element>
<element name="TDBCalendar.GetReadOnly">
<short>Gets the value for the ReadOnly property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCalendar.GetReadOnly.Result">
<short>Value for the property.</short>
</element>
<element name="TDBCalendar.SetReadOnly">
<short>Sets the value for the ReadOnly property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCalendar.SetReadOnly.Value">
<short>New value for the property.</short>
</element>
<element name="TDBCalendar.SetDate">
<short>Sets the value for the Date property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCalendar.SetDate.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCalendar.SetDataField">
<short>Sets the value for the DataField property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCalendar.SetDataField.Value">
<short>New value for the property.</short>
</element>
<element name="TDBCalendar.SetDataSource">
<short>Sets the value for the DataSource property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCalendar.SetDataSource.Value">
<short>New value for the property.</short>
</element>
<element name="TDBCalendar.UpdateDate">
<short>Updates the value in the Date property.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCalendar.UpdateDate.AValue">
<short>Value assigned to the Date property.</short>
</element>
<element name="TDBCalendar.CMGetDataLink">
<short>
<var>CMGetDataLink</var> - control message method for getting the data link.
</short>
</element>
<element name="TDBCalendar.CMGetDataLink.Message">
<short>Implements the CM_GETDATALINK message for the control.</short>
</element>
<element name="TDBCalendar.Notification">
<short>
Handles the notification when a component on the control is added or removed.
</short>
<descr>
<p>
Notification is an overridden method in TDBCalendar. It ensures that the DataSource is set to Nil when the component is freed.
</p>
</descr>
<seealso>
<link id="TDBCalendar.DataSource"/>
<link id="#lcl.controls.TControl.Notification">TControl.Notification</link>
</seealso>
</element>
<element name="TDBCalendar.Notification.AComponent">
<short>Component for the notification.</short>
</element>
<element name="TDBCalendar.Notification.Operation">
<short>Operation for the notification.</short>
</element>
<element name="TDBCalendar.Create">
<short>
<var>Create</var> - constructor for
<var>TDBCalendar</var>: calls inherited
<var>Create</var> and forms datalinks and actions.
</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance, and calls the inherited constructor. Create allocates resources for the internal
<var>TFieldDataLink</var> instance used in the class. The
<var>DataChange</var> and
<var>UpdateData</var> methods in the control are assigned to the
<var>OnDataChange</var> and
<var>OnUpdateData</var> event handlers in the TFieldDataLink instance.
</p>
</descr>
<seealso>
<link id="TFieldDataLink.OnDataChange"/>
<link id="TFieldDataLink.OnUpdateData"/>
<link id="#lcl.calendar.TCustomCalendar.Create">TCustomCalendar.Create</link>
</seealso>
</element>
<element name="TDBCalendar.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TDBCalendar.Destroy">
<short>
<var>Destroy</var> - destructor for
<var>TDBCalendar</var>: frees datalinks and calls inherited
<var>Destroy</var>.
</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance. Destroy frees resources allocated to the internal
<var>TFieldDataLink</var> instance in the class, and calls the inherited destructor.
</p>
</descr>
<seealso>
<link id="#lcl.controls.TWinControl.Destroy">TWinControl.Destroy</link>
</seealso>
</element>
<element name="TDBCalendar.EditingDone">
<short>Performs actions needed when the user has finished editing.
</short>
<descr>
<p>
<var>EditingDone</var> is an overridden method in
<var>TDBCalendar</var>. It is used to perform actions needed when the user has finished editing using the control. It occurs when the focus changes to another control, or when the user selects another item using the mouse.
</p>
<p>EditingDone extends the behavior from the ancestor class to update the linked dataset by calling the <var>UpdateRecord</var> method in <var>TFIeldDataLink</var> instance used in the class.
</p>
<p>EditingDone calls the inherited method to signal the <var>OnEditingDone</var> event handler (when assigned).
</p>
</descr>
<seealso>
<link id="#fcl.db.TDataLink.UpdateRecord">TDataLink.UpdateRecord</link>
<link id="#lcl.controls.TControl.EditingDone">TControl.EditingDone</link>
<link id="#lcl.controls.TControl.OnEditingDone">TControl.OnEditingDone</link>
</seealso>
</element>
<element name="TDBCalendar.ExecuteAction">
<short>Provides support for TBasicAction in the control.</short>
<descr>
<p>
<var>ExecuteAction</var> is an overridden method in
<var>TDBCalendar</var>. It calls the inherited method, and when the action is not handled in the ancestor, executes
<var>AAction</var> using the
<var>ExecuteAction</var> method in the internal
<var>TFieldDataLink</var> instance in the class.
</p>
<p>The return value is <b>True</b> if the action was executed in the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TComponent.ExecuteAction">TComponent.ExecuteAction</link>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
</seealso>
</element>
<element name="TDBCalendar.ExecuteAction.Result">
<short>True if the action was executed in the method.</short>
</element>
<element name="TDBCalendar.ExecuteAction.AAction">
<short>Action examined and executed in the method.</short>
</element>
<element name="TDBCalendar.UpdateAction">
<short>Updates the specified action to reflect the current state in the linked dataset.
</short>
<descr>
<p>
<var>UpdateAction</var> is an overridden
<var>Boolean</var> function in
<var>TDBCalendar</var>. UpdateAction is called when the
<var>Application</var> enters an idle state to ensure that the action reflects the current state for a linked dataset.
</p>
<p>
<var>AAction</var> is the
<var>TBasicAction</var> updated in the method.
</p>
<p>UpdateAction calls the inherited method, and when the internal dataset link has been assigned, executes its UpdateAction method. The return value is <b>True</b> when AAction is updated using either the inherited method, or the method in the linked dataset. The return value is <b>False</b> when AAction could not be updated in the method.
</p>
</descr>
<seealso>
<link id="#rtl.classes.TBasicAction">TBasicAction</link>
<link id="#rtl.classes.TComponent.UpdateAction">TComponent.UpdateAction</link>
<link id="#fcl.db.TDataLink.UpdateAction">TDataLink.UpdateAction</link>
</seealso>
</element>
<element name="TDBCalendar.UpdateAction.Result">
<short>True if the action was updated in the method.</short>
</element>
<element name="TDBCalendar.UpdateAction.AAction">
<short>Action examined and updated in the method.</short>
</element>
<element name="TDBCalendar.Field">
<short>Provides access to the field definition for the data-aware control.</short>
<descr>
<p>
<var>Field</var> is a read-only
<var>TField</var> property which provides access to the field definition to which the data-aware control is linked. Read access for the property is redirected to the Field property in the internal TFieldDataLink class instance. The value in Field is updated when a new value is assigned to the Field in the TFieldDataLink instance.
</p>
<p>Use <var>DataField</var> to read or write the field name used for the data-aware control. Use <var>DataSource</var> to specify the data source with the dataset containing the specified field name.
</p>
</descr>
<seealso>
<link id="TDBCalendar.DataField"/>
<link id="TDBCalendar.DataSource"/>
<link id="TFieldDataLink.Field"/>
<link id="TFieldDataLink.FieldName"/>
<link id="#fcl.db.TField">TField</link>
</seealso>
</element>
<element name="TDBCalendar.BorderSpacing" link="#lcl.controls.TControl.BorderSpacing"/>
<element name="TDBCalendar.Constraints" link="#lcl.controls.TControl.Constraints"/>
<element name="TDBCalendar.DataField">
<short>Contains the name of the field with the value for the control.</short>
<descr>
<p>
<var>DataField</var> is a <var>String</var> property which contains the name for the field in the linked dataset where the value for the control is read and written. Read and write access to the property value are redirected to the <var>FieldName</var> property in the internal <var>TFieldDataLink</var> instance for the control. Changing the value in DataField causes the value in <var>Field</var> to be updated.
</p>
<p>
Set the value in <var>DataSource</var> to the component which provides access to the dataset for the data-aware control.
</p>
</descr>
<seealso>
<link id="TDBCalendar.Field"/>
<link id="TDBCalendar.DataSource"/>
<link id="TFieldDataLink.FieldName"/>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element name="TDBCalendar.DataSource">
<short>Provides access to the dataset with content for the control.
</short>
<descr>
<p>
<var>DataSource</var> is a <var>TDataSource</var> property which provides access to the content for the data-aware control. DataSource is used in conjunction with the <var>Field</var> property to determine the dataset and field definition used when reading the value for the control.
</p>
<p>
Read and write access to the property value is redirected to the DataSource property in the internal <var>TFieldDataLink</var> instance used in the control. Assigning a new value to the property causes the <var>ChangeDataSource</var> routine to be called to apply the value to the internal TFieldDataLink instance.
</p>
<p>
Use the <var>DataField</var> property to specify the field name accessed in the linked dataset.
</p>
</descr>
<seealso>
<link id="TDBCalendar.DataField"/>
<link id="TFieldDataLink.FieldName"/>
<link id="ChangeDataSource"/>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataSource">TDataSource</link>
</seealso>
</element>
<element name="TDBCalendar.Date">
<short>Date value for the control as a String type.</short>
<descr>
<p>
<var>Date</var> is a <var>String</var> property that represents the date/time value for the control as a string data type. Write access is re-implemented in TDBCalendar to call the DataChange method after setting the DateTime value in the ancestor.
</p>
<p>
Use <var>DateTime</var> to access the value for the control as a <var>TDateTime</var> value.
</p>
</descr>
<errors>
Raises an <var>EInvalidDate</var> exception in the ancestor class when an invalid date value is assigned to Date.
</errors>
<seealso>
<link id="Calendar.TCustomCalendar.Date"/>
<link id="Calendar.TCustomCalendar.DateTime"/>
</seealso>
</element>
<element name="TDBCalendar.ReadOnly">
<short>Indicates if the control cannot modify the field in the linked dataset.</short>
<descr>
<p>
<var>ReadOnly</var> is a
<var>Boolean</var> property which indicates if the control cannot modify its
<var>DataField</var> in the linked dataset. When set to
<b>True</b>, the underlying field value cannot be modified using the control.
</p>
<p>Read and write access for the property value are redirected to the ReadOnly property in the TFieldDataLink instance used in the control.
</p>
<remark>
A value assigned to ReadOnly may be overridden by the Field definition from the target database table.
</remark>
</descr>
<seealso>
<link id="TDBCalendar.DataField"/>
<link id="TDBCalendar.DataSource"/>
<link id="TDBCalendar.Field"/>
<link id="TFieldDataLink.Field"/>
<link id="#fcl.db.TDataLink.ReadOnly">TDataLink.ReadOnly</link>
<link id="#fcl.db.TDataLink.DataSource">TDataLink.DataSource</link>
<link id="#fcl.db.TDataLink.DataSet">TDataLink.DataSet</link>
</seealso>
</element>
<element link="#LCL.Calendar.TCustomCalendar.DisplaySettings" name="TDBCalendar.DisplaySettings"/>
<element name="TDBCalendar.DoubleBuffered" link="#lcl.controls.TWinControl.DoubleBuffered"/>
<element link="#lcl.controls.TControl.DragCursor" name="TDBCalendar.DragCursor"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBCalendar.DragMode"/>
<element name="TDBCalendar.ParentDoubleBuffered" link="#lcl.controls.TWinControl.ParentDoubleBuffered"/>
<element link="#lcl.controls.TControl.Visible" name="TDBCalendar.Visible"/>
<element link="#lcl.controls.TControl.OnClick" name="TDBCalendar.OnClick"/>
<element name="TDBCalendar.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBCalendar.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBCalendar.OnDragOver"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBCalendar.OnEndDrag"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBCalendar.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBCalendar.OnMouseDown"/>
<element link="#LCL.Calendar.TCustomCalendar.OnDayChanged" name="TDBCalendar.OnDayChanged"/>
<element link="#LCL.Calendar.TCustomCalendar.OnMonthChanged" name="TDBCalendar.OnMonthChanged"/>
<element link="#LCL.Calendar.TCustomCalendar.OnYearChanged" name="TDBCalendar.OnYearChanged"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBCalendar.OnStartDrag"/>
<element name="TDBNavGlyph">
<short>Not used in the current LCL version.</short>
<descr>Not used in the current LCL version</descr>
<seealso/>
</element>
<element name="TDBNavGlyph.ngEnabled">
<short>Not used in the current LCL version.</short>
</element>
<element name="TDBNavGlyph.ngDisabled">
<short>Not used in the current LCL version.</short>
</element>
<element name="TDBNavButtonType">
<short>TDBNavButtonType.</short>
<descr>
<p>
<var>TDBNavButtonType</var> is an enumerated type with values that represent button types (and their corresponding glyphs) in a database navigation control. TDBNavButtonType enumeration values are used when accessing the <var>Buttons</var> and <var>Images</var> in <var>TDBCustomNavigator</var>, and when accessing the default resource names in <var>DBNavButtonResourceName</var>.
</p>
</descr>
<seealso>
<link id="TDBCustomNavigator.Buttons"/>
<link id="TDBCustomNavigator.Images"/>
<link id="DBNavButtonResourceName"/>
</seealso>
</element>
<element name="TDBNavButtonType.nbFirst">
<short>Represents the First button used to navigate to the beginning of a dataset.</short>
</element>
<element name="TDBNavButtonType.nbPrior">
<short>Represents the Prior button used to navigate to the previous record in a dataset.</short>
</element>
<element name="TDBNavButtonType.nbNext">
<short>Represents the Next button used to navigate to the next record in a dataset.</short>
</element>
<element name="TDBNavButtonType.nbLast">
<short>Represents the Last button used to navigate to the last record in a dataset.</short>
</element>
<element name="TDBNavButtonType.nbInsert">
<short>Represents the Insert button used to create a new record in a dataset.</short>
</element>
<element name="TDBNavButtonType.nbDelete">
<short>Represents the Delete button used to delete the current record in a dataset.</short>
</element>
<element name="TDBNavButtonType.nbEdit">
<short>Represents the Edit button used to enable edit mode for the current record in a dataset.
</short>
</element>
<element name="TDBNavButtonType.nbPost">
<short>Represents the Post button used to apply pending changes to a record in a dataset.</short>
</element>
<element name="TDBNavButtonType.nbCancel">
<short>Represents the Cancel button used to cancel pending updates to a dataset.</short>
</element>
<element name="TDBNavButtonType.nbRefresh">
<short>Represents the Refresh button used to refresh the records in a dataset.</short>
</element>
<element name="TDBNavButtonSet">
<short>Stores TDBNavButtonType enumeration values.</short>
<descr>
<p>
<var>TDBNavButtonSet</var> is a set type used to store zero or more values from the
<var>TDBNavButtonType</var> enumeration. TDBNavButtonSet is the type used to implement the
<var>VisibleButtons</var> property in
<var>TDBCustomNavigator</var>.
</p>
</descr>
<seealso>
<link id="TDBNavButtonType"/>
<link id="TDBCustomNavigator.VisibleButtons"/>
</seealso>
</element>
<element name="TDBNavButtonStyle">
<short>Controls the appearance and behavior of a navigator button.</short>
<descr>
<p>
<var>TDBNavButtonStyle</var> is an set type used to store information which controls the appearance and behavior for a button on a navigation control. TDBNavButtonStyle is the type used to implement the
<var>NavStyle</var> property in
<var>TDBNavButton</var>.
</p>
<remark>
These style options are not used in the current implementation of the LCL.
</remark>
</descr>
<seealso>
<link id="TDBNavButton.NavStyle"/>
</seealso>
</element>
<element name="TDBNavButtonStyle.nsAllowTimer">
<short>Enables use of a timer for the operation performed by a navigator button.</short>
</element>
<element name="TDBNavButtonStyle.nsFocusRect">
<short>Allows the button to be drawn with a focus rectangle.</short>
</element>
<element name="TDBNavButtonDirection">
<short>Represents the orientation for buttons on a TDBNavigator control.</short>
<descr>
<p>
<var>TDBNavButtonDirection</var> is an enumerated type with values that control the orientation for buttons on a database navigation control. TDBNavButtonDirection is the type used to implement the
<var>Direction</var> property in
<var>TDBCustomNavigator</var>.
</p>
</descr>
<seealso>
<link id="TDBCustomNavigator.Direction"/>
</seealso>
</element>
<element name="TDBNavButtonDirection.nbdHorizontal">
<short>Buttons are displayed horizontally (in a row).</short>
</element>
<element name="TDBNavButtonDirection.nbdVertical">
<short>Buttons are displayed vertically (in a column).</short>
</element>
<element name="TDBNavigatorOption">
<short>Represents options available on a TDBNavigator control.</short>
<descr/>
<seealso/>
</element>
<element name="TDBNavigatorOption.navFocusableButtons">
<short>Navigator has focusable buttons.</short>
</element>
<element name="TDBNavigatorOptions">
<short>Set type used to store values from TDBNavigatorOption.</short>
<descr/>
<seealso/>
</element>
<element name="TNavigateBtn">
<short>Alias to the TDBNavButtonType type.</short>
<descr>
<p>
<var>TNavigateBtn</var> is an alias for the
<var>TDBNavButtonType</var> type. TNavigateBtn is provided to maintain Delphi compatibility.
</p>
</descr>
<seealso>
<link id="TDBNavButtonType"/>
</seealso>
</element>
<element name="TDBNavClickEvent">
<short>Specifies an event handler used to handle click events in a database navigation control.</short>
<descr>
<p>
<var>TDBNavClickEvent</var> is an object procedure type which specifies an event handler signalled for click events in a database navigation control. TDBNavClickEvent is the type used to implement the
<var>OnClick</var> and
<var>BeforeAction</var> events in
<var>TDBCustomNavigator</var>.
</p>
<p>Applications must implement and assign an object procedure using the signature for the handler to respond to the event notification.
</p>
</descr>
<seealso>
<link id="TDBCustomNavigator.OnClick"/>
<link id="TDBCustomNavigator.BeforeAction"/>
</seealso>
</element>
<element name="TDBNavClickEvent.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBNavClickEvent.Button">
<short>Navigator button for the click event.</short>
</element>
<element name="DefaultDBNavigatorButtons">
<short>Set with the default buttons displayed on a TDBNavigator control.</short>
<descr>
<p>
<var>DefaultDBNavigatorButtons</var> is an array constant which contains the default buttons available in a database navigation control. DefaultDBNavigatorButtons contain values from the
<var>TDBNavButtonType</var> enumeration in the order they are displayed on a
<var>TDBCustomNavigator</var> control.
</p>
<p>DefaultDBNavigatorButtons is used as the default value for the <var>VisibleButtons</var> property in TDBCustomNavigator.
</p>
</descr>
<seealso>
<link id="TDBCustomNavigator.VisibleButtons"/>
</seealso>
</element>
<element name="DBNavButtonResourceName">
<short>Default resource names for the buttons displayed in TDBCustomNavigator.</short>
<descr>
<p>
<var>DBNavButtonResourceName</var> is an array constant which contains the resource names used for the buttons displayed in a database navigator control. Elements in the array contain a
<var>String</var> with the name assigned to
<var>TDBNavButton</var> instances created in a
<var>TDBCustomNavigator</var> control. The element also represents the default glyph displayed on the button when the
<var>Images</var> property has not been populated for the navigator control.
</p>
<p>Each of the String elements in the array can be accessed using a <var>TDBNavButtonType</var> index value.
</p>
</descr>
<seealso>
<link id="TDBCustomNavigator.Buttons"/>
<link id="TDBCustomNavigator.Images"/>
<link id="TDBNavButton"/>
<link id="TDBNavButton.Index"/>
<link id="TDBNavButtonType"/>
<link id="#rtl.classes.TComponent.Name">TComponent.Name</link>
</seealso>
</element>
<element name="TDBCustomNavigator">
<short>
<var>TDBCustomNavigator</var> - the base class for
<var>TDBNavigator</var>, a tool for navigating through the records of a dataset.
</short>
<descr>
<p>
<var>TDBCustomNavigator</var> is the parent class for
<var>TDBNavigator</var>, an advanced tool for navigating through datasets generated by a query sent to the database. Most of the important properties are defined here in this base class.
</p>
<p>
It consists of a series of tool buttons used to perform navigation and maintenance for records in the linked dataset. For example:
</p>
<dl>
<dt>Navigation</dt>
<dd>
<b>First</b>,
<b>Prior</b>,
<b>Next</b> or
<b>Last</b>
</dd>
<dt>Maintenance</dt>
<dd>
<b>Insert</b>,
<b>Delete</b>,
<b>Edit</b>,
<b>Post</b>,
<b>Cancel</b> or
<b>Refresh</b>
</dd>
</dl>
<p>Use the <var>VisibleButtons</var> property to specify which of the Buttons can be displayed in the control.
</p>
<p>If used in conjunction with a data-aware controls, it controls which record is displayed, the position of the record selection cursor, and the initiation of changes to the dataset and ultimately the database.
</p>
<p>Most of the functionality of the toolbar is already built-in to the control, but if the programmer needs to specify actions to be associated with individual buttons, there is a procedure <var>BtnClick</var> to which an argument can be sent with the index value of the button clicked, and the procedure chooses which action to call dependent on the button index.
</p>
<p>The <var>DataSource</var> property must be assigned to link to the dataset for the control.
</p>
</descr>
<seealso>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
<link id="TDBNavigator"/>
</seealso>
</element>
<element name="TDBCustomNavigator.FBeforeAction"/>
<element name="TDBCustomNavigator.FDataLink"/>
<element name="TDBCustomNavigator.FDirection"/>
<element name="TDBCustomNavigator.FOnNavClick"/>
<element name="TDBCustomNavigator.FVisibleButtons"/>
<element name="TDBCustomNavigator.FDefaultHints"/>
<element name="TDBCustomNavigator.FHints"/>
<element name="TDBCustomNavigator.FUpdateButtonsLock"/>
<element name="TDBCustomNavigator.FOriginalHints"/>
<element name="TDBCustomNavigator.FOptions"/>
<element name="TDBCustomNavigator.FFlat"/>
<element name="TDBCustomNavigator.FConfirmDelete"/>
<element name="TDBCustomNavigator.FUpdateButtonsNeeded"/>
<element name="TDBCustomNavigator.FShowButtonHints"/>
<element name="TDBCustomNavigator.FImages"/>
<element name="TDBCustomNavigator.FImageChangeLink"/>
<element name="TDBCustomNavigator.DefaultHintsChanged">
<short>Performs actions needed when the values in the default hints have changed.</short>
<descr>Used as the OnChange event handler for the TStringList used in UpdateHints.
</descr>
</element>
<element name="TDBCustomNavigator.DefaultHintsChanged.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBCustomNavigator.GetDataSource">
<short>Gets the value for the DataSource property.</short>
</element>
<element name="TDBCustomNavigator.GetDataSource.Result">
<short>Value for the property.</short>
</element>
<element name="TDBCustomNavigator.GetHints">
<short>Gets the value for the Hints property.</short>
</element>
<element name="TDBCustomNavigator.GetHints.Result">
<short>Value for the property.</short>
</element>
<element name="TDBCustomNavigator.SetDataSource">
<short>Sets the value for the DataSource property.</short>
</element>
<element name="TDBCustomNavigator.SetDataSource.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCustomNavigator.SetDirection">
<short>Sets the value for the Direction property.</short>
</element>
<element name="TDBCustomNavigator.SetDirection.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCustomNavigator.SetFlat">
<short>Sets the value for the Flat property.</short>
</element>
<element name="TDBCustomNavigator.SetFlat.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCustomNavigator.SetHints">
<short>Sets the value for the Hints property.</short>
</element>
<element name="TDBCustomNavigator.SetHints.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCustomNavigator.SetImages">
<short>Sets the value for the Images property.</short>
</element>
<element name="TDBCustomNavigator.SetImages.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCustomNavigator.SetOptions">
<short>Sets the value for the Options property.</short>
</element>
<element name="TDBCustomNavigator.SetOptions.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCustomNavigator.SetShowButtonHints">
<short>Sets the value for the ShowButtonHints property.</short>
</element>
<element name="TDBCustomNavigator.SetShowButtonHints.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCustomNavigator.SetVisibleButtons">
<short>Sets the value for the VisibleButtons property.</short>
</element>
<element name="TDBCustomNavigator.SetVisibleButtons.AValue">
<short>New value for the property.</short>
</element>
<element name="TDBCustomNavigator.CMGetDataLink">
<short>Handles the CM_GETDATALINK message for the control.</short>
</element>
<element name="TDBCustomNavigator.CMGetDataLink.Message">
<short>Message handled in the method.</short>
</element>
<element name="TDBCustomNavigator.ImageListChange">
<short>Implements the OnChange event handler for the TChangeLink instance in the class.</short>
</element>
<element name="TDBCustomNavigator.ImageListChange.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBCustomNavigator.Buttons">
<short>The list of Buttons included in the navigator tool.</short>
<descr>
<p>
<var>Buttons</var> is a member which contains an array of
<var>TDBNavButton</var> instances available in the control. Values in Buttons are accessed using an
<var>TDBNavButtonType</var> index value. TDBNavButton elements in the array are created and destroyed to reflect the current state of the linked dataset in the DataSource property. The elements in the array are updated in the
<var>DataChanged</var>,
<var>EditingChanged</var>, and
<var>ActiveChange</var> methods to use the
<var>Enabled</var> and
<var>Visible</var> settings needed for the dataset state.
</p>
<p>Use <var>FocusableButtons</var> to access the Buttons which can be focused in the control.
</p>
<p>Use <var>VisibleButtons</var> to specify the Buttons which can be displayed on the control.
</p>
</descr>
<seealso/>
</element>
<element name="TDBCustomNavigator.FocusableButtons">
<short>Contains the focusable button for the DB navigator control.</short>
<descr>
<p>
<var>FocusableButtons</var> is a member with an array of <var>TDBNavFocusableButton</var> instances for the control. The buttons are freed and created in the <var>UpdateButtons</var> method as needed, and contains a button for each of the values in the <var>VisibleButtons</var> property. Buttons in the array are accessed using the enumeration values in <var>TDBNavButtonType</var>.
</p>
</descr>
<seealso>
<link id="TDBCustomNavigator.UpdateButtons"/>
<link id="TDBCustomNavigator.VisibleButtons"/>
<link id="TDBCustomNavigator.ActiveChanged"/>
<link id="TDBNavButtonType"/>
</seealso>
</element>
<element name="TDBCustomNavigator.DataChanged">
<short>
<var>DataChanged</var> - update status of all the buttons to reflect new data.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.EditingChanged">
<short>
<var>EditingChanged</var> - the status of the buttons is set to
<var>CanModify</var>.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.ActiveChanged">
<short>
<var>ActiveChanged</var> - if datalink is active, calls
<var>DataChanged</var> and
<var>EditingChanged</var>.
</short>
<descr/>
<seealso>
<link id="#lcl.DBCtrls.TDBCustomNavigator.DataChanged">DataChanged</link>
<link id="#lcl.DBCtrls.TDBCustomNavigator.EditingChanged">EditingChanged</link>
</seealso>
</element>
<element name="TDBCustomNavigator.Loaded" link="#lcl.extctrls.TCustomPanel.Loaded"/>
<element name="TDBCustomNavigator.Notification"
link="#lcl.controls.TControl.Notification"/>
<element name="TDBCustomNavigator.Notification.AComponent"/>
<element name="TDBCustomNavigator.Notification.Operation"/>
<element name="TDBCustomNavigator.UpdateButtons">
<short>
<var>UpdateButtons</var> - if the position of the buttons need to be changed, does this, then updates the status of the buttons (see
<var>ActiveChanged</var>).
</short>
<descr/>
<seealso>
<link id="#LCL.DBCtrls.TDBCustomNavigator.ActiveChanged">ActiveChanged</link>
</seealso>
</element>
<element name="TDBCustomNavigator.UpdateHints">
<short>
<var>UpdateHints</var> - reloads the default hints and modifies any that have been changed.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.HintsChanged">
<short>
<var>HintsChanged</var> - calls
<var>UpdateHints</var>.
</short>
<descr/>
<seealso>
<link id="#lcl.DBCtrls.TDBCustomNavigator.UpdateHints">UpdateHints</link>
</seealso>
</element>
<element name="TDBCustomNavigator.HintsChanged.Sender">
<short>Object for the event notification.</short>
</element>
<element name="TDBCustomNavigator.ButtonClickHandler">
<short>
<var>ButtonClickHandler</var> - performs
<var>BtnClick</var> for the appropriate button.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.ButtonClickHandler.Sender">
<short>Object for the event notification.</short>
</element>
<element link="#lcl.controls.TControl.GetControlClassDefaultSize" name="TDBCustomNavigator.GetControlClassDefaultSize"/>
<element name="TDBCustomNavigator.GetControlClassDefaultSize.Result">
<short>Default size for new instances of the class.</short>
</element>
<element name="TDBCustomNavigator.BeginUpdateButtons">
<short>
<var>BeginUpdateButtons</var> - locks the buttons before updating them.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.EndUpdateButtons">
<short>
<var>EndUpdateButtons</var> - unlocks each button in turn and updates it if needed.
</short>
<descr/>
<errors/>
<seealso/>
</element>
<element name="TDBCustomNavigator.SetEnabled">
<short>Sets the value for the Enabled property.</short>
<descr/>
<seealso>
<link id="#lcl.controls.TControl.Enabled">TControl.Enabled</link>
</seealso>
</element>
<element name="TDBCustomNavigator.SetEnabled.Value">
<short>New value for the Enabled property.</short>
</element>
<element name="TDBCustomNavigator.Create">
<short>
<var>Create</var> - constructor for
<var>TDBCustomNavigator</var>: locks the buttons, calls inherited
<var>Create</var>, sets default size, style, forms datalinks, initializes hints, updates the buttons.
</short>
<descr/>
<seealso>
<link id="#LCL.ExtCtrls.TCustomPanel.Create">TCustomPanel.Create</link>
</seealso>
</element>
<element name="TDBCustomNavigator.Create.TheOwner">
<short>Owner of the class instance.</short>
</element>
<element name="TDBCustomNavigator.Destroy">
<short>
<var>Destroy</var> - destructor for
<var>TDBCustomNavigator</var>: frees datalinks and hints, then calls inherited
<var>Destroy</var>.
</short>
<descr/>
<seealso>
<link id="#lcl.controls.TCustomControl.Destroy">TCustomControl.Destroy</link>
</seealso>
</element>
<element name="TDBCustomNavigator.BtnClick">
<short>
<var>BtnClick</var> - procedure to respond to button clicks, and select an action from a list according to the value of the
<var>Index</var> of the clicked button.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.BtnClick.Index">
<short>Ordinal position for the button clicked on the navigator control.</short>
</element>
<element name="TDBCustomNavigator.VisibleButtonCount">
<short>Number of visible buttons on the control.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.VisibleButtonCount.Result">
<short>Number of visible buttons on the control.</short>
</element>
<element name="TDBCustomNavigator.BeforeAction">
<short>
<var>BeforeAction</var> - code to be executed before an action is performed.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.ConfirmDelete">
<short>Indicates if the user is asked to confirm a record deletion.
</short>
<descr>
<p>When set to <b>True</b>, a dialog is displayed to ask for confirmation of the Delete request.
</p>
</descr>
<seealso/>
</element>
<element name="TDBCustomNavigator.DataSource">
<short>The Data Source to which the control must be linked in order to function.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.Direction">
<short>Contains the orientation for buttons displayed on the control: horizontal or vertical.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.Flat">
<short>
<var>Flat</var> - if
<b>True</b>, buttons have no 3-D effect.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.Hints">
<short>A list of hints to be shown if the mouse hovers over a button.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.Options">
<short>Options enabled for the navigator.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.OnClick">
<short>The action to be taken when a navigator button is clicked.</short>
<descr/>
<seealso>
<link id="#lcl.controls.TControl.OnClick">TControl.OnClick</link>
</seealso>
</element>
<element name="TDBCustomNavigator.VisibleButtons">
<short>The set of visible buttons (some of them can be suppressed if their function appears redundant).
</short>
<descr>
<p>The VisibleButtons entry in the Object Inspector can be used to set whether or not a particular button is to be visible.
</p>
</descr>
<seealso/>
</element>
<element name="TDBCustomNavigator.ShowButtonHints">
<short>Controls whether button hints are displayed for the control.</short>
<descr/>
<seealso/>
</element>
<element name="TDBCustomNavigator.Images">
<short>Contains the images available for display on the navigator buttons.</short>
<descr>
<p>
<var>Images</var> is a
<var>TCustomImageList</var> property which contains the images available for use as glyphs on the navigator buttons. Bitmaps stored in Images should be in the order defined in the
<var>TDBNavButtonType</var> enumeration. The enumeration values are used as the image index. When Images has not been assigned, the default glyphs in LCL are used for the purpose.
</p>
<p>Setting a new value for Images causes the <var>TChangeLink</var> instance in the class to be notified; existing Images are unregistered, and new Images (if any) are registered. <var>UpdateButtons</var> is called to apply image indexes and event handlers to the <var>Buttons</var> in the control.
</p>
</descr>
<seealso>
<link id="TDBCustomNavigator.Buttons"/>
<link id="TDBCustomNavigator.UpdateButtons"/>
<link id="TDBCustomNavigator.VisibleButtons"/>
<link id="TDBCustomNavigator.FocusableButtons"/>
<link id="TDBNavButtonType"/>
<link id="#lcl.imglist.TCustomImageList">TCustomImageList</link>
<link id="#lcl.imglist.TChangeLink">TChangeLink</link>
<link id="#lcl.imglist.LCLGlyphs">LCLGlyphs</link>
</seealso>
</element>
<element name="TDBNavButton">
<short>
<var>TDBNavButton</var> implements a <var>SpeedButton</var> displayed on a <var>TDBNavigator</var> control.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBNavButton.FIndex"/>
<element name="TDBNavButton.FNavStyle"/>
<element name="TDBNavButton.Destroy" link="#lcl.buttons.TCustomSpeedButton.Destroy"/>
<element name="TDBNavButton.NavStyle">
<short>
Set with the style values for the navigator button.
</short>
<descr>
<p>
NavStyle is a <var>TDBNavButtonStyle</var> property which contains the style values used for the navigator button. It contains zero or more values representing the features enabled for the button. See TDBNavButtonStyle for more information about the values in the set type and their meanings.
</p>
<p>
NavStyle is used in the <var>TDBCustomNavigator.UpdateButtons</var> method to enable the timer used for Previous (nbPrior) and Next (nbNext) buttons.
</p>
</descr>
<seealso>
<link id="TDBCustomNavigator.UpdateButtons"/>
<link id="TDBNavButtonStyle"/>
</seealso>
</element>
<element name="TDBNavButton.Index">
<short>
<var>Index</var> - the value from the enumerated type that specifies which button is being selected.
</short>
<descr>
<p>Button may be one of the following: nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh.
</p>
</descr>
<seealso/>
</element>
<element name="TDBNavFocusableButton">
<short>Implements a button used on a database navigator control.</short>
<descr>
<p>
<var>TDBNavFocusableButton</var> is a <var>TBitBtn</var> descendant which implements a button that can receive focus in a database navigator control. TDBNavFocusableButton is the type maintained in the <var>FocusableButtons</var> member in <var>TDBCustomNavigator</var>.
</p>
</descr>
<seealso>
<link id="TDBCustomNavigator.FocusableButtons"/>
</seealso>
</element>
<element name="TDBNavFocusableButton.FIndex"/>
<element name="TDBNavFocusableButton.FNavStyle"/>
<element name="TDBNavFocusableButton.NavStyle">
<short>Contains styles and options that are enabled for the DB navigator button.</short>
<descr>
<p>
<var>NavStyle</var> is a <var>TDBNavButtonStyle</var> property with the set of style or options enabled for the focusable DB navigator button. Its values may be updated in the <var>TDBCustomNavigator.UpdateButtons</var> method.
</p>
</descr>
<seealso>
<link id="TDBNavButtonStyle"/>
<link id="TDBCustomNavigator.UpdateButtons"/>
</seealso>
</element>
<element name="TDBNavFocusableButton.Index">
<short>Indicates the navigation button type for the button.</short>
<descr>
<p>
<var>Index</var> is an <var>TDBNavButtonType</var> value which indicates both the navigation button type for the button, and its ordinal position in the Buttons displayed for a <var>TDBCustomNavigator</var> / <var>TDBNavigator</var> control. The value for the property is assigned when the button is created in the <var>UpdateButtons</var> for the <var>TDBCustomNavigator</var> control.
</p>
</descr>
<seealso>
<link id="TDBNavButtonType"/>
<link id="TDBCustomNavigator.UpdateButtons"/>
</seealso>
</element>
<element name="TDBNavDataLink">
<short>
<var>TDBNavDataLink</var> - provides a link between a Database Navigator and a DataSet.
</short>
<descr>
<p>
<var>TDBNavDataLink</var> is a <var>TDataLink</var> descendant used to maintain an association between a database navigator control, and a datasource with a dataset. It provides additional methods called when values assigned to the data link have been changed. An internal member is maintained with the <var>TDBCustomNavigator</var> control for the association.
</p>
</descr>
<seealso>
<link id="TDBCustomNavigator"/>
<link id="#fcl.db.TDataLink">TDataLink</link>
</seealso>
</element>
<element name="TDBNavDataLink.FNavigator"/>
<element name="TDBNavDataLink.EditingChanged">
<short>
<var>EditingChanged</var> - method to process a change in the
<var>Editing</var> property of the navigator.
</short>
<descr/>
<seealso/>
</element>
<element name="TDBNavDataLink.DataSetChanged">
<short>
<var>DataSetChanged</var> - method to process a change in the data set attached to the navigator.
</short>
<descr>
<p>
<var>DataSetChanged</var> is an overridden procedure in
<var>TDBNavDataLink</var> which ensures that the
<var>DataChanged</var> method in the internal
<var>TDBCustomNavigator</var> control is called when the value in
<var>DataSet</var> has been changed.
</p>
<remark>
ActiveChanged does not call the inherited method.
</remark>
</descr>
<seealso/>
</element>
<element name="TDBNavDataLink.ActiveChanged">
<short>
<var>ActiveChanged</var> - method to process a change in the
<var>Active</var> property of the navigator.
</short>
<descr>
<p>
<var>ActiveChanged</var> is an overridden procedure in
<var>TDBNavDataLink</var> used to ensure that the Navigator control is updated when the value for the
<var>Active</var> property has been changed.
</p>
<remark>
ActiveChanged does not call the inherited method.
</remark>
</descr>
<seealso>
<link id="TDBCustomNavigator.ActiveChanged"/>
<link id="#fcl.db.TDataLink.Active">TDataLink.Active</link>
</seealso>
</element>
<element name="TDBNavDataLink.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the constructor for the class instance, and calls the inherited constructor. Create assigns the value in <var>TheNavigator</var> to an internal member used in the class instance. It also sets the value in the <var>VisualControl</var> property to <b>True</b>.
</p>
</descr>
<seealso>
<link id="TDBCustomNavigator"/>
<link id="#fcl.db.TDataLink">TDataLink</link>
</seealso>
</element>
<element name="TDBNavDataLink.Create.TheNavigator">
<short>TDBCustomNavigator control for the data link.</short>
</element>
<element name="TDBNavigator">
<short>
<var>TDBNavigator</var> - a data-aware Button-Bar to facilitate navigating between records of a dataset.
</short>
<descr>
<p>
<var>TDBNavigator</var> is a tool used to navigate local datasets in a response to a query sent to the database. It consists of a series of tool buttons used to perform navigation and maintenance for records in the linked dataset.
</p>
<p>
For example:
</p>
<dl>
<dt>Navigation</dt>
<dd>
<b>First</b>,
<b>Prior</b>,
<b>Next</b> or
<b>Last</b>
</dd>
<dt>Maintenance</dt>
<dd>
<b>Insert</b>,
<b>Delete</b>,
<b>Edit</b>,
<b>Post</b>,
<b>Cancel</b> or
<b>Refresh</b>
</dd>
</dl>
<p>Use the <var>VisibleButtons</var> property to specify which of the Buttons can be displayed in the control.
</p>
<p>If used in conjunction with a data-aware controls, it controls which record is displayed, the position of the record selection cursor, and the initiation of changes to the dataset and ultimately the database.
</p>
<p>Most of the functionality of the toolbar is already built-in to the control, but if the programmer needs to specify actions to be associated with individual buttons, there is a procedure <var>BtnClick</var> to which an argument can be sent with the index value of the button clicked, and the procedure chooses which action to call dependent on the button index.
</p>
<p>The <var>DataSource</var> property must be assigned to link to the dataset for the control.
</p>
</descr>
<seealso>
<link id="HowToUseDataAwareControls">How To Use Data-aware Controls</link>
<link id="TDBCustomNavigator"/>
</seealso>
</element>
<element link="#lcl.extctrls.TCustomPanel.Align" name="TDBNavigator.Align"/>
<element link="#lcl.extctrls.TCustomPanel.Alignment" name="TDBNavigator.Alignment"/>
<element link="#lcl.controls.TControl.Anchors" name="TDBNavigator.Anchors"/>
<element link="#lcl.controls.TControl.AutoSize" name="TDBNavigator.AutoSize"/>
<element link="#lcl.controls.TControl.BiDIMode" name="TDBNavigator.BiDiMode"/>
<element link="#lcl.dbctrls.TDBCustomNavigator.BeforeAction" name="TDBNavigator.BeforeAction"/>
<element link="#lcl.extctrls.TCustomPanel.BevelInner" name="TDBNavigator.BevelInner"/>
<element link="#lcl.extctrls.TCustomPanel.BevelOuter" name="TDBNavigator.BevelOuter"/>
<element link="#lcl.extctrls.TCustomPanel.BevelWidth" name="TDBNavigator.BevelWidth"/>
<element link="#lcl.controls.TControl.BorderSpacing" name="TDBNavigator.BorderSpacing"/>
<element link="#lcl.controls.TWinControl.BorderStyle" name="TDBNavigator.BorderStyle"/>
<element link="#lcl.controls.TWinControl.BorderWidth" name="TDBNavigator.BorderWidth"/>
<element link="#lcl.controls.TControl.Caption" name="TDBNavigator.Caption"/>
<element link="#lcl.controls.TWinControl.ChildSizing" name="TDBNavigator.ChildSizing"/>
<element link="#lcl.controls.TControl.ClientHeight" name="TDBNavigator.ClientHeight"/>
<element link="#lcl.controls.TControl.ClientWidth" name="TDBNavigator.ClientWidth"/>
<element name="TDBNavigator.Color">
<short>Contains the background color for the control.</short>
<descr>
<p>
Color is a TColor property with the background color for the control.
The default value for the property is clBackground in TDBNavigator.
</p>
<p>
If the color is clDefault, the value will need to be resolved using the GetDefaultColor method. Convenience routines which obtain the color by resolving clDefault and ParentColor are also provided in TControl.GetColorResolvingParent and TControl.GetRGBColorResolvingParent.
</p>
</descr>
<seealso>
<link id="#lcl.extctrls.TCustomPanel.Color">TCustomPanel.Color</link>
<link id="#lcl.controls.TControl.ParentColor">TControl.ParentColor</link>
<link id="#lcl.controls.TControl.GetDefaultColor">TControl.GetDefaultColor</link>
<link id="#lcl.controls.TControl.GetColorResolvingParent">TControl.GetColorResolvingParent</link>
<link id="#lcl.controls.TControl.GetRGBColorResolvingParent">TControl.GetRGBColorResolvingParent</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Constraints" name="TDBNavigator.Constraints"/>
<element link="#lcl.dbctrls.TDBCustomNavigator.ConfirmDelete" name="TDBNavigator.ConfirmDelete"/>
<element link="#lcl.dbctrls.TDBCustomNavigator.DataSource" name="TDBNavigator.DataSource"/>
<element link="#lcl.dbctrls.TDBCustomNavigator.Direction" name="TDBNavigator.Direction"/>
<element link="#lcl.controls.TWinControl.DoubleBuffered" name="TDBNavigator.DoubleBuffered"/>
<element link="#lcl.controls.TControl.DragCursor" name="TDBNavigator.DragCursor"/>
<element link="#lcl.controls.TControl.DragMode" name="TDBNavigator.DragMode"/>
<element link="#lcl.controls.TControl.Enabled" name="TDBNavigator.Enabled"/>
<element link="#lcl.dbctrls.TDBCustomNavigator.Flat" name="TDBNavigator.Flat"/>
<element link="#lcl.controls.TControl.Font" name="TDBNavigator.Font"/>
<element link="#lcl.dbctrls.TDBCustomNavigator.Hints" name="TDBNavigator.Hints"/>
<element link="#lcl.dbctrls.TDBCustomNavigator.OnClick" name="TDBNavigator.OnClick"/>
<element name="TDBNavigator.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element link="#lcl.controls.TControl.OnDblClick" name="TDBNavigator.OnDblClick"/>
<element link="#lcl.controls.TControl.OnDragDrop" name="TDBNavigator.OnDragDrop"/>
<element link="#lcl.controls.TControl.OnDragOver" name="TDBNavigator.OnDragOver"/>
<element link="#lcl.controls.TControl.OnEndDrag" name="TDBNavigator.OnEndDrag"/>
<element link="#lcl.controls.TWinControl.OnEnter" name="TDBNavigator.OnEnter"/>
<element link="#lcl.controls.TWinControl.OnExit" name="TDBNavigator.OnExit"/>
<element link="#lcl.controls.TControl.OnMouseDown" name="TDBNavigator.OnMouseDown"/>
<element link="#lcl.controls.TControl.OnMouseEnter" name="TDBNavigator.OnMouseEnter"/>
<element link="#lcl.controls.TControl.OnMouseLeave" name="TDBNavigator.OnMouseLeave"/>
<element link="#lcl.controls.TControl.OnMouseMove" name="TDBNavigator.OnMouseMove"/>
<element link="#lcl.controls.TControl.OnMouseUp" name="TDBNavigator.OnMouseUp"/>
<element link="#lcl.controls.TControl.OnMouseWheel" name="TDBNavigator.OnMouseWheel"/>
<element link="#lcl.controls.TControl.OnMouseWheelDown" name="TDBNavigator.OnMouseWheelDown"/>
<element link="#lcl.controls.TControl.OnMouseWheelUp" name="TDBNavigator.OnMouseWheelUp"/>
<element link="#lcl.controls.TControl.OnResize" name="TDBNavigator.OnResize"/>
<element link="#lcl.controls.TControl.OnStartDrag" name="TDBNavigator.OnStartDrag"/>
<element link="#lcl.dbctrls.TDBCustomNavigator.Options" name="TDBNavigator.Options"/>
<element link="#lcl.controls.TControl.ParentBiDiMode" name="TDBNavigator.ParentBiDiMode"/>
<element link="#lcl.controls.TControl.ParentColor" name="TDBNavigator.ParentColor"/>
<element link="#lcl.controls.TWinControl.ParentDoubleBuffered" name="TDBNavigator.ParentDoubleBuffered"/>
<element link="#lcl.controls.TControl.ParentFont" name="TDBNavigator.ParentFont"/>
<element link="#lcl.controls.TControl.ParentShowHint" name="TDBNavigator.ParentShowHint"/>
<element link="#lcl.controls.TControl.PopupMenu" name="TDBNavigator.PopupMenu"/>
<element link="#lcl.controls.TControl.ShowHint" name="TDBNavigator.ShowHint"/>
<element link="#lcl.controls.TWinControl.TabOrder" name="TDBNavigator.TabOrder"/>
<element name="TDBNavigator.TabStop">
<short>Enables or disables navigation using the Tab key.</short>
<descr>
<p>
The default value for the property is False in TDBNavigator.
</p>
</descr>
<seealso>
<link id="#lcl.extctrls.TCustomPanel.TabStop">TCustomPanel.TabStop</link>
</seealso>
</element>
<element link="#lcl.controls.TControl.Visible" name="TDBNavigator.Visible"/>
<element link="#lcl.dbctrls.TDBCustomNavigator.VisibleButtons" name="TDBNavigator.VisibleButtons"/>
<element link="#lcl.dbctrls.TDBCustomNavigator.Images" name="TDBNavigator.Images"/>
<element name="ChangeDataSource">
<short>Performs actions needed when the datasource in a control with the specified data link is changed.
</short>
<descr>
<p>
<var>ChangeDataSource</var> ensures that free notification messages are performed for the datasource in
<var>Link</var> and the control in
<var>AControl</var>. The value in
<var>NewDataSource</var> is assigned to the DataSource property in Link.
</p>
</descr>
<seealso>
<link id="TDataLink.DataSource"/>
</seealso>
</element>
<element name="ChangeDataSource.AControl">
<short>Control notified in the routine.</short>
</element>
<element name="ChangeDataSource.Link">
<short>Data link updated in the method.</short>
</element>
<element name="ChangeDataSource.NewDataSource">
<short>Datasource assigned to the data link in the method.</short>
</element>
<element name="Register">
<short>Registers components in the unit for use in the Lazarus IDE.</short>
<descr>
<p>
<var>Register</var> is a procedure used to register components in the
<file>dbctrls.pp</file> unit for use in the Lazarus IDE. Register adds the following components to the 'Data Controls' tab:
</p>
<ul>
<li>TDBNavigator</li>
<li>TDBText</li>
<li>TDBEdit</li>
<li>TDBMemo</li>
<li>TDBImage</li>
<li>TDBListBox</li>
<li>TDBLookupListBox</li>
<li>TDBComboBox</li>
<li>TDBLookupComboBox</li>
<li>TDBCheckBox</li>
<li>TDBRadioGroup</li>
<li>TDBCalendar</li>
<li>TDBGroupBox</li>
</ul>
<p>Register calls the <var>RegisterField</var> routine for each of the database field types in DefaultFieldClasses, as well as the TIntegerField type.
</p>
</descr>
<seealso>
<link id="#fcl.db.DefaultFieldClasses">DefaultFieldClasses</link>
</seealso>
</element>
<topic name="HowToUseDataAwareControls">
<short>
<var>HowToUseDataAwareControls</var> - Hints for accessing databases.
</short>
<descr>
<p>
<var>HowToUseDataAwareControls</var> - Hints for accessing databases. A set of Data-Aware components is provided, to make it easier to access information held in databases.
</p>
<p>Before using Data-Aware components, it is necessary to make a connection with a database, and this should be done either using a TSQLConnection or a TDbf component, depending on the type of database that is being used. In any case, the components for connection with the database need to be found in $Lazdir/components/sqldb/, $Lazdir/components/tdbf/ or whatever other source is appropriate. They need to be added using the <var>Components</var> Menu Item of the IDE, and compiled ready for adding. The IDE needs to be re-built to include the new components.
</p>
<p>To make the connection with the database: first place a <var>DataBase</var> Connection on the Form (invisible at run-time, so put it anywhere convenient); set its properties to connect the user (with name and password) to the appropriate server, database and table (the connection component should deal with all the user-authentication issues, opening and closing the database etc). Then put on a <var>TDataSource</var> from the Data Access tab of the Component Palette, and perhaps items such as <var>TSQLTransaction</var> and <var>TSQLQuery</var>, depending on the particular database you are using. The various database components need to be linked to each other, for example by setting the <var>Transaction</var> property of a database connector to the appropriate transaction component, and linking the <var>DataBase</var> property of the Transaction component back to the database connector; link the DataSource's <var>DataSet</var> property to the appropriate SQLQuery or other set of data, and its Transaction property to the transaction component.
</p>
<p>Each Data-Aware control (on the Data Controls tab of the Component Palette) has the usual set of properties to determine its shape and size, position, color and font etc. But there are also special properties to define the data to be displayed or modified. These include the <var>DataSource</var> property which must be set to link to the defined set of data, and often a <var>Field</var> component to determine which of the columns in the database is to be displayed.
</p>
<p>Most of the components operate on a single Row or record of the database, but the <var>TDBGrid</var> is capable of displaying and operating on multiple rows and columns, in a <var>StringGrid</var> format, allowing the user to get an overview of what is in the database. The DBGrid will display the contents of the DataSet even at design time, provided the various components are enabled or rendered active; this allows the designer to ensure that all the connections to the database have been correctly made.
</p>
<p>The <var>TDBNavigator</var> component is used in conjunction with the Data-Aware components. It consists of a series of buttons to allow browsing through the DataSet, displaying the first, previous, next or last record (or Row), inserting or deleting records, committing the changes back to the database or refreshing the DataSet from the database.
</p>
<p>The way database programming works is typically as follows:
</p>
<ul>
<li>a database is opened for access by the user (Database Connection)
</li>
<li>a command is issued (e.g. by <var>TSQLQuery</var>) to select or extract some or all of the records which are then stored locally in the <var>DataSet</var>
</li>
<li>the contents of the <var>DataSet</var> are acted on by the Data-Aware components, displaying one Row or record at a time from selected Columns, or perhaps the whole DataSet in a <var>DBGrid</var>, editing records, inserting or deleting records, or using the data to perform statistical tests or calculations
</li>
<li>at intervals usually prescribed by the user (sometimes after every change, sometimes after a whole series of changes), the contents of the local DataSet are sent back to the database, causing an update of the database's contents. This process is referred to as 'Commit' or 'Post' or sometimes as 'Update'
</li>
</ul>
<p>The programmer can determine which events are associated with a Commit action by supplying suitable event handlers for <var>OnClick</var>, <var>OnChange</var>, <var>OnFinishedEdit</var> etc.
</p>
<p>The following table shows the approximate correspondence between conventional and data-aware control classes:
</p>
<table>
<tr>
<td>Standard Control</td>
<td>Data-Aware Control</td>
<td>Comment</td>
</tr>
<tr>
<td>TCalendar</td>
<td>TDBCalendar</td>
<td>Select a date from pop-up calendar</td>
</tr>
<tr>
<td>TCheckBox</td>
<td>TDBCheckBox</td>
<td>Check a box to show an option has been selected</td>
</tr>
<tr>
<td>TComboBox</td>
<td>TDBComboBox</td>
<td>Select an option from a list and return it (or some custom text) in the main edit box</td>
</tr>
<tr>
<td>TEdit</td>
<td>TDBEdit</td>
<td>Single-line text editing box</td>
</tr>
<tr>
<td>TGroupBox</td>
<td>TDBGroupBox</td>
<td>A container for several related controls</td>
</tr>
<tr>
<td>TImage</td>
<td>TDBImage</td>
<td>A Picture</td>
</tr>
<tr>
<td>TListBox</td>
<td>TDBListBox</td>
<td>A list of string items</td>
</tr>
<tr>
<td>TMemo</td>
<td>TDBMemo</td>
<td>Multiple-line text editing box</td>
</tr>
<tr>
<td>TRadioGroup</td>
<td>TDBRadioGroup</td>
<td>A group of mutually exclusive Radio Buttons; only one at a time may be checked and selected. Note there is no data-aware equivalent of the isolated TRadioButton</td>
</tr>
<tr>
<td>TText</td>
<td>TDBText</td>
<td>A simple text-string, usually read-only</td>
</tr>
<tr>
<td>TStringGrid</td>
<td>TDBGrid</td>
<td>A grid to display information in Rows and Columns</td>
</tr>
</table>
<p>
Standard controls can, of course, be used to display information from a database, but they lack the direct link with the DataSet and its navigation aids. The programmer must write explicit code to extract data from the DataSet and put it in the standard control.
</p>
</descr>
</topic>
</module>
<!-- DbCtrls -->
</package>
</fpdoc-descriptions>