DBGrid + ClientDataSet não alinha e ñ respeita DisplayFormat

Delphi

26/07/2012

Pessoal, estou com problemas em alinhar e formatar colunas no DBGrid a partir de um ClientDataSet.

Já modifiquei DisplayFormat em DesignTime, Runtime, já tentei com o OnGetText, e os valores nunca aparecem formatados. Tão pouco alinhado a direita.

Imagem
[url]http://img441.imageshack.us/img441/904/comprawithfields.png[/img][/url]

Bug ou burrice?
Aloizio Castro

Aloizio Castro

Curtidas 0

Respostas

William

William

26/07/2012

Colega tentei visualizar sua imagem mas não consegui....
GOSTEI 0
William

William

26/07/2012

Consegui visualizar essa tage [\img] no final que dando problema..

Já tentou alinhar direto no DBGrid no Columns Editor!
GOSTEI 0
Aloizio Castro

Aloizio Castro

26/07/2012

Url acima está errada, por favor veja aqui.
[url]http://img441.imageshack.us/img441/904/comprawithfields.png[/url]

Antes de perguntarem sobre alinhamento da coluna do DBGrid, eu já chequei isso tb.
[url]http://img651.imageshack.us/img651/5148/compradbgrid.png[/url]
GOSTEI 0
William

William

26/07/2012

Colega simulei algumas situações ak, e no meu caso deu esse bug quando passei a usar a função para zebrar o DBGrid.

Mas no seu caso não acredito q seja esse o problema...

Tenta montar um projeto novo e testar esse grid com essa formatação só pra ver se dá o mesmo bug.
GOSTEI 0
Aloizio Castro

Aloizio Castro

26/07/2012

Meu amigo, acertou na mosca!!

E o método de zebra do meu grid!!

Você passou por isso?
Conseguiu corrigir? Como?
GOSTEI 0
William

William

26/07/2012

Cara eu só fiz uns testes para pegar a causa do problema, agora tenho que procurar a solução. rsrsrsrsr
GOSTEI 0
Marco Salles

Marco Salles

26/07/2012

FDBGrid.Canvas.TextOut(Rect.Left + 5, Rect.Top, Column.Field.AsString)

Isso acontece porque o código que você está usando está fazendo o
desenho do texto; deixe isso por conta da rotina padrão do Delphi
(TDBGrid.DefaultDrawColumnCell), que ela se encarrega dos detalhes de
alinhamento e máscara
GOSTEI 0
Aloizio Castro

Aloizio Castro

26/07/2012

FDBGrid.Canvas.TextOut(Rect.Left + 5, Rect.Top, Column.Field.AsString)

Isso acontece porque o código que você está usando está fazendo o
desenho do texto; deixe isso por conta da rotina padrão do Delphi
(TDBGrid.DefaultDrawColumnCell), que ela se encarrega dos detalhes de
alinhamento e máscara



Rodou perfeito.

Thanks ;)
GOSTEI 0
POSTAR