Hola a todos!
Estoy haciendo un form para personalizar grillas. El form tiene una property de tipo TADOTable al que le paso el AdoTable que quiero personalizar.
La idea es : yo estoy mostrando los datos es un dbgrid pero quiero configurar que campos se mostraran del dbgrid y que nombre debe aparecer en el titulo del dbgrid.
Para esto puse un PopMenu en el dbgrid que me abre un form donde tengo un stringGrid que se carga con tres columnas. La primer columna se llena con los titulos del dbgrid ( los fieldName de los fields del adotable), la segunda columna es editable y se usa para cambiar el titulo ( modificar el DisplayLabel del field) y la tercer columna muestra un checkbox que al tildarlo significa que se mostrara ese field en el dbgrid.
Hasta ahora lo pude hacer correctamente, el codigo que utilice para armarlo es este (se los dejo por si a alguno le sirve):
Código Delphi
[-]
procedure TConfigurarGrilla.FormActivate(Sender: TObject);
var
i:integer;
b:TCheckBox;
begin
with grilla do
begin
grilla.RowCount:= dataTable.FieldCount;
Cells[0,0] := 'Nombre del campo';
Cells[1,0] := 'Nombre a Mostrar';
Cells[2,0] := 'Visible';
for I := 1 to dataTable.FieldCount-1 do
begin
Cells[0,i]:= dataTable.Fields.Fields[i].FieldName;
b:=TCheckBox.Create(self);
b.Name:= dataTable.Fields.Fields[i].FieldName;
b.Parent:=grilla;
b.Caption:='';
b.Margins.Left:=5;
b.BoundsRect := grilla.CellRect(2,i);
end;
end;
end;
Pero el problema que tengo es que los checkbox no se quedan en "check" cuando les hago click, es decir, le hago click al combobox y se pone en "check" pero no lo mantiene.
Alguno podra explicarme a que se debe y como lo puedo solucionar?
Muchas Gracias!