Ver Mensaje Individual
  #15  
Antiguo 22-01-2011
Avatar de Aleca
Aleca Aleca is offline
Miembro
 
Registrado: may 2003
Ubicación: Venado Tuerto, Argentina
Posts: 277
Reputación: 24
Aleca Va por buen camino
fijate este codigo (no lo pude probar)
Código Delphi [-]
procedure TBuscarForm.ClientesDBGridDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
  cColor: TColor;
begin
  if State = [] then
    TDBGrid(sender).Canvas.Brush.Color := clWhite
  else
  begin
    TDBGrid(sender).Canvas.Brush.Color := $00E8D3B5;
    //Veo que esto lo haces x cada celda cuando no te cambia la info, lo haria para la primer celda nada más.
    if Column.Index = 0 then
    begin
      with QueryDataModule.ClienteZQuery do
      begin
        //por lo que vi la visibilidad depende del valor del campo y no si esta activo o no.
        if FieldByName('Conyuge').IsNull then //Aca coincido con jafera
          DatosConyugeBitBtn.Visible := false
        else
          DatosConyugeBitBtn.Visible := FieldByName('Conyuge').Value;

        if FieldByName('Observaciones_Check').IsNull then
          ObservacionesBitBtn.Visible:=false
        else
          ObservacionesBitBtn.Visible := FieldByName('Observaciones_Check').Value;

        if FieldByName('Baja').Value = 1 then
          cColor := clRed
        else
          // Si el cliente esta activo, pone botones en verde
          cColor := clGreen;

        DatosConyugeBitBtn.Font.Color := cColor;
        ObservacionesBitBtn.Font.Color := cColor;
        BorrarBitBtn.Font.Color := cColor;
        DatosClienteBitBtn.Font.Color := cColor;
        DatosVentaBitBtn.Font.Color := cColor;
        EstadoBitBtn.Font.Color := cColor;
        ExportarBitBtn.Font.Color := cColor;
        ImprimirBitBtn.Font.Color := cColor;
        UltimaModificacionBitBtn.Font.Color := cColor;
        PagosBitBtn.Font.Color := cColor;
        ContracargosBitBtn.Font.Color := cColor;
        TarjetasBitBtn.Font.Color := cColor;
        RescindirBitBtn.Font.Color := cColor;
        BitBtn1.Font.Color := cColor;
        BitBtn2.Font.Color := cColor;

        //Estos true no harian falta x que no veo que los pongas en falso
        DatosClienteBitBtn.Visible:=True;
        DatosVentaBitBtn.Visible:=True;
        BorrarBitBtn.Visible:=True;
        EstadoBitBtn.Visible:=True;
        ExportarBitBtn.Visible:=True;
        ImprimirBitBtn.Visible:=True;
        UltimaModificacionBitBtn.Visible:=True;
        PagosBitBtn.Visible:=True;
        ContracargosBitBtn.Visible:=True;
        TarjetasBitBtn.Visible:=True;
        RescindirBitBtn.Visible:=True;
        BitBtn1.Visible:=True;
        BitBtn2.Visible:=True;
        //se podria sacar.
      end;
    end;
  end;
  TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
__________________
Aleca

Última edición por Aleca fecha: 22-01-2011 a las 13:01:38.
Responder Con Cita