Back to Devexpress

TcxCustomInplaceEditContainer.PropertiesClassName Property

vcl-cxinplacecontainer-dot-tcxcustominplaceeditcontainer-a625ff16.md

latest8.9 KB
Original Source

TcxCustomInplaceEditContainer.PropertiesClassName Property

Specifies the in-place editor type by its class name.

Declaration

delphi
property PropertiesClassName: string read; write;

Property Value

TypeDescription
string

The name of the active in-place editor properties class.

Warning

An assigned name should match the name of any existing terminal TcxCustomEditProperties class descendant; otherwise, runtime errors may occur.

We recommend that you use the PropertiesClass or RepositoryItem property to specify the required in-place editor type in code.

|

Remarks

A data item in a container control can use any editor shipped with the ExpressEditors Library as an in-place editor for cell edit operations. An in-place editor exists (and, therefore, has its own WinAPI handle) only when a data item cell is being edited. Otherwise, the data item displays a static editor image for resource usage optimization.

Warning

The PropertiesClassName property is designed to store the name of the required editor settings class in a DFM file. If a name assigned to the PropertiesClassName property in code does not match an existing terminal TcxCustomEditProperties class descendant, runtime errors may occur.

Since a RAD Studio® compiler cannot verify that a correct class name is assigned to the PropertiesClassName property, we recommend that you use the PropertiesClass property or assign a configured repository item component to the RepositoryItem property to define the required in-place editor for the data item.

To configure the active in-place editor, use the Properties property.

Editor Selection at Design Time

At design time, you can use the Object Inspector to select any available in-place editor. Click a data item’s Properties node and select the required editor from the invoked drop-down list.

Property Setter Behavior

The PropertiesClassName property setter updates Properties and PropertiesClass property values according to the selected in-place editor type.

Code Example: Create an Unbound Column and Configure Its In-Place Editor

The following code example creates a tree list column, assigns an in-place date editor with a drop-down calendar, and customizes its settings:

delphi
uses cxCalendar;
// ...
var
  AColumn: TcxTreeListColumn;
  ADateEditProperties: TcxDateEditProperties;
begin
  AColumn := cxTreeList1.CreateColumn; // Creates a new unbound column
  AColumn.DataBinding.ValueType := 'DateTime'; // Changes the column value type to "DateTime"
  AColumn.PropertiesClassName := 'TcxDateEditProperties'; // Assigns an in-place spin editor
  ADateEditProperties := TcxDateEditProperties(AColumn.Properties);
  ADateEditProperties.ShowToday := False; // Hides the "Today" link
  ADateEditProperties.DateButtons := [btnClear, btnToday]; // Adds the "Today" button
end;
cpp
#include "cxCalendar.hpp"
// ...
  TcxTreeListColumn *AColumn;
  TcxDateEditProperties *ADateEditProperties;
  // ...
  AColumn = cxTreeList1->CreateColumn(); // Creates a new unbound column
  AColumn->DataBinding->ValueType = "DateTime"; // Changes the column value type to "DateTime"
  AColumn->PropertiesClassName = "TcxDateEditProperties"; // Assigns an in-place spin editor
  ADateEditProperties = dynamic_cast<TcxDateEditProperties*>(AColumn->Properties);
  ADateEditProperties->ShowToday = false; // Hides the "Today" link
  ADateEditProperties->DateButtons = TDateButtons() << btnClear << btnToday; // Adds the "Today" button

Important Limitations

  • If an editor has unbound and data-aware versions, you can use only its unbound version as an in-place editor.
  • If the RepositoryItem property is specified, PropertiesClass, Properties, and PropertiesClassName property values are ignored.

Important

Do not change PropertiesClass, PropertiesClassName, and Properties property values in OnGetEditProperties and OnGetEditingProperties event handlers. Otherwise, drawing errors and access violations may occur.

To change the active editor and modify its settings safely within these event handlers, use the RepositoryItem property and TcxEditRepositoryItem class descendants. Refer to OnGetEditProperties and OnGetEditingProperties event descriptions for detailed information and code examples.

Default In-Place Editors

A data item in a container control uses the default in-place editor if Properties, PropertiesClass, PropertiesClassName, and RepositoryItem properties are unspecified. The container control item uses one of the following in-place editors as default depending on DataBinding.ValueType and DataBinding.ValueTypeClass property values:

ValueType[1] ValueValueTypeClass[1] ValueDefault Editor
BooleanTcxBooleanValueTypeTcxCheckBox
CurrencyTcxCurrencyValueTypeTcxCurrencyEdit
DateTimeTcxDateTimeValueTypeTcxDateEdit
FMTBcdTcxFMTBcdValueTypeTcxCurrencyEdit
SQLTimeStampTcxSQLTimeStampValueTypeTcxDateEdit
Any other valueAny other valueTcxTextEdit

Footnotes

  1. DataBinding.ValueType and DataBinding.ValueTypeClass property values define the default in-place editor for the container control item regardless of the active data access mode.

See Also

TcxFilterItem.PropertiesClassName Property

TcxCustomBarEditItem.PropertiesClassName Property

TcxCustomGridTableItem.PropertiesClassName Property

TcxPivotGridField.PropertiesClassName Property

TcxCustomEditorRowProperties.EditPropertiesClassName Property

TcxCustomInplaceEditContainer Class

TcxCustomInplaceEditContainer Members

cxInplaceContainer Unit