Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Pintar celdas StringGrid (https://www.clubdelphi.com/foros/showthread.php?t=49553)

cacu 24-10-2007 15:50:57

Pintar celdas StringGrid
 
Hola a todos los fortistas, qusiera saber si pueden ayudarme con esto:

Quisiera poder pintar celdas de un stringGrid
para eso uso lo siguiente peron no consigo el objetivo
StringGrid1.Canvas.Brush.Color:=clRed;

gradeceria cualquier sugerencia.

jhonny 24-10-2007 16:11:58

Quizá te sirva el siguiente ejemplo en el OnDrawCell de tu StringGrid:

Código Delphi [-]
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  with TDrawGrid(Sender) do
  begin
    Canvas.Brush.Color := clYellow;
    Canvas.FillRect(Rect);
  end;
end;

Neftali [Germán.Estévez] 24-10-2007 16:36:29

Con lo que Jhonny te ha dico deberías tener bastante; Si buscas un ehjemplo completo puedes encontrar uno con el código en la sección de Ejemplos de esta página. Título: "Color y alineación en celdas de un StringGrid"

cacu 24-10-2007 16:58:02

StringGrid
 
Agradesco sus respuestas..
La verdad es que quiciera pintar una sola cel o bien
las celdas que yo escoja...

En ele ejemplo anterior se pintan todas las celdas del Grid
En el segundo Ejemplo si pinta una columna entera..

Gracias

cacu 24-10-2007 17:22:21

StringGrid
 
Bien ..Agradesco nuevamente a quienes tan amablemente me respondieron y dieron una solucion.

Quisiera que me disculparan por no haber mencionado el problema mas
detalladamente.

El caso es el siguiente:

Dispongo de un stringrid en el cual voy a mostrar registros de una
base de datos.

Bien en el grid debo destacar con diferentes colres las celdas
que cumplan con un determinado criterio.

por ejemplo:

1.- si el el dato a mostrar cumple con un estado = 1
las celdas donde se muetre ese dato deberan estar
en amarillo
2.- si el dato a mostrar cumple cun un estado = 2
las celdas donde se muestre ese dato deberan estar en
azul.

Bien el dato a mostrar tiene una relacion de fecha a demas
esto es que en cada columna como cabezera tengo fechas
Entonces el siguiente criterio es determinar que el dato a mostrar
se ajuste en la culumna de una fecha determinada..

Bien en el primer criterio , esto es de pintar solo las celdas
que cumplan con dato =1 o dato=2. ya mas menos lo resolvi de esta manera
//Dato a modo de ejemplo puesto que debo de leerlo desde un registro
Var
reserva:Integer;
i:string;
Dato:string;
begin
dato='Paciente 1';
i:= StringGrid1.Cells[x , y];

reserva:=1;
if i <> z then
ACanvas.Brush.Color := clwhite
else
begin

case reserva of
1 :begin
ACanvas.Brush.Color := clyellow;
end;
2 :ACanvas.Brush.Color := clmoneygreen;

3 :ACanvas.Brush.Color := clskyblue;
4 :ACanvas.Brush.Color := clcream;
end
end;

end;


La franja horaria es GMT +2. Ahora son las 04:51:25.

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