vcl-dxuiaclasses-a44ddc4b.md
Stores UIA node properties associated with a DevExpress control/UI element.
TdxAutomationProperties = class(
TObject
)
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.
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.
The following code example initializes Name and FullDescription UIA node names for an existing single-line text editor (TcxTextEdit):
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;
#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";
}
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.
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;
#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";
}
}
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.
TObject TdxAutomationProperties
See Also