Back to Devexpress

TdxAutomationProperties Class

vcl-dxuiaclasses-a44ddc4b.md

latest5.5 KB
Original Source

TdxAutomationProperties Class

Stores UIA node properties associated with a DevExpress control/UI element.

Declaration

delphi
TdxAutomationProperties = class(
    TObject
)

Remarks

UIA properties define a node in the UI Automation tree. Third-party accessibility applications address these properties to obtain information on the corresponding control/UI element.

Main API Members

The list below outlines key members of the TdxAutomationProperties class. These members allow you to access and configure individual properties of a UI Automation tree node.

FullDescriptionStores a full description for a UIA node.NameStores a UIA node name.

Code Examples

Initialize UIA Node Names for Editors

The following code example initializes Name and FullDescription UIA node names for an existing single-line text editor (TcxTextEdit):

delphi
uses
  dxUIAClasses, // Declares all UI Automation classes
  cxEdit, // Declares base editor classes and auxiliary types
  cxTextEdit; // Declares the TcxTextEdit class
// ...

procedure TMyForm.cxTextEdit1PropertiesAutomationCalculateProperty(
  ASender: TObject; AProperties: TdxAutomationProperties);
begin
  AProperties.Name.Value := 'Task Description';
  AProperties.FullDescription.Value := 'Non-Editable';
end;
cpp
#include "dxUIAClasses.hpp" // Declares all UI Automation classes
#include "cxEdit.hpp" // Declares base editor classes and auxiliary types
#include "cxTextEdit.hpp" // Declares the TcxTextEdit class

// Add the following linker directives to the corresponding CPP source file:
#pragma link "dxUIAClasses" // Required to use dxUIAClasses.hpp declarations
#pragma link "cxTextEdit" // Required to use cxTextEdit.hpp declarations
#pragma link "cxEdit" // Required to use cxEdit.hpp declarations

void __fastcall TMyForm::cxTextEdit1PropertiesAutomationCalculateProperty(
  TObject *ASender, TdxAutomationProperties *AProperties)
{
  AProperties->Name->Value = "Task Description";
  AProperties->FullDescription->Value = "Non-Editable";
}

Indicate Read-Only and Editable States

The code example in this section changes the description of an unbound single-line text editor (TcxTextEdit) in the UI Automation tree when the editor switches between read-only and editable states.

delphi
uses
  dxUIAClasses, // Declares all UI Automation classes
  cxEdit, // Declares base editor classes and auxiliary types
  cxTextEdit; // Declares the TcxTextEdit class
// ...

procedure TMyForm.cxTextEdit1PropertiesAutomationCalculateProperty(
  ASender: TObject; AProperty: TdxAutomationProperty;
  AProperties: TdxAutomationProperties);
var
  AEdit: TcxTextEdit;
begin
  AEdit := ASender as TcxTextEdit;
  // Check if the UIA node description property is requested
  if AProperty = AProperties.FullDescription then
  begin
    if AEdit.Properties.ReadOnly then
      AProperties.FullDescription.Value := 'Read-Only Mode'
    else
      AProperties.FullDescription.Value := 'Editable';
  end;
end;
cpp
#include "dxUIAClasses.hpp" // Declares all UI Automation classes
#include "cxEdit.hpp" // Declares base editor classes and auxiliary types
#include "cxTextEdit.hpp" // Declares the TcxTextEdit class

// Add the following linker directives to the corresponding CPP source file:
#pragma link "dxUIAClasses" // Required to use dxUIAClasses.hpp declarations
#pragma link "cxTextEdit" // Required to use cxTextEdit.hpp declarations
#pragma link "cxEdit" // Required to use cxEdit.hpp declarations

void __fastcall TMyForm::cxTextEdit1PropertiesAutomationCalculateProperty(
  TObject *ASender, TdxAutomationProperty *AProperty,
  TdxAutomationProperties *AProperties)
{
  TcxTextEdit *AEdit = dynamic_cast<TcxTextEdit*>(ASender);
  // Check if the UIA node description property is requested
  if(AProperty == AProperties->FullDescription)
  {
    if(AEdit->Properties->ReadOnly)
      AProperties->FullDescription->Value = "Read-Only Mode";
    else
      AProperties->FullDescription->Value = "Editable";
  }
}

Direct TdxAutomationProperties Class References

The following procedural types reference a TdxAutomationProperties object as the AProperties parameter:

TdxCalculateAutomationPropertyEventThe procedural type for UIA node property calculation events.TdxInitializeAutomationPropertiesEventThe procedural type for UIA node property initialization events.

Inheritance

TObject TdxAutomationProperties

See Also

TdxAutomationProperties Members

dxUIAClasses Unit