Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cambiar color a DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=7675)

Esau 23-02-2004 22:42:07

Cambiar color a DBGrid
 
Hola Amigos , se me ocurrio una idea , y me gustaria implementarlo , tengo un DBGrid y me gustaria que de acuerdo a los datos que se obtengan se cambie la fuente, el color y el color de fondo de los datos que se van a mostrar en el DBGrid, el problema es que me gustaria saber si alguno ya lo hizo y si tiene una idea de como hacer o ejemplos , esto ayudara bastante a los ususarios con los que trabajo , muchas gracias de antemano


Saludos desde Lima Peru

marcoszorrilla 23-02-2004 22:53:48

Aquí tienes un ejemplo:

Código:

procedure TfrConClientes.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if DmVil.CliBaja.Value = True then
  begin
  DBGrid1.Canvas.Brush.Color :=clInfobk;
  Dbgrid1.Canvas.Font.Style:=[fsBold];
  DBGrid1.Canvas.Font.Color:=ClBlack;
  DBGrid1.DefaultDrawColumnCell(Rect,Datacol,Column,State);
  end;
end;

Un Saludo.

Esau 24-02-2004 15:22:04

Todo bien Pero...
 
Hasta ahora todo va bien , segun los datos puedo cambiar los colores de las filas en el DBGrid, pero cuando coloco el cursor en una de las filas que he cambiado de color , el cursor se pierde o simplemente no lo veo , por que esta del mismo color que la fila , como hago para poder invertir los colores de la celda que tiene el cursor en el Grid,


otra vez Gracias

murci 25-02-2004 12:38:51

En el codigo del envento ONGetCellParams, seria algo asi.

Código:

procedure TForm1.DBGrid1GetCellParams(Sender: TObject; Field: TField;
  AFont: TFont; var Background: TColor; Highlight: Boolean);
begin
  if Highlight then begin
    AFont.Color := clYellow;
    Background := clNavy;
  end;
end;

Espero que te sirva de ayuda.

BlueSteel 27-01-2011 16:06:50

Cita:

Empezado por murci (Mensaje 31731)
En el codigo del envento ONGetCellParams, seria algo asi.

Código:

procedure TForm1.DBGrid1GetCellParams(Sender: TObject; Field: TField;
  AFont: TFont; var Background: TColor; Highlight: Boolean);
begin
  if Highlight then begin
    AFont.Color := clYellow;
    Background := clNavy;
  end;
end;

Espero que te sirva de ayuda.


Hola... quiero aplicar esto, por que cuando selecciono una fila, no se distingue el contenido por que la letra esta en blanco y como adicional a esto le tengo convinacion de colores con el siguiente codigo

Código Delphi [-]
procedure TIngreso_Reg.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if Odd(DBGrid1.DataSource.DataSet.RecNo) then
     DBGrid1.Canvas.Brush.Color := $00D6F8D9
  else
     DBGrid1.Canvas.Brush.Color := $00D9FDF8;
  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

pero no encuentro la propiedad ONGetCellParams del DBGrid....

Me interesa cambiar el color de la fuente... alguien sabe como realizarlo...

Salu2:p:confused:

jafera 28-01-2011 17:18:34

Esta propiedad esta en el JvDBGrid

Josep

Casimiro Notevi 28-01-2011 17:45:32

Cita:

Empezado por jafera (Mensaje 389228)
Esta propiedad esta en el JvDBGrid
Josep

Y de las RX.

olbeup 28-01-2011 22:26:41

Cita:

procedure TIngreso_Reg.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Odd(DBGrid1.DataSource.DataSet.RecNo) then
DBGrid1.Canvas.Brush.Color := $00D6F8D9
else
DBGrid1.Canvas.Brush.Color := $00D9FDF8;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Código Delphi [-]
procedure TIngreso_Reg.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if Odd(DBGrid1.DataSource.DataSet.RecNo) then
     if (gdFocused in State) then
       DBGrid1.Canvas.Brush.Color := $OtroColor
     else
       DBGrid1.Canvas.Brush.Color := $00D6F8D9
  else
     if (gdFocused in State) then
       DBGrid1.Canvas.Brush.Color := $OtroColor
     else
       DBGrid1.Canvas.Brush.Color := $00D9FDF8;
  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Espero que te sirva.

Un saludo.


La franja horaria es GMT +2. Ahora son las 01:44:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi