Alinhar célula na grid...
Amigos...
Estou usando o seguinte código para mudar a fonte de uma célula da grid.
Só que este campo é do tipo valor, e eu gostaria de alinha à direita, mas o Canvas faz perder o alinhamento.
Alguém sabe como devo fazer???
with (Sender as TDBGrid).Canvas do begin
Font.Color := clRed;
FillRect(Rect);
TextOut(Rect.Left + 1, Rect.Top + 2, Column.Field.Text);
end;
Grata
Mariana
Estou usando o seguinte código para mudar a fonte de uma célula da grid.
Só que este campo é do tipo valor, e eu gostaria de alinha à direita, mas o Canvas faz perder o alinhamento.
Alguém sabe como devo fazer???
with (Sender as TDBGrid).Canvas do begin
Font.Color := clRed;
FillRect(Rect);
TextOut(Rect.Left + 1, Rect.Top + 2, Column.Field.Text);
end;
Grata
Mariana
Mariana
Curtidas 0
Respostas
Josemarlourenco
18/07/2003
Mariana,
Se o seu problema é só alinhamento de uma coluna da DBGrid, vc pode muda a propriedade Alignment.
Entre no Columns editor (duplo click na dbgrid), selecione a coluna e pelo object inspector, altere a propriedade Alignment para taRightJustify.
Isto tb pode ser feito via código, da seguinte forma:
DBGrid.Columns[1].Alignment := taRightJustify;
Josemar
Se o seu problema é só alinhamento de uma coluna da DBGrid, vc pode muda a propriedade Alignment.
Entre no Columns editor (duplo click na dbgrid), selecione a coluna e pelo object inspector, altere a propriedade Alignment para taRightJustify.
Isto tb pode ser feito via código, da seguinte forma:
DBGrid.Columns[1].Alignment := taRightJustify;
Josemar
GOSTEI 0
Joaomw
18/07/2003
Este é para cada célula
No evento OnDrawCell
FillRect(Rect);
//tamanho do texto na célula do tipo Integer
TamTextoCel:= TextWidth(SGAreaPlan.Cells[ACol,ARow]);
if (ARow>0) and (ARow<14) and (ACol=1) //celulas com alinh. a direita
then TextOut (Rect.Right - ((TamTextoCel)+2), Rect.Top + 2, SGAreaPlan.Cells[ACol,ARow] )
else TextOut (Rect.Left + 2, Rect.Top + 2, SGAreaPlan.Cells[ACol,ARow] );
espero ter ajudado.
No evento OnDrawCell
FillRect(Rect);
//tamanho do texto na célula do tipo Integer
TamTextoCel:= TextWidth(SGAreaPlan.Cells[ACol,ARow]);
if (ARow>0) and (ARow<14) and (ACol=1) //celulas com alinh. a direita
then TextOut (Rect.Right - ((TamTextoCel)+2), Rect.Top + 2, SGAreaPlan.Cells[ACol,ARow] )
else TextOut (Rect.Left + 2, Rect.Top + 2, SGAreaPlan.Cells[ACol,ARow] );
espero ter ajudado.
GOSTEI 0
Eduardo Mendonça
18/07/2003
Estou Com um diavia com relação ao tópico
como é que faço para alinha a Cada Célula de uma Coluna
no meu caso a coluna Registro
como é que faço para alinha a Cada Célula de uma Coluna
no meu caso a coluna Registro
Coluna Registro Coluna Descrição
REGISTRO 01.00.00 bla bla bla1.0
REGISTRO 01.01.00 bla bla bla1.1
REGISTRO 01.01.01 bla bla bla1.1.1
REGISTRO 01.01.02 bla bla bla1.1.2
REGISTRO 02.00.00 bla bla bla2.0
REGISTRO 02.01.00 bla bla bla2.1
REGISTRO 02.02.00 bla bla bla2.2
REGISTRO 02.02.01 bla bla bla2.0.1
GOSTEI 0
Leandro Silva
18/07/2003
Tente definir para cada número separado por . uma variável de verificação. Para cada variável um espaçamento deve ser seguido.
GOSTEI 0