Ir para conteúdo
Fórum Script Brasil
  • 0

Personalizar String Grid.


schaukoski

Pergunta

Olá pessoal , tudo beleza?!

pois bem..

eu gostaria de saber como que eu faço pra personalizar uma row do meu string grid.. por exemplo:

StringGrid.[1,2].Font := azul....

gostaria de saber como que eu altero os valores de Font, Cor de fundo, Style de font, de um campo que eu já tenho exemplo[1,2]

e gostaria tambem de saber.. se tem como tirar o Col lines, apenas de uma linha.. que é a minha linha final de TOTAL;;

abraços!!!e Obrigado

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

parte do que você precisa pode tirar daqui:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
  procedure DrawBorder;  // desenha as bordas inferior e direita
  begin
    with Sender as TStringGrid do
    begin
     // posiciona no canto inferior esquerdo da célula
      Canvas.MoveTo(Rect.Left, Rect.Bottom);
     // move desenhando uma linha até o canto inferior direito
      Canvas.LineTo(Rect.Right, Rect.Bottom);
      Canvas.LineTo(Rect.Right, Rect.Top -1);
    end;
  end;
begin
  with Sender as TStringGrid do
  begin
    Canvas.Pen.Color := clBlack;
    if (ARow < FixedRows) or (ACol < FixedCols) then
    begin
      DrawFrameControl(Canvas.Handle, Classes.Rect(Rect.Left, Rect.Top, Rect.Right +1, Rect.Bottom +1), DFC_BUTTON, DFCS_BUTTONPUSH);
      DrawBorder;
    end else
    begin
      Canvas.Brush.Style := bsSolid;
      Canvas.Brush.Color := clWindow;
      Canvas.Pen.Mode := pmMerge;
   // desenha margens da célula só se não for a última linha do grid
      if ARow < (RowCount -1) then
        DrawBorder;
    end;

   // desenha o texto dentro do retângulo, sem preencher com cor de fundo
    Canvas.Brush.Style := bsClear;
   // se precisar trocar a cor da fonte é aqui
    Canvas.Font.Color := clRed;
   // desenha o texto dentro do retângulo
    Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+2, Cells[ACol, ARow]);
  end;
end;

- tem que definir a propriedade DefaultDrawing = False;

- falta tratar State (se com foco, selecionado, ...)

Link para o comentário
Compartilhar em outros sites

  • 0

Ola micheus obrigado pela resposta ai, mas eu não entendi nada cara... tem como você me explicar melhor como que eu faço pra editar uma célula, por exemplo a [1,3] ?

on drawcell quando for desenhar o grid.. por exemplo:

with Grid.cell [1,2] do

font.color := red

linhainferior := white.. etc...

valeuu

Link para o comentário
Compartilhar em outros sites

  • 0
Ola micheus obrigado pela resposta ai, mas eu não entendi nada cara...
eu respondi o que você perguntou:
como que eu faço pra personalizar uma row do meu string grid.. por exemplo:

StringGrid.[1,2].Font := azul....

gostaria de saber como que eu altero os valores de Font, Cor de fundo, Style de font, de um campo que eu já tenho exemplo[1,2]

e gostaria tambem de saber.. se tem como tirar o Col lines, apenas de uma linha.. que é a minha linha final de TOTAL;

isto tudo está ali. Colocou no evento OnDrawCell para ver o resultado?

tem como você me explicar melhor como que eu faço pra editar uma célula, por exemplo a [1,3]?
isto é outra questão. A edição você habilita através da propriedade Options (se não me engano - isto se já não for o padrão). Mas, a princípio se você precisar inicializar alguma célula, você pode fazer através de:

StringGrid.Cells[num_col, num_lin] := 'testo a ser mostrado';

on drawcell quando for desenhar o grid.. por exemplo:

with Grid.cell [1,2]do

font.color := red

linhainferior := white.. etc...

o evento ocorre quando uma célula deve ser desenhada, então, normalmente você não vai acessar uma posição fixa. Vai utilizar os parâmetros recebidos ACol (coluna) e ARow (linha) para acessar o texto na celula nesta coordenada e desenhá-la usando o canvas do StringGrid.

Acho que o exemplo que coloquei deixa estas coisas relativamente claras.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...