Como utilizar un CheckBox para ocultar columnas

Necesito de su ayuda con carácter de urgencia...
Actualmente tengo el siguiente DBGrid...
Check Nivel de Precio Porcentaje1 Porcentaje2
Lo que necesito es lo siguiente...
(If) Si el CheckBox esta Chequeado me presente...
Check Nivel de precio Porcentaje2... Aquí me presenta la columna Porcentaje2 y oculta porcentaje1
(Else) De lo contrario si no esta chequeado, me presente.
Check Nivel de precio Porcentaje1 ... Aquí me presenta la columna porcentaje1 y oculta porcentaje2.
Actualmente tengo el siguiente código, pero no me funciona como quiero...
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
If CheckBox1.State = cbChecked then
begin
DbGrid1.Columns[2].Visible:=false; //porcentaje1
DbGrid1.Columns[3].Visible:=true; //porcentaje2
end
else
DbGrid1.Columns[2].Visible:=true; //porcentaje1
DbGrid1.Columns[3].Visible:=false; //porcentaje2
end;

1 Respuesta

Respuesta
1
Debes eliminar/crear las columnas que sean necesarias. Ademas, el índice de la columna a ocultar SIEMPRE sera el mismo, ya que siempre se ve una u otra (en tiempo de diseño crea solo una de las dos, dependiendo de si el Check esta marcado o no en tiempo de diseño). Solo el índice del campo a añadir cambia (pongo 2 y 3 aunque no se cuales son).
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
DBGrid1.Columns[2].Free;
with DBGrid1.Columns.Add do
begin
  If CheckBox1.Checked then Field := 2 else Field := 3;
  // Aqui irian otras propiedades a definir en la nueva columna
end;
end;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas