Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   uso CheckBox con 3 opciones (https://www.clubdelphi.com/foros/showthread.php?t=47357)

arespremium 25-08-2007 03:21:26

uso CheckBox con 3 opciones
 
Mi formulario
ver imagen

al marca una casilla muestre en el label el resultado al darle click en el boton

opcion 1
opcion 2
opcion 3

ejemplo:
se marca una casilla: "opcion 1"
se marca dos casilla y dira en el label: "opcion 1 , opcion 2"
se marca tres casillas: "opcion 1 , opcion 2 , opcion 3"

es eso

este codigo es un boceto
Código:

procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckBox1.Checked and CheckBox2.Checked
Label1.Caption := 'opcion 1' , 'opcion 2'
if CheckBox1.Checked or CheckBox2.Checked
Label1.Caption := 'opcion 1'
end;


BlueSteel 25-08-2007 03:55:05

puedes definir una variable paso

vPaso : String;
vPaso := ' ';
if Opcion1.Cheked= True Then vPaso := Concat(vPaso,' Opcion1 ');
if Opcion2.Cheked= True Then vPaso := Concat(vPaso,' Opcion2 ');
if Opcion3.Cheked= True Then vPaso := Concat(vPaso,' Opcion3 ');

label1.caption := vPaso;


puede k tenga algun error... pero lo hice de memoria:p

Caray 25-08-2007 04:51:10

Una Respuesta no muy Buena
 
Pues mira Arespremium, lo que yo te puedo recomendar sin saber mucho y con mucho codigo, sería esto:
Hacer un if para todos los caso:
if((opcion1.cheked=true) AND (opcion2.cheked=true) AND (opcion3.cheked=true)) then
label1.caption:= 'opcion1, opcion2 y opcion3';
Y asi para todos
pero como te digo es mucho codigo.

egostar 25-08-2007 05:05:25

Haber que te parece esto:

Código Delphi [-]
 
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;
 
type
  TForm1 = class(TForm)
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    Label1: TLabel;
    Button1: TButton;
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure CheckBox3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  Check1,Check2,Check3: String;
 
implementation
 
{$R *.DFM}
 
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  If CheckBox1.Checked = True then
     Check1 := 'Opción 1'
  else Check1 := '';
end;
 
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
  If CheckBox2.Checked = True then
     Check2 := 'Opción 2'
  else Check2 := '';
end;
 
procedure TForm1.CheckBox3Click(Sender: TObject);
begin
  If CheckBox3.Checked = True then
     Check3 := 'Opción 3'
  else Check3 := '';
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := Check1+' '+Check2+' '+Check3
end;
 
end.

Salud OS

CoCaInE 26-08-2007 01:03:48

[quote=BlueSteel;226030]puedes definir una variable paso

vPaso : String;
vPaso := ' ';
if Opcion1.Cheked= True Then vPaso := Concat(vPaso,' Opcion1 ');
if Opcion2.Cheked= True Then vPaso := Concat(vPaso,' Opcion2 ');
if Opcion3.Cheked= True Then vPaso := Concat(vPaso,' Opcion3 ');

label1.caption := vPaso;


Creo que va mejor como dice nuestro companero Blue Steel otra opcion seria usar los If anidados Ej:

vPaso : String;
vPaso := ' ';
if Opcion1.Cheked Then
vPaso :=Opcion1
Else if Opcion2.Cheked Then
vPaso := vPaso+Opcion2
Else if Opcion3.Cheked Then
vPaso+Opcion3;
label1.caption := vPaso;

Delphius 26-08-2007 05:26:13

En realidad, la opción que muestra egostar es la más certera. Ofrece un mejor dinamismo y una mayor comprensión. La lógica está correctamente distribuída y no concentrada en un solo punto. Y si observan bien el código de egostar, a pesar de ser simple, puede ser mejorado. Hay un denominador común en el código y puede aprovecharse los "eventos compartidos" para reducirlo.

Saludos,


La franja horaria es GMT +2. Ahora son las 12:16:51.

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