Ver Mensaje Individual
  #3  
Antiguo 12-10-2011
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Reputación: 24
JXJ Va por buen camino
funcion miy bien. ahora estoy tratando de que sea mas versatil

teniendo un gris cargado en forma de cuadricula.
si las coordenadas varian. cargadas en un listado. hacer que cambien los colores de fondo.

ando algo enredado si no me doy a entender

puse esto asi.

Código Delphi [-]
procedure TfrmArticulos.StringGrid1DrawCell(Sender: TObject; ACol,
  ARow: Integer;
  Rect: TRect;
  State: TGridDrawState);
  var
  R: TRect;
  v: Double;
begin
  with TStringGrid(Sender) do
  begin
    if TryStrToFloat(Cells[ACol,ARow], v) then  // prevenir posible error de conversión
      if (ACol = 3) and (ARow = 3) then
      begin
        if (v = 0) then    // v = 0 : Sin stock
        begin
          Canvas.Brush.Color:= clRed;
          Canvas.Font.Color:= clWhite;
        end
        else      // hay stock
        begin
          Canvas.Brush.Color:= clLime;
          Canvas.Font.Color:= clBlack;
        end;
        Canvas.FillRect(Rect);
        Canvas.TextOut(Rect.Left+1, Rect.Top+1, Cells[ACol,ARow]);
      end;

    if TryStrToFloat(Cells[ACol,ARow], v) then  // prevenir posible error de conversión
      if (ACol = 2) and (ARow = 2) then
      begin
        if (v = 0) then    // v = 0 : Sin stock
        begin
          Canvas.Brush.Color:= clRed;
          Canvas.Font.Color:= clWhite;
        end
        else      // hay stock
        begin
          Canvas.Brush.Color:= clLime;
          Canvas.Font.Color:= clBlack;
        end;
        Canvas.FillRect(Rect);
        Canvas.TextOut(Rect.Left+1, Rect.Top+1, Cells[ACol,ARow]);
      end;

    if TryStrToFloat(Cells[ACol,ARow], v) then  // prevenir posible error de conversión
      if (ACol = 5) and (ARow = 5) then
      begin
        if (v = 0) then    // v = 0 : Sin stock
        begin
          Canvas.Brush.Color:= clRed;
          Canvas.Font.Color:= clWhite;
        end
        else      // hay stock
        begin
          Canvas.Brush.Color:= clLime;
          Canvas.Font.Color:= clBlack;
        end;
        Canvas.FillRect(Rect);
        Canvas.TextOut(Rect.Left+1, Rect.Top+1, Cells[ACol,ARow]);
      end;
  end;
end;


lo primero que me interesa es que localize la celda por sus coordenadas.
fila y columna.

las coordenadas las quiero cargar desde un record. o
de un stringlist. o un archivo. csv .

aca la imagen de como se ve


Última edición por JXJ fecha: 12-10-2011 a las 22:35:05.
Responder Con Cita