Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con StringGrid (https://www.clubdelphi.com/foros/showthread.php?t=43303)

BuenaOnda 08-05-2007 07:38:19

Ayuda con StringGrid
 
Hola amigos:

Alguien me podria decir como pintar una celda de un StringGrid, lo que pasa es que necesito pintar con un "DobleClick", la celda seleccionada, de color rojo y con un "click" de colo azul. muchas gracias.:D

Neftali [Germán.Estévez] 08-05-2007 11:15:18

¿Debe haber más de una celda pintada? ¿Puede haber varias o siempre la última que pulses?

Lo digo porque pintar no es difícil, pero dependiendo cuantas quieras pintar deberás almacenar por detrás una estructura que te guarde de qué color está pintada cada una. Si sólo necesitas la última es más sencillo.

droguerman 08-05-2007 14:49:04

código (no probado)
Código Delphi [-]
TForma = class(TForm)
...
private
   lista : TStringList;
...
end;
procedure TForma.TuGridDblClick(Sender: TObject);
var
  indice : integer;
begin
  inherited;
  indice := lista.add(format('%d-%d',[TuGrid.Col, TuGrid.Row]);
  //0 = Azul 1=Rojo
  lista.objects := Pointer(1);
end;

procedure TForma.TuGridClick(Sender: TObject);
var
  indice : integer;
begin
  inherited;
  indice := lista.add(format('%d-%d',[TuGrid.Col, TuGrid.Row]);
  //0 = Azul 1=Rojo
  lista.objects := Pointer(0);
end;

procedure TfmCompra.fraGridxgGridDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
var
  texto : string;
  indice : integer;
  colorCelda : TColor;
begin
  inherited;
  texto := IntToStr(ACol)+'-'IntToStr(ARow);
  indice := lista.indexOf(texto);
  if indice>=0 then
  begin
     if Integer(lista.objects[indice])=0 then
         colorCelda := clBlue
    else if Integer(lista.objects[indice])=1 then
         colorCelda := clRed;
  end
  else
     colorCelda :=  TuGrid.color; 

  TuGrid.Canvas.Brush.color := colorCelda;
  TuGrid.Canvas.fillRect(Rect); 
end;

saludos

BuenaOnda 08-05-2007 22:20:10

gracias por su ayuda..
 
sigo sin solucionar el problemita..:D , lo que pasa es que necesito pintar algunas celdas de colo rojo y otras de color azul, al realizar un click o un dobleclick, respectivamente, trabajo en delphi 7, osea las celdas en un comienzo estan sin pintar, pero luego los usuario puede pintar las celdas, para indicar el estado de las maquinarias, en este caso, las celdas pintadas de azul indican que la maquina esta disponible y las celdas de colo rojo indican lo contrario..muchas gracias por su valiosa ayuda.

BuenaOnda 09-05-2007 10:09:04

ayuda..ayuda..con stringgrid
 
hola amigos.. disculpen la insistencia porfabor, pero alguien me podria decir como pintar algunas celdas de color en el stringgrid, o algun componente que realice esto, no necesito pintar las columnas o las filas sino las celdas..muchas gracias y disculpen la insistencia.:confused:

roman 09-05-2007 10:22:18

Pegué el mensaje que abriste en otro hilo aquí; no tiene caso que abras nuevos hilos para lo mismo, sobre todo porque ya te han contestado aquí. El compañero droguerman te ha puesto ya un código para comenzar, si tienes dudas pregunta sobre eso pero no ignores la ayuda que te han prestado.

// Saludos

BuenaOnda 09-05-2007 10:32:09

Tienes toda la razon..
 
Muy bien te encuentro toda la razon, jamas fue esa mi intención, solo es que necesito realizar esto lo antes posible, pero no volvera a suceder..:o ... mil disculpas..

BuenaOnda 10-05-2007 08:05:19

Problema resuelto...
 
Muchas gracias amigos por su valiosa ayuda, ya resolvi mi problemilla..:D .
solo bastaba con acceder al evento DrawCell del StringGrid...
aqui esta la solucion...

Código:

    if (acol = 1) and (arow = 1) then
    begin
            StringGrid1.Canvas.Brush.Color := clred;
            StringGrid1.Canvas.FillRect(Rect);
    end;

espero que les sirva...


La franja horaria es GMT +2. Ahora son las 18:12:44.

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