Ver Mensaje Individual
  #10  
Antiguo 27-06-2017
rafaelon rafaelon is offline
Miembro
 
Registrado: sep 2010
Posts: 29
Reputación: 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