[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | Reference for unit 'Classes' (#rtl)

# TBasicAction

[Properties (by Name)] [Methods (by Name)] [Events (by Name)]

Abstract base class for all Actions.

## Declaration

Source position: classesh.inc line 2020

`type TBasicAction = class(TComponent)`
`public`
`constructor Create(); override;` |  | Creates a new instance of a TBasicAction class.
`destructor Destroy; override;` |  | Destroys the action.
`function HandlesTarget(); virtual;` |  | Determines whether Target can be handled by this action
`procedure UpdateTarget(); virtual;` |  | Notify client controls when the action updates itself.
`procedure ExecuteTarget(); virtual;` |  | Executes the action on the Target object
`function Execute; dynamic;` |  | Triggers the OnExecute event
`procedure RegisterChanges();` |  | Registers a new client with the action.
`procedure UnRegisterChanges();` |  | Unregisters a client from the list of clients
`function Update; virtual;` |  | Triggers the OnUpdate event
`property ActionComponent: TComponent; [rw]` |  | Returns the component that initiated the action.
`property OnExecute: TNotifyEvent; [rw]` |  | Event triggered when the action executes.
`property OnUpdate: TNotifyEvent; [rw]` |  | Event triggered when the application is idle.
`end;`

## Inheritance

`TBasicAction` |  | Abstract base class for all Actions.
`TComponent,IUnknown,IInterfaceComponentReference` |  | Base class for all components that need owner-owned functionality.
`TPersistent,IFPObserved` |  | Base class for streaming system and persistent properties.
`TObject` |  | Base class of all classes.

## Description

TBasicAction implements a basic action class from which all actions are derived. It introduces all basic methods of an action, and implements functionality to maintain a list of clients, i.e. components that are connected with this action.

Do not create instances of TBasicAction. Instead, create a descendant class and create an instance of this class instead.

## See also

TBasicActionLink |  | Link between actions and action clients (e.g. controls)
TComponent |  | Base class for all components that need owner-owned functionality.