Otro control visual muy común es el TRadioButton que normalmente se muestran un conjunto de TRadioButton y permiten la selección de solo uno de ellos.
Confeccionar un programa que muestre 3 objetos de la clase TRadioButton que permitan configurar el ancho y alto del formulario. Cuando se presione un botón actualizar el ancho y alto.
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls; type TForm1 = class(TForm) RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if RadioButton1.Checked then begin Width := 640; Height := 480; end else if RadioButton2.Checked then begin Width := 1024; Height := 768; end else if RadioButton3.Checked then begin Width := 1366; Height := 768; end; end; end.
La propiedad Checked almacena true si el RadioButton se encuentra seleccionado:
if RadioButton1.Checked then begin Width := 640; Height := 480; end
Cuando modificamos las propiedades Width y Height del formulario inmediatamente cambia el ancho y alto.
Todos los controles de tipo TRadioButton que dispongamos dentro del formulario actúan en conjunto, es decir si seleccionamos uno pierde la seleccionar el actual.
Para poder desarrollar un formulario con varios grupos que tengan varios elementos de tipo RadioButton debemos disponer objetos de la clase TGroupBox y dentro del mismo insertar los objetos de tipo TRadioButton.
Crear una interfaz que muestre un examen multiple choice:
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; GroupBox2: TGroupBox; RadioButton3: TRadioButton; RadioButton4: TRadioButton; RadioButton5: TRadioButton; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if RadioButton2.Checked then Caption := '(Primera correcta)' else Caption := '(Primera incorrecta)'; if RadioButton3.Checked then Caption := Caption + '(segunda correcta)' else Caption := Caption + '(segunda incorrecta)'; end; end.
El primer GroupBox en su interior tiene dos TRadioButton y el segundo GroupBox tiene tres TRadioButton.
Los dos TRadioButton que contiene el GroupBox1 actúan en conjunto en forma independiente del GroupBox2.
En lugar de utilizar un control de tipo TGroupBox podemos utilizar un control de tipo TPanel para agregar dentro un conjunto de objetos de tipo TRadioButton para que actúen en conjunto.
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var valor1: Integer; valor2: Integer; resultado: Integer; begin valor1 := StrToInt(Edit1.Text); valor2 := StrToInt(Edit2.Text); if RadioButton1.Checked then begin resultado := valor1 + valor2; Caption := IntToStr(resultado); end; if RadioButton2.Checked then begin resultado := valor1 - valor2; Caption := IntToStr(resultado); end; end; end.