Formatar um StringGrid (negrito, centralizado) e Limpá-lo
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.
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
Curtidas 1
Melhor post
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
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
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
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
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
Tire a linha do Rectangle e a linha do Textout
O resto verei p vc
GOSTEI 0
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