Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-07-2008
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 22
David Va por buen camino
Question Comprobar que todas las checkbox de un Groupbox estan checked

Hola

Tengo un formulario, con dos GroupBox ( este componente, bien podía ser un panel por ejemplo), en uno tengo varios checkbox, y en el otro pues hay otros.

Quiero hacer dos cosas, la primera y más importante es comprobar de una forma rápida y logica que alguno de los checkbox esta checked.
and ... and not checkboxN.checked then
// Mensaje: Todos los checkbox estan desmarcados, no se puede realizar el proceso.
[/delphi]

Esta manera no me gusta, tiene que haber una forma mejor, que sea del tipo este.

Para todos los checkbox incluidos en el GroupBox1, si todos checked = False, muestro mensaje : "Hay que marcar al menos una opción"

Lo segundo que quiero hacer es parecido, es simplemente, poner un checkbox en cada groupbox, con la opcíon marcar/desmarcar todas.
Si se marca, pues todas las checkbox del Groupbox correspondiente estaran marcadas.

Puedo hacer esto

Código Delphi [-]
if CheckboxDesmarcarTodos.checked then
begin
Checkbox1.checked := true;
checkbox2.checke := true;
......

checkboxN.checked := true;
end;

esta forma de hacerlo tampoco me gusta, quiero algo del tipo.

Para una checkbox del Groupbox1, if checkboxMostrarTodo.cheked, pues todas cheked.
Responder Con Cita
  #2  
Antiguo 15-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola David, tienes que recorrer todos los controles que tienes dentro de tu GroupBox, preguntar si es un CheckBox y haces las operaciones que necesites, ejemplo.

Código Delphi [-]
var
 i, cont : Integer;
begin
 cont := 0;
 for i:=0 to GroupBox1.ControlCount-1 do
  begin
   if (GroupBox1.Controls[i] is TCheckBox) then
    if TCheckBox(GroupBox1.Controls[i]).Checked then
     inc(cont);
  end;
 if cont=0 then
  showmessage('Ningun CheckBox esta marcado');

Ahora para marcar todos o desmarcar todos, sería mejor que tu checkbox que haga eso este fuera de tu GroupBox asi haces menos controles.

Código Delphi [-]
procedure TFPrincipal.CheckBoxMarcarClick(Sender: TObject);
begin
 for i:=0 to GroupBox1.ControlCount-1 do
  begin
   if (GroupBox1.Controls[i] is TCheckBox) then
    TCheckBox(GroupBox1.Controls[i]).Checked := CheckBoxMarcar.Checked;
  end;
end;

Pero también podías haber usado un CheckListBox.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 16-07-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
ahi ta la respuesta..sin mucho problema.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Habilitar controles de un GroupBox luigi_cr OOP 3 21-11-2007 19:27:51
Modificar borde de groupbox Albano OOP 2 30-03-2007 00:09:47
Comprobar que todos los formularios de la aplicacion estan cerrados Colgueit OOP 4 14-05-2006 21:30:31
Cambiar el estado de un RadioButton......"Checked o no Checked" chileno Varios 3 29-04-2006 22:34:18
crear array de groupbox en tiempo de ejecución abogado Varios 1 21-03-2005 10:27:43


La franja horaria es GMT +2. Ahora son las 21:29:24.


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
Copyright 1996-2007 Club Delphi