Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-04-2011
ToritoCapo ToritoCapo is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 14
Poder: 0
ToritoCapo Va por buen camino
Como poner color a filas de un DBGrid

Hola amigos !!!

Hago la siguiente consulta desde mi programa en C++ Builder a Postgres en SQL :
"select * from mprimas where stock_actual < stock_minimo";

Estos resultados se muestran en un DBGrid donde figuran 4 columnas:
Nombre, Stock_Actual, Stock_Minimo y Stock_Critico

Lo que quiero hacer es, donde el stock_actual es inferior al stock_critico, pintar las filas de un color cualquiera asi resaltan del resto que no tienen color.

Espero que se entienda.
Saludos.
Responder Con Cita
  #2  
Antiguo 05-04-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Al final de esta página tienes varios enlaces sobre ese tema, también puedes hacer una búsqueda en clubdelphi, se ha tratado infinidad de veces ese asunto.
Responder Con Cita
  #3  
Antiguo 05-04-2011
ToritoCapo ToritoCapo is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 14
Poder: 0
ToritoCapo Va por buen camino
Si, ya busque por todos lados, pero ninguno está expresado para C++ Builder.

Ya lo logré hacer en un StringGrid, pero no puedo todavia en un DBGrid.
Lo que más me dificulta es poder comparar 2 filas del DBGrid, como puse en el ejemplo anterior.

Si alguien puede pasarme alguno de estos ejemplos en C++ se lo agradecería muchisimo.

Saludos.
Responder Con Cita
  #4  
Antiguo 05-04-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pon el código que lo veamos.
Responder Con Cita
  #5  
Antiguo 06-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ToritoCapo.

Probá este código:
Código:
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
      const TRect &Rect, int DataCol, TColumn *Column, TGridDrawState State)
{
  if(DBGrid1->DataSource->DataSet->FieldByName("STOCK_ACTUAL")->Value <
     DBGrid1->DataSource->DataSet->FieldByName("STOCK_CRITICO")->Value) {
    DBGrid1->Canvas->Brush->Color = clRed;
    DBGrid1->Canvas->Font->Color = clWhite;
    DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State);
  };
}
Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 06-04-2011 a las 00:06:09.
Responder Con Cita
  #6  
Antiguo 06-04-2011
ToritoCapo ToritoCapo is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 14
Poder: 0
ToritoCapo Va por buen camino
Esto seria muy parecido a lo que necesito hacer, pero en C++
Se están comparando dos columnas como yo necesito.

Saludos.


Código Delphi [-]
procedure TFMntInventario.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
iDif : Extended;
iFile: Extended;
begin
// Cambia color a Existencia por debajo del minimo
if ( Dt1.TInventario.FieldByName('ExistAct').AsInteger <
Dt1.TInventario.FieldByName('ExistMin').AsInteger ) then begin
DBGrid1.Canvas.Font.Color := clRed;
end;

Última edición por Casimiro Notevi fecha: 06-04-2011 a las 00:24:12.
Responder Con Cita
  #7  
Antiguo 06-04-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Añade la línea indicado por ecfisa, te la he copiado:

Código Delphi [-]
procedure TFMntInventario.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); 
var 
  iDif : Extended; 
  iFile: Extended; 
begin // Cambia color a Existencia por debajo del minimo 
  if ( Dt1.TInventario.FieldByName('ExistAct').AsInteger < Dt1.TInventario.FieldByName('ExistMin').AsInteger ) then 
  begin 
    DBGrid1.Canvas.Font.Color := clRed; 
  end;

  DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State);  // <- añade esta línea.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como poner color a una palabra buscada Alexander Conexión con bases de datos 7 12-09-2006 02:22:43
Cambiar color filas DBGrid Iskariote0087 Varios 5 23-01-2006 15:57:01
Color DBGrid según grupo de filas Cabanyaler OOP 11 28-11-2005 08:22:32
Listview vsReport : Como pintar parejas de filas de un solo color wvidela Varios 2 17-05-2005 21:47:57
Filas Diferente Color En Un Dbgrid jsc Varios 2 27-04-2004 17:32:44


La franja horaria es GMT +2. Ahora son las 11:43:39.


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
Copyright 1996-2007 Club Delphi