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 26-06-2017
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.

Tal vez te resulte mas simple usando un TCheckListBox, v. gr.:
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    CheckListBox1: TCheckListBox;
    btnGuardar: TButton;
    //...
    procedure FormCreate(Sender: TObject);
    procedure btnGuardarClick(Sender: TObject);
  private
    function HaveItemsChecked ( clb: TCheckListBox ): Boolean;
  public
  end;

implementation

// Podes evitar todo el código de FormCreate asignando los 17 ítems en tiempo de diseño 
procedure TForm1.FormCreate(Sender: TObject);
var
  clb: TCheckListBox;
begin  
  clb := CheckListBox1;   
  clb.Items.Add('Problema Wifi');
  clb.Items.Add('Problema Señal');
  clb.Items.Add('Problema Antena');
  clb.Items.Add('Problema Bateria');
  // cbl.Items.Add(...
end;

// devuelve verdadero si existe algún item marcado
function TForm1.HaveItemsChecked ( clb: TCheckListBox ): Boolean;
var
  i: Integer;
begin
  Result := False;
  for i := 0 to clb.Items.Count-1 do
  begin
    Result := clb.Checked[i];
    if Result then Exit;
  end;
end;

procedure TForm1.btnGuardarClick(Sender: TObject);
var
  i  : Integer;
begin
  if HaveItemsChecked( CheckListBox1 ) then
  begin
    MD.tblProblemas.Insert;
    for i := 0 to CheckListBox1.Items.Count-1 do
      if CheckListBox1.Checked[i] then
         MD.tblProblemas.FieldByName(Format('problema%d',[i+1])).AsString :=
          CheckListBox1.Items[i];
    //...
    MD.tblProblemas.Post;
  end
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #2  
Antiguo 27-06-2017
rafaelon rafaelon is offline
Miembro
 
Registrado: sep 2010
Posts: 29
Poder: 0
rafaelon Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Tal vez te resulte mas simple usando un TCheckListBox, v. gr.:
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    CheckListBox1: TCheckListBox;
    btnGuardar: TButton;
    //...
    procedure FormCreate(Sender: TObject);
    procedure btnGuardarClick(Sender: TObject);
  private
    function HaveItemsChecked ( clb: TCheckListBox ): Boolean;
  public
  end;

implementation

// Podes evitar todo el código de FormCreate asignando los 17 ítems en tiempo de diseño 
procedure TForm1.FormCreate(Sender: TObject);
var
  clb: TCheckListBox;
begin  
  clb := CheckListBox1;   
  clb.Items.Add('Problema Wifi');
  clb.Items.Add('Problema Señal');
  clb.Items.Add('Problema Antena');
  clb.Items.Add('Problema Bateria');
  // cbl.Items.Add(...
end;

// devuelve verdadero si existe algún item marcado
function TForm1.HaveItemsChecked ( clb: TCheckListBox ): Boolean;
var
  i: Integer;
begin
  Result := False;
  for i := 0 to clb.Items.Count-1 do
  begin
    Result := clb.Checked[i];
    if Result then Exit;
  end;
end;

procedure TForm1.btnGuardarClick(Sender: TObject);
var
  i  : Integer;
begin
  if HaveItemsChecked( CheckListBox1 ) then
  begin
    MD.tblProblemas.Insert;
    for i := 0 to CheckListBox1.Items.Count-1 do
      if CheckListBox1.Checked[i] then
         MD.tblProblemas.FieldByName(Format('problema%d',[i+1])).AsString :=
          CheckListBox1.Items[i];
    //...
    MD.tblProblemas.Post;
  end
end;

Saludos
Me sirve perfecto gracias , ya tenia otra solución, pero esta es mucho mejor , una ultima pregunta si mas adelante quisiera alimentar los datos de checkboxlist desde una tabla como podría hacer ?
Responder Con Cita
  #3  
Antiguo 27-06-2017
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.
Cita:
Empezado por rafaelon Ver Mensaje
... si mas adelante quisiera alimentar los datos de checkboxlist desde una tabla como podría hacer ?
Código Delphi [-]
// al inicio del formulario del CheckListBox:
procedure TForm1.FormCreate(Sender: TObject);
var
  clb: TCheckListBox;
begin
  clb := CheckListBox1;

  clb.Items.Clear;
  unQuery.Close;
  unQuery.SQL.Text := 'SELECT DESCRIPCION FROM SINTOMAS'; // (*) 
  unQuery.Open;
  while not unQuery.Eof do
  begin
    clb.Items.Add( unQuery.FieldByName('DESCRIPCION').AsString );
    unQuery.Next;
  end;
end;
(*) Donde: DESCRIPCION sería el nombre del campo que detalla el problema y SINTOMAS el nombre de la tabla que los contiene.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 28-06-2017
rafaelon rafaelon is offline
Miembro
 
Registrado: sep 2010
Posts: 29
Poder: 0
rafaelon Va por buen camino
gracias , me funciona bastante bien!
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
cambiar la propiedad checked de varios CheckBox fuego149 C++ Builder 2 14-07-2013 07:53:10
insertar datos de varios checkbox krewer Varios 6 23-04-2012 21:16:57
Agregar checkbox a un Dbgrid osmar OOP 13 18-03-2009 21:54:53
¿¿ como usar el tag con varios checkbox ?? gaston260 Varios 7 21-04-2008 06:19:02
marcar varios checkbox halizia HTML, Javascript y otros 3 18-01-2007 14:48:44


La franja horaria es GMT +2. Ahora son las 12:14:56.


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