Delphi - TDBGrid con celdas de color

 
Vista:

TDBGrid con celdas de color

Publicado por Marcela (7 intervenciones) el 22/03/2006 02:20:31
Hola amigos, deseo un componente como el TDBGrid que me permita cambiar de color de fondo y letra a una sola celda. El TDBGrig solo me permite hacer l cambio a una columna. Puede alguien ayudarme?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:TDBGrid con celdas de color

Publicado por jose julian (46 intervenciones) el 22/03/2006 23:59:29
usa el evento OnDrawColumnCell, ahi pudes cambinar el color de una fila o celda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TDBGrid con celdas de color

Publicado por Marcela (7 intervenciones) el 23/03/2006 03:16:08
José como hago referencia a una sola celda? con los parámetros de este evento o las propiedades del TDBGrid, no logro darme cuenta como hago referencia a una sola celda. Dame una ayudita!!!!
En un TStringGrid tengo las propiedades Row y Col que referencia a la celda la cual es un objeto celda que tiene color de fondo y letra, pero en el TDBGrid no las tengo y aparentemento tampoco tengo el objeto celda. me podrias dar un ejemplo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TDBGrid con celdas de color

Publicado por jose julian (46 intervenciones) el 23/03/2006 23:21:10
ok ok

si quieres lo puedes hacer tomando en cuenta el numero de campo,
por ejemplo si quieres que se cambie de solo donde sea el 2 campo pues usa el parametro DataCol del evento que es el numero campo (de los que tengas asignados claro)

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with Sender as TDBGrid do
begin
if DataCol = NumeroDeCampoQueTuNecesites then
begin
Canvas.Font.Color := El Color que quieras; // Para la letra
Canvas.Brush.Color := El Color que quieras; // Para el fondo
end
else begin
Canvas.Font.Color := El Color que quieras; // PAra la letra
Canvas.Brush.Color := El Color que quieras; // Para el fondo
end
end;
end;

y si lo quieres hacer usando el nombre del campo pues:

en la comparacion en vez de usar el DataCol usa Column.FieldName

if Column.FieldName = 'NombreDelCampoQueNecesitas' then
todo lo demas :P

si te sale me debes in Six de Coors Light :P (no es cierto es broma)

espero te sea de ayuda, SAludos :-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TDBGrid con celdas de color

Publicado por jose julian (46 intervenciones) el 23/03/2006 23:29:27
se me olvido en el anterior se me olvido algo

debes de llamar el metodo: DefaultDrawColumnCell

DefaultDrawColumnCell(Rec, DataCol, Column, State);

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with Sender as TDBGrid do
begin
if DataCol = NumeroDeCampoQueTuNecesites then
begin
Canvas.Font.Color := El Color que quieras; // Para la letra
Canvas.Brush.Color := El Color que quieras; // Para el fondo
end
else begin
Canvas.Font.Color := El Color que quieras; // PAra la letra
Canvas.Brush.Color := El Color que quieras; // Para el fondo
end
DefaultDrawColumnCell(Rec, DataCol, Column, State); <--- AQUI MERO
end;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias. Salio!!!!

Publicado por Marcela (7 intervenciones) el 25/03/2006 00:42:20
Jose
Mil gracias, ya que tu ayuda me ayudo mucho. Hace varias semans que estaba estancada sin saber que hacer.
Gracias mil nuevamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar