Jump to content
Fórum Script Brasil
  • 0

Personalizar String Grid.


schaukoski
 Share

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...