Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   El componente RadioButton (https://www.clubdelphi.com/foros/showthread.php?t=49069)

skinnerpro 11-10-2007 22:26:31

El componente RadioButton
 
Este es el componente RadioButton

Ver RadioButton

Otra con marcador

Tengo tres RadioButton, pero como dice la teoria que de los tres solo queda uno siempre seleccionado.

Como lo puedo hacer en delphi 7?

tengo tres RadioButton
opcion 1
opcion 2
opcion 3

Código Delphi [-]
var
  Form1: TForm1;
  Radio1,Radio2,Radio3: String;

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
If RadioButton1.Checked = True then
     Radio1 := 'Opción 1'
else Radio1 := '';
end;

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
If RadioButton1.Checked = True then
     Radio2 := 'Opción 2'
else Radio2 := '';
end;

procedure TForm1.RadioButton3Click(Sender: TObject);
begin
If RadioButton3.Checked = True then
     Radio3 := 'Opción 3'
else Radio3 := '';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
mensaje:=Radio1+' '+Radio2+' '+Radio3;
ShowMessage(mensaje);
end;

que opinan de este codigo, esta bien creado? o se puede mejorar aun mas, saludos

eduarcol 11-10-2007 22:38:55

esta bien creado pero yo lo haria asi
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
mensaje:= ''

if Radio1.Checked then
mensaje:= mensaje + Radio1.Caption

if Radio2.Checked then
mensaje:= mensaje + Radio2.Caption

if Radio3.Checked then
mensaje:= mensaje + Radio3.Caption


ShowMessage(mensaje);
end;

Lepe 11-10-2007 22:39:53

Puedes usar un TRadioGROUP

En su propiedad Items escribes:
Opción 1
Opción 2
Opción 3

En su propiedad ItemIndex pon un cero (por defecto aparecerá la opción 1 marcada)

y el código Delphi se simplifica a:
Código Delphi [-]
with RadioGroup1 do
  ShowMessage('El elegido del mundo mundial es : '+ Items[ItemIndex])

Saludos

eduarcol 11-10-2007 22:41:34

Pues me disculpo, no me di cuenta que era un radio, pense en un checkbox, la mejor opcion es la de Lepe...

Perdon:o

skinnerpro 13-10-2007 22:28:31

Hola Lepe

Hice de poner 0 en Itemindex del RadioGround1
pero no me deja hacerlo, le ingreso el cero pero se devuelve a -1 por defecto

eduarcol 13-10-2007 22:49:15

Primero debes agregar los items

Caral 13-10-2007 22:50:45

Hola
No deberia, el componente RadioGround permite poner el ItemIndex en cero sin problemas.
Ahora me pregunto, para que ponerlo en cero, si quedara marcada la primera opcion y no saldra el mensaje a menos que se marque otra antes.
Yo dejaria la opcion sin marcar, me parece mas lojico.
Por cierto, la opcion de Lepe, es genial, no se puede esperar menos de sus respuestas, simples y al grano.
Saludos

skinnerpro 13-10-2007 23:33:29

y se podra hacer de otra forma, un codigo mas largo?

Código Delphi [-]
variable
if RadioButton1.Checked := true then;
 controlseleccion
end

controlseleccion=seleccion;

if (seleccion == radiobutton1) then
    ShowMessage(opcion 1);
elseif seleccion == radiobutton2) then
    ShowMessage(opcion 2);
elseif seleccion == radiobutton3) then
    ShowMessage(opcion 3);
end

saludos

skinnerpro 14-10-2007 08:32:56

aca les traigo una imagen de su funcionamiento
esta en formato gif, animada para que la vean

Ver la imagen animada

nota: todavia no me funciona mm mmm, dejo el caso abierto a pesar que cada dia se esconde una nueva revelacion o un nuevo descubrimiento que se pueda obtener, je je je

Saludos

Lepe 14-10-2007 09:58:56

Cita:

Empezado por Caral (Mensaje 238381)
Hola
Ahora me pregunto, para que ponerlo en cero, si quedara marcada la primera opcion y no saldra el mensaje a menos que se marque otra antes.
Yo dejaria la opcion sin marcar, me parece mas lojico.

Supongo que va en gustos o forma de programar, como bien dices, si ya has marcado una opción, no te deja quitarla. Para mí es una "desventaja", ya que me obliga a controlar esa posibilidad:
Código Delphi [-]
if radioGroup1.itemindex <> -1 then

Dejando marcada un itemindex por defecto, omito esa pregunta. Si se necesita la posibilidad de dejarla "desmarcada", yo agregaría los siguientes items:
- Sin Opciones
- Opción 1
- Opción 2
- ...

Cita:

Empezado por skinnerpro
y se podra hacer de otra forma, un codigo mas largo?

Se podrá hacer de tantas formas como personas se pongan en ello, y de otras tantas más, como ganas tenga de buscarle los cinco pies al gato ;).

Hay veces que el mejor código no es el más corto, sino el más legible.

Saludos

skinnerpro 14-10-2007 17:27:20

Gracias Lepe

muchas gracias


La franja horaria es GMT +2. Ahora son las 16:32:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi