Skip to main content

TcxEditButtonClickEvent Type

The procedural type for editor button click events.

Declaration

TcxEditButtonClickEvent = procedure(Sender: TObject; AButtonIndex: Integer) of object;

Parameters

Name Type Description
Sender TObject

Provides access to the editor (a terminal TcxCustomEdit class descendant) that raised the button click event.

You need to cast this parameter value to the corresponding editor class to access all public API members.

Tip

Call the Sender.ClassType function to identify the actual editor type.

AButtonIndex Integer

Returns the index of the clicked embedded button in the editor (Sender) that raised the event.

Use this parameter to identify the clicked button and associate the required functionality with different embedded editor buttons.

Remarks

The editor button click event occurs every time a user clicks an embedded editor button. You can handle this event to associate editor buttons with custom functionality.

VCL Editors Library: An Editor with Three Custom Buttons

Alternatively, you can use an editor button’s Action property to associate the button with an action object (a TBasicAction descendant instance).

Code Example

The code example below demonstrates OnButtonClick and OnCreate event handlers.

The application form’s OnCreate event handler creates two additional embedded buttons in a TcxButtonEdit control and configures the appearance and behavior of all embedded buttons. The OnButtonClick event handler associates all created buttons with the editor’s functionality.

Note

This example uses a TcxImageList component with three SVG icons as a source of glyphs for the created buttons.

procedure TMyForm.cxButtonEdit1PropertiesButtonClick(Sender: TObject;
  AButtonIndex: Integer);
var
  AEditor: TcxButtonEdit;
begin
  AEditor := Sender as TcxButtonEdit;
  if AButtonIndex = 0 then  // The first button clears the editor
    AEditor.Clear
  else if AButtonIndex = 1 then  // The second button selects content
    AEditor.SelectAll
  else if AButtonIndex = 2 then  // The third button hides or reveals content
  begin
    if AEditor.Properties.EchoMode = eemNormal then
      AEditor.Properties.EchoMode := eemPassword
    else
      AEditor.Properties.EchoMode := eemNormal;
  end;
end;

procedure TMyForm.FormCreate(Sender: TObject);
var
  AProperties: TcxButtonEditProperties;
  I: Integer;
begin
  cxButtonEdit1.ShowHint := True;  // Enables hints for the editor
  AProperties := cxButtonEdit1.Properties;
  AProperties.BeginUpdate;  // Initiates the following batch change
  try
    AProperties.Images := cxImageList1;  // Assigns the source of button glyphs
    // Create two additional buttons
    AProperties.Buttons.Add;
    AProperties.Buttons.Add;
    // Specify common button settings
    for I := 0 to AProperties.Buttons.Count - 1 do
    begin
      AProperties.Buttons.Items[I].Kind := bkGlyph;  // Changes the button content type to "glyph"
      AProperties.Buttons.Items[I].ImageIndex := I;  // Specifies image indexes in the source list
      AProperties.Buttons.Items[I].HotTrackMode := TcxEditButtonHotTrackMode.Editor;
    end;
    // Specify unique button settings
    AProperties.Buttons.Items[0].Hint := 'Clear';
    AProperties.Buttons.Items[1].Hint := 'Select All';
    AProperties.Buttons.Items[2].Hint := 'Hide/Reveal';
    AProperties.Buttons.Items[2].LeftAlignment := True;
    AProperties.Buttons.Items[2].Transparent := True;
  finally
    AProperties.EndUpdate;  // Calls EndUpdate regardless of the batch operation's success
  end;
end;

VCL Editors Library: An Editor with Three Custom Buttons

Direct TcxEditButtonClickEvent Type Reference

The TcxCustomEditProperties.OnButtonClick event references the TcxEditButtonClickEvent procedural type.

See Also