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

# TRadioButton

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

Implement a radio button control.

## Declaration

Source position: stdctrls.pp line 1491

`type TRadioButton = class(TCustomCheckBox)`
`protected`
`class procedure WSRegisterClass; override;` |  | Registers this component class with the current WidgetSet.
`procedure ApplyChanges; override;` |  | Updates the state for sibling radio buttons in the parent.
`function DialogChar(); override;` |  | Implements support for an accelerator key in the control.
`procedure RealSetText(); override;` |  | Sets the value for the text and/or caption in the control.
`procedure DoClickOnChange; override;` |  | Performs actions needed when the control has been changed using a mouse click.
`procedure CreateParams(); override;` |  | Initializes the creation parameters for the class instance.
`public`
`constructor Create(); override;` |  | Constructor for the class instance.
`published`
`property Align: TAlign;` |  | Specifies the placement of the control on its Parent control.
`property Alignment: TLeftRight;` |  | Indicates the alignment for the caption text in the control.
`property Anchors: TAnchors;` |  | The set of anchor definitions for this control.
`property AutoSize: Boolean;` |  | Enables or disables auto-sizing the control to its content.
`property BidiMode: TBiDiMode;` |  | Indicates whether text controls use in bi-directional reading.
`property BorderSpacing: TControlBorderSpacing;` |  | Determines the inner and outer border spacing for this control.
`property Caption: TCaption;` |  | The text displayed for the control.
`property Checked: Boolean;` |  | Indicates the checked state for the control as a Boolean value.
`property Color: TColor;` |  | The background color for the control.
`property Constraints: TSizeConstraints;` |  | Contains the minimum and maximum Width and Height for the control.
`property DoubleBuffered: Boolean;` |  | When enabled, it reduces flicker when the control is painted.
`property DragCursor: TCursor;` |  | The cursor shape shown during a drag operation.
`property DragKind: TDragKind;` |  | Indicates the action performed for a drag operation: drag-and-drop or drag-and-dock.
`property DragMode: TDragMode;` |  | Determines how a drag operation is started for the control.
`property Enabled: Boolean;` |  | Determines whether the control responds to mouse or keyboard input.
`property Font: TFont;` |  | The font to be used for text display in this control.
`property Hint: TTranslateString;` |  | The text to show in the Hint window for the control.
`property ParentBidiMode: Boolean;` |  | Indicates whether the BiDiMode settings in the Parent control are used.
`property ParentColor: Boolean;` |  | Use the Color from the Parent control, when enabled.
`property ParentDoubleBuffered: Boolean;` |  | Value for the DoubleBuffered property in a Parent control.
`property ParentFont: Boolean;` |  | Indicates if the Font from the Parent control is used in the control.
`property ParentShowHint: Boolean;` |  | If True, the value of ShowHint for the control will be the same as the one from the Parent. Default is True.
`property PopupMenu: TPopupMenu;` |  | A context-sensitive menu that pops up when the right mouse button is clicked over this control.
`property ShowHint: Boolean;` |  | Enables Hint display for the control.
`property TabOrder: TTabOrder;` |  | Indicates the navigation order for the control when the user presses the Tab or Shift+Tab key.
`property TabStop: Boolean;` |  | Enables keyboard navigation using the Tab or Shift+Tab keys.
`property Visible: Boolean;` |  | Allows the control, and all of its children, to be displayed or hidden.
`property OnChange: TNotifyEvent;` |  | Event handler signalled when the button control is clicked.
`property OnChangeBounds: TNotifyEvent;` |  | Event handler signalled when the Bounds for the control have been changed.
`property OnClick: TNotifyEvent;` |  | Notification handler for mouse clicks.
`property OnContextPopup: TContextPopupEvent;` |  | Invoked when a context-sensitive pop-up menu is requested.
`property OnDragDrop: TDragDropEvent;` |  | Event handler signalled when an object is dropped onto the control.
`property OnDragOver: TDragOverEvent;` |  | Event handler signalled when a control is dragged over the control instance.
`property OnEndDrag: TEndDragEvent;` |  | Event handler signalled for the end of a drag-drop operation.
`property OnEnter: TNotifyEvent;` |  | Event handler signalled when the control receives focus.
`property OnExit: TNotifyEvent;` |  | Event handler signalled when the control loses focus.
`property OnKeyDown: TKeyEvent;` |  | Event handler signalled for key down keyboard events.
`property OnKeyPress: TKeyPressEvent;` |  | Event handler signalled for character data entered by the user.
`property OnKeyUp: TKeyEvent;` |  | Event handler signalled when a key up event has occurred for the control.
`property OnMouseDown: TMouseEvent;` |  | Event handler signalled when a mouse down event is handled for the control.
`property OnMouseEnter: TNotifyEvent;` |  | Event handler signalled when the mouse pointer has entered the control.
`property OnMouseLeave: TNotifyEvent;` |  | Event handler signalled when the mouse pointer has left the control.
`property OnMouseMove: TMouseMoveEvent;` |  | Event handler signalled when the mouse pointer is moved in the control.
`property OnMouseUp: TMouseEvent;` |  | Event handler signalled when a mouse up event is handled for the control.
`property OnMouseWheel: TMouseWheelEvent;` |  | Event handler for mouse wheel turned.
`property OnMouseWheelDown: TMouseWheelUpDownEvent;` |  | Event handler signalled for a downward movement of the mouse wheel.
`property OnMouseWheelUp: TMouseWheelUpDownEvent;` |  | Event handler signalled for an upward movement of the mouse wheel.
`property OnResize: TNotifyEvent;` |  | Notification handler for a resize of the control.
`property OnStartDrag: TStartDragEvent;` |  | Event handler signalled for the start of a dragging operation.
`end;`

