Ver Mensaje Individual
  #1  
Antiguo 18-06-2010
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Reputación: 16
pablopessoa Va por buen camino
Problema al personalizar un stringGrid

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!
Responder Con Cita