Ver Mensaje Individual
  #8  
Antiguo 26-06-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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