## Inheritance

`TRadioButton` |  | Implement a radio button control.
`TCustomCheckBox` |  | The base class for a check box component.
`TButtonControl` |  | Specifies a base class for button controls.
`TWinControl` |  | Implements a windowed control which can contain other child controls.
`TControl` |  | The base class for visible controls.
`TLCLComponent` |  | The base class for LCL components which have an associated widget.
`TComponent`
?
`TObject`

## Description

TRadioButton is a TCustomCheckBox descendant which implements a selection button that works with other radio buttons in a mutually exclusive way. If one radio button is selected, none of the others in the group can be selected.

Ensure that the OnClick event handler for each button has a unique Action, and that Actions for the other (deselected and therefore inactive) buttons are turned off.

TRadioGroup behaves differently from a group of TRadioButton controls placed on a form.

In the case of TRadioButton, the mutual exclusivity is a feature that applies to any RadioButton anywhere in the Form, and the RadioButtons can be rearranged in any order or placed anywhere within the containing Form, while in TRadioGroup the exclusivity applies only to buttons within the Group, which are ordered strictly according to their ItemIndex within the Items stringlist.

TRadioButton is an entity in itself, with a number of additional properties, whereas the buttons within TRadioGroup are not separate entities, but rather are simply entries in a list of strings, each of which is associated with the on-screen image of a RadioButton.

The example shows the difference between the use of TRadioButton and TRadioGroup.

## See also

HowToUseStdCtrls |  | How to use StdCtrls, ComCtrls or ExtCtrls.
TRadioGroup |  | TRadioGroup is a group of related but mutually exclusive radio buttons, requiring the user to select one of a set of alternatives.

## Example

    {Using TRadioGroup with three entries in Items:
    Index 0: Red
    Index 1: Amber
    Index 2: Green}

    procedure TTrivialForm1.RadioGroup1Click(Sender: TObject);
    begin
      case RadioGroup1.ItemIndex of
      0:   Shape1.brush.color := clRed;
      1:   Shape1.brush.color := clYellow;
      2:   Shape1.brush.color := clGreen
      end
    end;

    {Using three separate RadioButtons}

    procedure TForm1.RadioButton1Click(Sender: TObject);
    begin
      Shape1.brush.color := clRed
    end;

    procedure TForm1.RadioButton2Click(Sender: TObject);
    begin
      Shape1.brush.color := clYellow
    end;

    procedure TForm1.RadioButton3Click(Sender: TObject);
    begin
      Shape1.brush.color := clGreen
    end;