Ver la Versión Completa : 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:
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 (http://neftali.clubdelphi.com/). Título: "Color y alineación en celdas de un 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
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;
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.