Fórum Alinhamento StringGrid #265734
17/01/2005
0
Pessoal !!!
Como faço para alinhar um determinado valor pela direita na StringGrid????
Rogério
Como faço para alinhar um determinado valor pela direita na StringGrid????
Rogério
Rogeranalista
Curtir tópico
+ 0
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
Clique aqui para fazer login e interagir na Comunidade :)