Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   StringGrid, cambiar color celda (https://www.clubdelphi.com/foros/showthread.php?t=83391)

jose.ignacio.ve 12-06-2013 20:18:04

StringGrid, cambiar color celda
 
hola yo tengo un stringgrid que esta pintado de verde todo.. quisiera saber como hacer para que cuando haga click en una celda cambie d color rojo... para pintarla toda a la grilla use el evento drawcell.. pero ahora en el evento selectcel noc que programar para qm pinte una esa celda seleccionada.. por favor ayuda ya busque en todos los hilos y nm solucionar el problema.. gracias

mamcx 12-06-2013 20:45:02

Por favor lee la guia de estilo.

Casimiro Notevi 13-06-2013 16:57:09

Al final de esta página, abajo del todo, tienes varios enlaces que pueden servirte.
Es un tema que se ha tratado infinidad de veces, puedes hacer una búsqueda y aparecerán muchos enlaces.

Y no olvides, para otra vez, poner títulos descriptivos a tus preguntas, gracias ;)

Neftali [Germán.Estévez] 13-06-2013 17:12:06

A lo que ha dicho Casimiro, añadiría que estaría bien saber si sólo quieres pintar una celda de forma simultánea o quieres ir pintando varias a medida que las vas pulsando.

(1) En el SelecCell guarda la fila y columna (1 o varias)
(2) En el evento OnDrawCell pintas de un color o de otro, según sean de las seleccionadas o no.

ecfisa 13-06-2013 22:48:46

Cita:

Empezado por jose.ignacio.ve (Mensaje 462146)
hola yo tengo un stringgrid que esta pintado de verde todo.. quisiera saber como hacer para que cuando haga click en una celda cambie d color rojo...

Hola José.

Tomando en cuenta esa parte de tu mensaje, sería:
Código Delphi [-]
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  with TStringGrid(Sender) do
  begin
    if not (gdFixed in State) then
    begin
      if gdFocused in State then
        Canvas.Brush.Color := clRed
      else
        Canvas.Brush.Color := clGreen;
      Canvas.FillRect(Rect);
    end;
    Canvas.TextRect(Rect, ACol, ARow, Cells[ACol, ARow]);
  end;
end;

Saludos. :)


La franja horaria es GMT +2. Ahora son las 17:32:37.

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