Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Colorear filas de un grid en concreto (https://www.clubdelphi.com/foros/showthread.php?t=3278)

superhopi 30-08-2003 20:19:11

Colorear filas de un grid en concreto
 
Hola chicos, queria ver si me podias echar una mano...
Tengo en un Dbgrid unos datos de unos clientes y me gustaria, para que el usuario pudiera diferenciar mejor los clientes que tienen una opcion a si/no se pudiera pintar la fila de Si a un color y la de No a otro...
Se puede tal cosa???
Gracias.

jhonny 30-08-2003 21:12:17

Si se puede es algo asi:
En el evento DrawColumnCell de la DbGrid adecua lo siguiente:

Código:

if (CondicionCliente= 'SI') then
begin
      DBGfechaserv.Canvas.Brush.Color:=clYellow;
      DBGfechaserv.Canvas.FillRect(Rect);
      DBGfechaserv.Canvas.Font.Color:=clWindowText;
end
else
begin
    if (CondicionCliente ='No') then
    begin
        DBGfechaserv.Canvas.Brush.Color:= clRed;
        DBGfechaserv.Canvas.FillRect(Rect);
        DBGfechaserv.Canvas.Font.Color:=clWindowText;
    end
end;

Si quieres mas informacion debes ir a:
www.clubdelphi.com/~cadetill

delphi.com.ar 01-09-2003 15:48:26

Otra opción puede ser utilizar la RxDBGrid, y trabajar con los eventos OnGetCellParams:

Código:

if (Query.FieldByName('CONDICION').AsString = 'SI') and (not Highlight) then
  Background := clRed
else
  Background := clBlue;

Saludos!

seb@ 04-09-2003 13:33:15

Me anda bien la coloracion, el tema es que no veo el contenido que tiene, es como si la coloración haya borrado el contenido de la grilla....me pueden ayudar???? Muchas Gracias

delphi.com.ar 04-09-2003 16:05:45

¿No será que el color de la fuente sea el mismo que el del fondo?... por lo que sería imposible distinguir el texto.
¿Por cuál de las soluciones has optado?

champy 09-09-2003 19:18:27

Ciertamente cuando haces el Fillrect, rellenas d color el Canvas del DbGrid y el texto queda tapado... la mejor solución es dibujar el texto encima del canvas despues de rellenarlo... algo así


DBGRID.Canvas.Brush.Color := ClRed;

dbgrid.Canvas.FillRect(REct);

DbGrid.Canvas.TextOut(Rect.left +1, Rect.top +1, DbGrid.Fields[DataCol].AsString )

TextOut es un procedimiento que dibuja el texto que se le pasa en un canvas,

Datacol es una constante que se recive en el OnDrawColumCell que nos sirve de indice para saber que texto se tiene que extraer del grid para dibujarlo...

Espero que e sirva la ayuda

seb@ 10-09-2003 14:03:18

Ya pude solucionar mi problema con un dbgrid ahora estoy trabajando con tstringgrid y parece que no funciona de la misma manera que el dbgrid, alguien sabe como colorear un tstringgrid...?????????? Desde ya muchas gracias

JavierB 10-09-2003 19:03:23

Hola, seb@.

Para un TStringGrid utiliza el evento onDrawCell con un código parecido a este:
Código:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  Txt: String;
begin
  if (ACol=2) and (ARow=2) then
  begin
    Txt:=StringGrid1.Cells[ACol,ARow];
    with StringGrid1.Canvas do
    begin
      Brush.Color:=clGreen;
      TextRect(Rect,Rect.Left+2,Rect.Top+2,Txt);
    end;
  end;
end;

Espero que te sirva. Saludos, :cool:

ContraVeneno 06-08-2005 00:39:52

Solo quiero agradecer el comentario de Maese Federico, ya que dos años después de haberlo hecho, ahora me ha ayudado a mi con las JVCL (TJvDBGrid) a resolver el mismo dilema.

superhopi 12-08-2005 01:09:56

Vaya
 
Vaya vaya, despues de dos años...
Uf, cuanto tiempo ha pasado de eso la verdad, yo me acuerdo que estaba haciendo las practicas ...
Desgraciadamente no encontre trabajo de lo que me gustaba, y ahora apenas llego ni a programar... solo a modo "hobbie"

Bueno, por que cuento mi vida si es triste y aburrida?
Jajaja, me ha resultado curioso recibir un correo como que alguien habia escrito algo en el foro despues de tanto tiempo.

Venga, un saludo.

Cristian desde Valencia. :D


La franja horaria es GMT +2. Ahora son las 13:54:41.

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