Formatar um StringGrid (negrito, centralizado) e Limpá-lo

Delphi

11/11/2003

Olá!
Tenho uma tela onde tem um StringGrid com duas colunas, Nome e Matrícula. A primeira linha contém os títulos, que são Nome e Matrícula. A partir da segunda linha ficarão os dados.
Gostaria de saber como faço para colocar somente o título em negrito e todos os dados, inclusive o título, centralizados.
E como fazer para limpar este StringGrid toda vez que eu entrar nesta janela, deixando somente o título.

Obs.: Estes dados vem de uma planilha Excel, na qual já estou conseguindo ler e receber os dados no StringGrid, só falta formatá-los.

Desde já agradeço.


Bclr

Bclr

Curtidas 1

Melhor post

M@rcelo

M@rcelo

11/11/2003

Coloque o Codigo abaixo no evento OnNDrawCell
var
texto:string;

begin

texto:=StringGrid.Cells[col,row];

StringGrid.Brush.Style := (bsSolid);

if row=0 then
StringGrid.Canvas.Font.Style:=[fsbold] // negrito
else
StringGrid.Canvas.Font.Style:=[];


StringGrid.Canvas.Rectangle(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom);
SetTExtAlign(Stringgrid.canvas.handle,TA_CENTER);
StringGrid.Canvas.TextOut(Rect.right-2,Rect.Top,Texto);

// alinha no centro

Pra limpar e so vc fazer um for


GOSTEI 1

Mais Respostas

Bclr

Bclr

11/11/2003

Valeu pela ajuda M@rcelo,
Mas será que não tem uma maneira mais fácil de fazer isto?
Fiz desta maneira mas ficou meio estranho, os títulos ficaram em negrito mas ultrapassaram o limite da célula, aparecendo somente parte do texto.
Já tentei aumentar de Rect.right-2 para outro número, ou também ao invés de usar TextOut, usar TextRect. Mas infelizmente não consegui um bom resultado.

Para limpar você quis dizer para eu colocar um for em que cada célula recebrá um valor ´´ ???
Será que não tem nenhum Delete, por exemplo?

E como eu faço para ordernar os valores de acordo com uma certa coluna? Tem alguma idéia?

Obrigado


GOSTEI 0
M@rcelo

M@rcelo

11/11/2003

Amigo faca o seguinte pra ficar centralizado

Tire a linha do Rectangle e a linha do Textout

O resto verei p vc


GOSTEI 0
Alisson Sampaio

Alisson Sampaio

11/11/2003

  SetTextAlign(stgTributos.canvas.handle, TA_CENTER);
  stgTributos.Canvas.TextOut(trunc((Rect.Left + Rect.Right)/2),Rect.Top+3,texto);
GOSTEI 0
POSTAR