Redimencionar as colunas do DBGrid conforme o conteúdo
Tem alguma propriedade no DBGrid que faz com que ele redimencione as suas colunas conforme o conteúdo?
Mkoch
Curtidas 0
Respostas
Bruno Belchior
07/10/2005
Que eu conheça não... você pode fazer isso dinamicamente em Run Time... No OnDrawCollumnCell:
var Tamanho: Smallint; begin with DBGrid do begin Tamanho := Canvas.TextWidth(Column.Field.AsString); if Column.Width < Tamanho then Column.Width := Tamanho + 10 end; end;
GOSTEI 0
Armando.boza
07/10/2005
Existe uma opção:
Mas não sei exatamente como ela se comporta ... dá uma testada.
DBGRID > OPTIONS > DGCOLUMNRESIZE (true ou false)
Mas não sei exatamente como ela se comporta ... dá uma testada.
GOSTEI 0
Mkoch
07/10/2005
O código do amigo [b:f93bdafd40]Bruno Belchior[/b:f93bdafd40] funcionou, é isso mesmo que eu queria, mas o DBGrid fica maluco parece que entra em loop e fica redesenhando a tela constantemente.
GOSTEI 0
Mkoch
07/10/2005
Alguem saberia uma solução para este problema?
GOSTEI 0
Massuda
07/10/2005
...o DBGrid fica maluco parece que entra em loop e fica redesenhando a tela constantemente.
Isso acontece porque está usando o evento OnDrawColumnCell... quando você muda a largura da coluna, a célula precisa ser redesenhada e você muda a largura de novo, etc, entrando em loop.Dê uma olhada [url=http://forum.clubedelphi.net/viewtopic.php?t=67138]neste tópico[/url]. Ele começa falando de ComboBoxes mas acabou caindo no DBGrid; não tem exemplo, mas acho que tem as explicações necessárias.
GOSTEI 0