Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Today's Posts

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 21/02/2008
RoyTan's Avatar
RoyTan RoyTan is offline
Miembro
 
Join Date: Oct 2003
Location: Mijas - Málaga
Posts: 122
Poder: 23
RoyTan Va por buen camino
Talking Cambiar el color en una celda de un DBGrid

Saludos.

Bueno haber si me aclaro y alguien me aclara.

Necesito cambiar de color una celda de un DBGrid que cumpla una condición, como por ejemplo toda aquella del campo SALDO que contenga un número menor que 0.

Estoy dándole vueltas a este código, pero no se que falla.

if Column.Field.Dataset.FieldbyName('SALDO').AsFloat < 0
then
if (gdFocused in State)
then DBGCaja.Columns[4].color := clRed
else
DBGCaja.canvas.brush.color := clRed;
DBGCaja.DefaultDrawColumnCell(rect,DataCol,Column,State);

El resultado de este código es que pinta de color rojo toda la linea completa o sea todos los campos ( fecha,concepto,ingreso,gasto,saldo)

Y solo necesito que lo haga en el campo saldo.

Espero haberme explicado.

Gracias
Reply With Quote
  #2  
Old 21/02/2008
Gabo's Avatar
[Gabo] Gabo is offline
Miembro Premium
 
Join Date: Mar 2007
Location: Murcia (España)
Posts: 684
Poder: 20
Gabo Va por buen camino
Usa el evento OnDrawCell. Allí pon los condicionantes que quieras y usa la propiedad Canvas del DBGrid.
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Reply With Quote
  #3  
Old 21/02/2008
rafita rafita is offline
Miembro
 
Join Date: Aug 2003
Location: Cuenca- España.
Posts: 309
Poder: 24
rafita Va por buen camino
Quote:
Originally Posted by RoyTan View Post

if Column.Field.Dataset.FieldbyName('SALDO').AsFloat < 0
then
if (gdFocused in State)
then DBGCaja.Columns[4].color := clRed
else
DBGCaja.canvas.brush.color := clRed;
DBGCaja.DefaultDrawColumnCell(rect,DataCol,Column,State);
En el ELSE deberías poner otro color ¿no?
__________________
Rafita.
Reply With Quote
  #4  
Old 21/02/2008
RoyTan's Avatar
RoyTan RoyTan is offline
Miembro
 
Join Date: Oct 2003
Location: Mijas - Málaga
Posts: 122
Poder: 23
RoyTan Va por buen camino
Nada de nada.

Sigue sin funcionar.
Reply With Quote
  #5  
Old 22/02/2008
RoyTan's Avatar
RoyTan RoyTan is offline
Miembro
 
Join Date: Oct 2003
Location: Mijas - Málaga
Posts: 122
Poder: 23
RoyTan Va por buen camino
He probado de todas formas y nada.

Bueno pues se quedará sin el colorcito.

Gracias.
Reply With Quote
  #6  
Old 22/02/2008
gluglu's Avatar
[gluglu] gluglu is offline
Miembro Premium
 
Join Date: Sep 2004
Location: Málaga - España
Posts: 1,455
Poder: 23
gluglu Va por buen camino
Este tema ya ha sido tratado en múltiples ocasiones en los foros.

Seguro que utilizando la búsqueda encontrarías muchas referencias. No obstante, para que veas que en Delphi 'siempre' se puede, te invito a utilizar el siguiente código :

Código Delphi [-]
procedure TForm.DBGrid1DrawColumnCell(Sender: TObject;
  Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 
  If (Column.Index = 5) and (Column.Field.Dataset.FieldbyName('SALDO').AsFloat < 0) and (not DataSet.IsEmpty) then begin
    if gdFocused in State then begin
      DBGrid1.Canvas.Brush.Color := clBlue    // Color que quieras que tenga el fondo si la línea tiene foco
      DBGrid1.Canvas.Font.Color  := clWhite   // Color del Font que quieras que tenga si la línea tiene foco
    end
    else begin
      DBGrid1.Canvas.Brush.Color := clRed;    // Color que quieras que tenga si la línea NO tiene foco
      DBGrid1.Canvas.Font.Color  := clWhite   // Color del Font que quieras que tenga si la línea NO tiene foco
    end;
  end;
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
 
end;

Siendo Column.Index = al número de columna que quieras colorear. También podrías hacer referencia a dicha columna por el campo que se encuentra en ella.

DataSet es el DataSet asociado a tu DBGrid.

... y nunca desesperes si algo no te funciona
__________________
Piensa siempre en positivo !

Last edited by gluglu : 22/02/2008 at 12:03.
Reply With Quote
  #7  
Old 22/02/2008
RoyTan's Avatar
RoyTan RoyTan is offline
Miembro
 
Join Date: Oct 2003
Location: Mijas - Málaga
Posts: 122
Poder: 23
RoyTan Va por buen camino
Siempre pienso en positivo,
raramente desespero,
he buscado en el foro,
eso sí, seguramente no he buscado bien.

Pero esto sigue sin funcionar, probablemente este haciendo algo mal, eso es seguro.

Seguimos intentandolo.

Gracias.
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
forma de cambiar el color de una celda anubis Varios 8 31/07/2007 19:08
DBGrid Color Celda hcalero Varios 2 13/04/2007 13:37
Cambiar el color a una celda de un DBGrid NuncaMas Varios 1 14/02/2005 16:40
Cambiar Color una Celda del DbGrid Rabata Varios 5 02/09/2004 09:31
Cambiar el color de una celda de un DBGrid candido OOP 2 06/08/2004 10:22


All times are GMT +2. The time now is 00:07.


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