Skip to main content

TcxCustomEditProperties.ReadOnly Property

Specifies if the editor is in read-only mode.

Declaration

property ReadOnly: Boolean read; write;

Property Value

Type Description
Boolean

True if the editor is in read-only mode; otherwise, False.

Remarks

Set the ReadOnly property to True or False to enable or disable read-only mode. To define individual editor appearance settings in this mode, use the editor’s StyleReadOnly property.

Note

You cannot modify a data-aware editor’s value if the editor is bound to a read-only dataset field, even if the ReadOnly property is set to True.

Code Example

The code example in this topic section demonstrates an OnPropertiesChanged event handler for a TcxImageComboBox editor.

This event handler changes editor appearance and behavior in response to ReadOnly property value changes as follows:

Read-Only Mode

Hides the predefined drop-down button and displays the custom Info button at the left editor border when the ReadOnly property value changes to True.

VCL Editors Library: A Custom Image Combo Box Example in Read-Only Mode

Normal Mode

Restores the initial editor layout and behavior when the ReadOnly property value changes back to False.

VCL Editors Library: Normal Image Combo Box Appearance and Behavior

procedure TMyForm.cxImageComboBox1PropertiesChanged(Sender: TObject);
var
  AProperties: TcxImageComboBoxProperties;
  AButton: TcxEditButton;
begin
  AProperties := (Sender as TcxImageComboBoxProperties);
  if AProperties.ReadOnly then  // Configures the read-only editor layout
  begin
    AProperties.BeginUpdate;  // Initiates the following batch change
    try
      AProperties.Buttons.Items[0].Visible := False;  // Hides the predefined drop-down button
      if AProperties.Buttons.Count = 1 then
      begin
        AButton := AProperties.Buttons.Add;
        AButton.Kind := bkText;
        AButton.Caption := 'Info';
        AButton.LeftAlignment := True;
      end;
      AProperties.Buttons.Items[1].Visible := True;  // Displays the "Info" button
      AProperties.Buttons.Items[1].Default := True;
    finally
      AProperties.EndUpdate;  // Calls EndUpdate regardless of the batch operation's success
    end;
  end
  else if not AProperties.ReadOnly then  // Restores the initial editor layout
  begin
    AProperties.BeginUpdate;  // Initiates the following batch change
    try
      AProperties.Buttons.Items[0].Visible := True;  // Displays the predefined button
      AProperties.Buttons.Items[0].Default := True;
      if AProperties.Buttons.Count = 2 then
        AProperties.Buttons.Items[1].Visible := False; // Hides the "Info" button
    finally
      AProperties.EndUpdate;  // Calls EndUpdate regardless of the batch operation's success
    end;
  end;
end;

Default Value

Unbound Editors
The ReadOnly property’s default value is False.
Data-Aware Editors
The ReadOnly property’s default value matches the CanModify property value of the bound dataset field.
See Also