Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question Checkear al menos un DBCombobox

Muy buenas trades y muchas gracias de antemano...

Hace poco pregunte por pedir seleccionar un RadioButton, ahora tengo 12 DBCombox uno por cada mes y necesito al momento de guardar verificar que al menos el usuario seleccione 1 de estos, independiente si los selecciona todos, me pueden ayudar??? muchas gracias de antemano...

PD: Utilizo Delphi 2010, Zeos 7.0.0, MySQL...
Responder Con Cita
  #2  
Antiguo 29-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
tengo 12 DBCombox uno por cada mes y necesito al momento de guardar verificar que al menos el usuario seleccione 1 de estos, independiente si los selecciona todos
Hola Lenny.

Una manera puede ser aprovechar el evento OnChange de los TDBComboBox, por ejemplo:
Código Delphi [-]
  ...
  private
    FModifico: Boolean; // True si modifica algún combo
  end;
...

implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  ...
  FModifico:= False; // Sin modificar
end;

procedure TForm1.DBComboBoxChange(Sender: TObject);
begin
  FModifico:= True;  // Modifico un combo
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not FModifico then
    ShowMessage('Debe seleccionar al menos un valor');
end;
Tenés que asignar el método DBComboBoxChange a todos los TDBComboBox que te interese evaluar. Si se trata de algún módulo en el que haces ingresos o modificaciones repetitivas deberás poner FModifico:= False al iniciar cada nueva acción.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 29-11-2011
Avatar de thecidmx
thecidmx thecidmx is offline
Miembro
NULL
 
Registrado: oct 2011
Posts: 93
Poder: 13
thecidmx Va por buen camino
tienes 12 combobox o 12 checkbox???

sitenes 12 combobox, uno por mes, no entiendo x q lo tienes haci, ya q el combobox tiene la propiedad value, y al ser dbcombobox, tengo entendido que es de una base de datos, y la opcion q tienes que hacer es que el combo box contenga algun valor q tu decidas

si me disiparas la duda te mandaria mejor la respuesta.

Gracias.
----------------------------------------
Lamejor forma de aprender es comprtir tu conocimiento :P
Responder Con Cita
  #4  
Antiguo 29-11-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Estimado, me acabo de dar cuenta que cometi un eror garrafal, no son DBComboBox, son DBCheckBox, mil perdones... lo que dices si funcionaria con DBCombobox, pero los DBCheckBox no traen la opcion "OnChange, mil perdones nuevamente y espero puedas ayduarme nuevamente, corrijo de inmediato el POST ORIGINAL...
Responder Con Cita
  #5  
Antiguo 29-11-2011
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por Lenny Ver Mensaje
Estimado, me acabo de dar cuenta que cometi un eror garrafal, no son DBComboBox, son DBCheckBox, mil perdones... lo que dices si funcionaria con DBCombobox, pero los DBCheckBox no traen la opcion "OnChange, mil perdones nuevamente y espero puedas ayduarme nuevamente, corrijo de inmediato el POST ORIGINAL...
Código Delphi [-]
var b:boolean;

      for i := 0 to (Self.ComponentCount - 1) do
      begin
        if Self.Components[i] is TDBChecBox then
        begin
         if  TDBChecBox(Self.Components[i]).Checked then b := true;
        end;
      end;
    if b then showmesage('Algo');
__________________
all your base are belong to us
Responder Con Cita
  #6  
Antiguo 29-11-2011
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por ecfisa Ver Mensaje
Hola de nuevo.

Entonces podrías hacer:
Código Delphi [-]
function TForm1.HasDBCheckBoxChecked: Boolean;
var
  i: Integer;
begin
  Result:= False;
  for i:= 0 to ComponentCount - 1 do
    if (Components[i].ClassName = 'TDBCheckBox') and
       (Components[i] as TDBCheckBox).Checked then
     Result:= True;
end;

Ejemplo de llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not HasDBCheckBoxChecked then
    ShowMessage('Al menos uno debe estar seleccionado');
end;

Saludos.
lo que yo dije pero en nivel 2
__________________
all your base are belong to us
Responder Con Cita
  #7  
Antiguo 29-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Entonces podrías hacer:
Código Delphi [-]
function TForm1.HasDBCheckBoxChecked: Boolean;
var
  i: Integer;
begin
  Result:= False;
  for i:= 0 to ComponentCount - 1 do
    if (Components[i].ClassName = 'TDBCheckBox') and
       (Components[i] as TDBCheckBox).Checked then
     Result:= True;
end;

Ejemplo de llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not HasDBCheckBoxChecked then
    ShowMessage('Al menos uno debe estar seleccionado');
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 30-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por look Ver Mensaje
lo que yo dije pero en nivel 2
Ningún nivel 2, es lo mismo

En realidad volví a poner el mensaje, que borré por error, por que fuiste más rapido y hubiera quedado descolgada tu referencia. Pero no tenía sentido ya que tu respuesta ya solucionaba el problema perfectamente...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 30-11-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Unhappy

Mil disculpas... me lanza este error:

"[Error] ObjetivosCalidadIngreso_.pas(71): E2003 Undeclared identifier: 'Result'"

Solo eso, gracias...
Responder Con Cita
  #10  
Antiguo 30-11-2011
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Talking

Cita:
Empezado por Lenny Ver Mensaje
Mil disculpas... me lanza este error:

"[Error] ObjetivosCalidadIngreso_.pas(71): E2003 Undeclared identifier: 'Result'"

Solo eso, gracias...
Sorry, me falto agregar "Registry" en el uses, muchas gracias...
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
xhr, AJAX en menos de 1 KB dec HTML, Javascript y otros 15 09-03-2009 12:59:06
Coño, MENOS MAL...! vtdeleon Humor 0 17-06-2006 05:22:56
Encarta MSN (por lo menos yo.. no lo conocia) marceloalegre Noticias 2 29-11-2005 22:48:19
...menos mal que era bobo... Jure Humor 3 08-06-2004 20:54:32
menos decimales Irina Varios 3 14-05-2003 15:36:53


La franja horaria es GMT +2. Ahora son las 19:23:47.


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