TcxCustomEditProperties.ReadOnly Property
Specifies if the editor is in read-only mode.
Declaration
property ReadOnly: Boolean read; write;
Property Value
Type | Description |
---|---|
Boolean |
|
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 toTrue
.- Normal Mode
Restores the initial editor layout and behavior when the
ReadOnly
property value changes back toFalse
.
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 isFalse
. - Data-Aware Editors
- The
ReadOnly
property’s default value matches the CanModify property value of the bound dataset field.