Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Colores a un DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=53099)

cmm07 10-02-2008 20:50:03

Colores a un DBGrid
 
Hola, de nuevo molestando:D:D:D, bueno esta es mi duda, es un poco tonta :p:p:p:

Lo que necesito hacer es que un DBGrid cambie el color en cada fila aqui les dejo una foto

http://img218.imageshack.us/img218/2502/dbgridyl1.png

esta foto es solo un montaje algo falso, eso mismo necesito hacer en delphi 7

los colores son:
Color1: $00FFFAF0.
Color2: $00FFEFCA.


Gracias por su atención

SALU2

QUE SIGA CRECIENDO:.........:):)

Delphius 10-02-2008 21:26:37

Hola cmm07,
¿Probaste haciendo una búsqueda en los foros? El tema es moneda corriente en los foros. Por ejemplo, aquí y aquí.

O también puedes optar por un componentes de terceros que realice esto por ti. Un sitio donde conseguirlos: torry.

Saludos,

gluglu 10-02-2008 22:03:35

Deberías buscar más en los foros tal y como comenta también nuestro amigo Delphius.

No obstante, te expongo directamente aquí el codigo que precisas para colorear el DBGrid tal y como expones :

Código Delphi [-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  If (not (gdSelected in State)) and (DataSet1.Recno mod 2 = 0) and (not DataSet1.IsEmpty) then
    DBGrid1.Canvas.Brush.Color := $00FFEFCA;
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

Utiliza el evento OnDrawColumnCell del DBGrid. Y por defecto le indicas como color al DBGrid en su propiedad Color el otro color que indicas :

Código Delphi [-]
DBGrid1.Color := $00FFFAF0;

DataSet1 es el DataSet asociado al DBGrid.

Saludos.

cmm07 10-02-2008 22:47:14

Muchas pero muchas gracias, me funciono de maravilla, no se como agradecerles...

Gracias.

SALU2

Lisandro 02-03-2012 23:09:15

DBGrid colores línea y columna
 
Hola amigos:
Después de andar bastante, he logrado manejar el tema, y agradecido a todo lo que me enseñaron todos desde allí, a continuación listo como lo hago:
Código Delphi [-]
{ método llamado desde DBGrid DrawColumnCell }
procedure TFECuentaCasaConque.GrillaDrawColumnCell(Sender: TObject; const Rect: TRect;
                  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var Num: Integer;
     R: TRect;
     Conque, Haber: Integer;
begin
 if (DataCol = 2) or (DataCol = 5) then  
 with dmCajaHogar do { el datamodule con la tabla QCuentaCasa}
 begin
  if QCuentaCasa.FieldByName('HABER').AsInteger = 0 then
  begin
   Grilla.Canvas.Brush.Color:= $00F3E8FF; {Rosa}
   Grilla.Canvas.Font.Color:= clRed;
   Grilla.DefaultDrawColumnCell(Rect, DataCol, Column, State);
  end;
 endGrilla.Canvas.Brush.Color:= clLimMed1;
     4: 
 else
 if (DataCol in [3,6]) then  { la columna 3 (comienza en 0) tiene el campo "CONQUE" a colorear }
 with dmCajaHogar do
 begin
  Num:=TStringGrid(Grilla).Row;
  R:=TStringGrid(Grilla).CellRect(DataCol,Num);
  with Grilla do  { es el DBGid }
  begin
   Conque:= QCuentaCasa.FieldByName('CONQUE').AsInteger; 
   if not(gdFocused in State) then
    case Conque of
     1: Grilla.Canvas.Brush.Color:= clVerCla1;
     2: Grilla.Canvas.Brush.Color:= clCelMed1;
     3: { .... yo sigo hasta 11 }
   end
   else
   if gdFocused in State then
    case dmCajaHogar.QCajaHogarCON.AsInteger of
     1: Grilla.Columns[3].color:= clVerCla2;
     2: Grilla.Columns[3].color:= clCelMed2;
    end;
   Grilla.DefaultDrawColumnCell(Rect, DataCol, Column, State);
  end;
 end;
end;
Un abrazo y saludos a todos.

Lisandro

ecfisa 03-03-2012 00:27:13

Hola Lisandro.

Primeramente gracias por aportarnos tu código.

Lo que te voy a solicitar es, que cuando incluyas código en tus mensajes, utilices TAG's. Te pongo una imágen que explica su uso:



Saludos y gracias por tu colaboración. :)


La franja horaria es GMT +2. Ahora son las 10:05:23.

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