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.