Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   colorear datos de un Grid (https://www.clubdelphi.com/foros/showthread.php?t=82800)

rotsen26 15-04-2013 18:29:51

colorear datos de un Grid
 
Buen día amigos de Clubdelphi...

Tengo un problema que no he podido solucionar, la cuestión es que tengo un grid con los datos seleccionados, y quiero que se coloreen los datos que cumplan con la condición. Tengo el siguiente código...

Código Delphi [-]
procedure Tfrm_Agrega.dbg_bsqDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
    if qry_articulopk_articulo.Value=ADOQuery1dpk.Value then
     begin  //qry_articulo.First;
       ADOQuery1.First;
       dbg_bsq.Canvas.Brush.Color := $00E6DC64;
       dbg_bsq.Font.Color := clBlack; // qry_articulo.Next;
       //adoquery1.Next;
    end;
    dbg_bsq.DefaultDrawColumnCell(Rect, DataCol, Column, State); 
end;

La cuestión que si se colorea, pero nomas el primer dato que cumple con la condición, pero los demás ya no!!!

Si alguien me podría ayudar se lo agradecería!!!

ecfisa 15-04-2013 19:21:32

Hola rotsen26.
Cita:

Empezado por rotsen26 (Mensaje 458622)
La cuestión que si se colorea, pero nomas el primer dato que cumple con la condición, pero los demás ya no!!!

Y es lógico que así suceda ya que estás posicionando a ADOQuery1 en el primer registro cada vez que el evento OnDrawColumnCell se ejecuta.

No lo he probado, pero a simple vista parece que debería ser:
Código Delphi [-]
procedure Tfrm_Agrega.dbg_bsqDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if qry_articulopk_articulo.Value=ADOQuery1dpk.Value then
  begin
    dbg_bsq.Canvas.Brush.Color := $00E6DC64;
    dbg_bsq.Font.Color := clBlack;
   end;
   dbg_bsq.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

Saludos.

rotsen26 15-04-2013 19:41:00

Código Delphi [-]
procedure Tfrm_Agrega.dbg_bsqDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if qry_articulopk_articulo.Value=ADOQuery1dpk.Value then
  begin
    dbg_bsq.Canvas.Brush.Color := $00E6DC64;
    dbg_bsq.Font.Color := clBlack;
   end;
   dbg_bsq.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

Con este código también me colorea nada mas el primer registro!!!

ecfisa 15-04-2013 20:05:56

Hola rotsen26.

Percibo que a pesar de contar con 33 mensajes y casi cuatro meses de permanencia en el foro no has dedicado mucho de tu tiempo a leer nuestra guía de estilo.

Si no entiendes el por que de mi comentario, hazmelo saber y con gusto te lo explico.

Saludos.


La franja horaria es GMT +2. Ahora son las 06:04:16.

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