GARANTIR DESCONTO

Fórum Alinhamento StringGrid #265734

17/01/2005

0

Pessoal !!!


Como faço para alinhar um determinado valor pela direita na StringGrid????




Rogério


Rogeranalista

Rogeranalista

Responder

Posts

18/01/2005

Massuda

Como faço para alinhar um determinado valor pela direita na StringGrid????
Use o evento OnDrawCell do TStringGrid. Não testei, mas esse exemplo deve dar uma boa idéia do que pode ser feito:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Longint; Rect: TRect;
  State: TGridDrawState);
var
  Grid: TStringGrid;
  S: string;
  Flags: Integer;
begin
  Grid := Sender as TStringGrid;

  if not Grid.DefaultDrawing then begin

    if gdFixed in State then begin
      Grid.Canvas.Brush.Color := Grid.FixedColor;
    end
    else begin
      Grid.Canvas.Brush.Color := Grid.Color;
    end;
    Grid.Canvas.FillRect(Rect);

    if gdFocused in State then begin
      Grid.Canvas.DrawFocusRect(Rect);
    end;
  end;

  // Use Col e Row para decidir 
  // como o conteúdo da célula será apresentado

  // Neste exemplo, as colunas ímpares são alinhadas à direita
  Flags := DT_VCENTER; // centra na vertical
  if Odd(Row) then begin
    Flags := Flags or DT_RIGHT; // alinha à direita
  end
  else begin
    Flags := Flags or DT_LEFT; // alinha à esquerda
  end;

  // Ajuste Grid.Canvas.Font se quiser um fonte diferente

  S := Grid.Cells[Col, Row];
  DrawText(Grid.Canvas.Handle, PChar(S), Length(S), Rect, Flags); 
end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar